...

Source file src/github.com/aws/smithy-go/encoding/xml/error_utils_test.go

Documentation: github.com/aws/smithy-go/encoding/xml

     1  package xml
     2  
     3  import (
     4  	"bytes"
     5  	"io"
     6  	"strings"
     7  	"testing"
     8  )
     9  
    10  func TestGetResponseErrorCode(t *testing.T) {
    11  	cases := map[string]struct {
    12  		errorResponse          io.Reader
    13  		noErrorWrappingEnabled bool
    14  		expectedErrorCode      string
    15  		expectedErrorMessage   string
    16  	}{
    17  		"no error wrapping enabled": {
    18  			errorResponse: bytes.NewReader([]byte(`<ErrorResponse>
    19      <Error>
    20          <Type>Sender</Type>
    21          <Code>InvalidGreeting</Code>
    22          <Message>Hi</Message>
    23          <AnotherSetting>setting</AnotherSetting>
    24      </Error>
    25      <RequestId>foo-id</RequestId>
    26  </ErrorResponse>`)),
    27  			expectedErrorCode:    "InvalidGreeting",
    28  			expectedErrorMessage: "Hi",
    29  		},
    30  		"no error wrapping disabled": {
    31  			errorResponse: bytes.NewReader([]byte(`<ErrorResponse>
    32      <Type>Sender</Type>
    33      <Code>InvalidGreeting</Code>
    34      <Message>Hi</Message>
    35      <AnotherSetting>setting</AnotherSetting>
    36      <RequestId>foo-id</RequestId>
    37  </ErrorResponse>`)),
    38  			noErrorWrappingEnabled: true,
    39  			expectedErrorCode:      "InvalidGreeting",
    40  			expectedErrorMessage:   "Hi",
    41  		},
    42  		"no response body": {
    43  			errorResponse: bytes.NewReader([]byte(``)),
    44  		},
    45  	}
    46  
    47  	for name, c := range cases {
    48  		t.Run(name, func(t *testing.T) {
    49  			ec, err := GetErrorResponseComponents(c.errorResponse, c.noErrorWrappingEnabled)
    50  			if err != nil {
    51  				t.Fatalf("expected no error, got %v", err)
    52  			}
    53  
    54  			if e, a := c.expectedErrorCode, ec.Code; !strings.EqualFold(e, a) {
    55  				t.Fatalf("expected %v, got %v", e, a)
    56  			}
    57  			if e, a := c.expectedErrorMessage, ec.Message; !strings.EqualFold(e, a) {
    58  				t.Fatalf("expected %v, got %v", e, a)
    59  			}
    60  		})
    61  	}
    62  }
    63  

View as plain text