github.com/aavshr/aws-sdk-go@v1.41.3/internal/smithytesting/document.go (about)

     1  package smithytesting
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"reflect"
     7  
     8  	"github.com/aavshr/aws-sdk-go/internal/smithytesting/xml"
     9  )
    10  
    11  // XMLEqual asserts two XML documents by sorting the XML and comparing the
    12  // strings It returns an error in case of mismatch or in case of malformed XML
    13  // found while sorting.  In case of mismatched XML, the error string will
    14  // contain the diff between the two XML documents.
    15  func XMLEqual(expectBytes, actualBytes []byte) error {
    16  	actualString, err := xml.SortXML(bytes.NewBuffer(actualBytes), true)
    17  	if err != nil {
    18  		return err
    19  	}
    20  
    21  	expectString, err := xml.SortXML(bytes.NewBuffer(expectBytes), true)
    22  	if err != nil {
    23  		return err
    24  	}
    25  
    26  	if !reflect.DeepEqual(expectString, actualString) {
    27  		return fmt.Errorf("unexpected XML mismatch\nexpect: %+v\nactual: %+v",
    28  			expectString, actualString)
    29  	}
    30  
    31  	return nil
    32  }