...

Source file src/github.com/aws/smithy-go/transport/http/middleware_headers_test.go

Documentation: github.com/aws/smithy-go/transport/http

     1  package http_test
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  	"reflect"
     7  	"testing"
     8  
     9  	"github.com/aws/smithy-go/middleware"
    10  	smithyhttp "github.com/aws/smithy-go/transport/http"
    11  )
    12  
    13  func TestAddHeaderValue(t *testing.T) {
    14  	stack := middleware.NewStack("stack", smithyhttp.NewStackRequest)
    15  	err := smithyhttp.AddHeaderValue("foo", "fooValue")(stack)
    16  	if err != nil {
    17  		t.Fatalf("expect no error, got %v", err)
    18  	}
    19  	err = smithyhttp.AddHeaderValue("bar", "firstValue")(stack)
    20  	if err != nil {
    21  		t.Fatalf("expect no error, got %v", err)
    22  	}
    23  	err = smithyhttp.AddHeaderValue("bar", "secondValue")(stack)
    24  	if err != nil {
    25  		t.Fatalf("expect no error, got %v", err)
    26  	}
    27  
    28  	handler := middleware.DecorateHandler(middleware.HandlerFunc(func(ctx context.Context, input interface{}) (output interface{}, metadata middleware.Metadata, err error) {
    29  		req := input.(*smithyhttp.Request)
    30  
    31  		expect := http.Header{
    32  			"Foo": []string{"fooValue"},
    33  			"Bar": []string{"firstValue", "secondValue"},
    34  		}
    35  		if !reflect.DeepEqual(expect, req.Header) {
    36  			t.Errorf("%v != %v", expect, req.Header)
    37  		}
    38  
    39  		return output, metadata, err
    40  	}), stack)
    41  	_, _, err = handler.Handle(context.Background(), nil)
    42  	if err != nil {
    43  		t.Fatalf("expect no error, got %v", err)
    44  	}
    45  }
    46  
    47  func TestSetHeaderValue(t *testing.T) {
    48  	stack := middleware.NewStack("stack", smithyhttp.NewStackRequest)
    49  	err := smithyhttp.SetHeaderValue("foo", "firstValue")(stack)
    50  	if err != nil {
    51  		t.Fatalf("expect no error, got %v", err)
    52  	}
    53  	err = smithyhttp.SetHeaderValue("foo", "secondValue")(stack)
    54  	if err != nil {
    55  		t.Fatalf("expect no error, got %v", err)
    56  	}
    57  
    58  	handler := middleware.DecorateHandler(middleware.HandlerFunc(func(ctx context.Context, input interface{}) (output interface{}, metadata middleware.Metadata, err error) {
    59  		req := input.(*smithyhttp.Request)
    60  
    61  		expect := http.Header{
    62  			"Foo": []string{"secondValue"},
    63  		}
    64  		if !reflect.DeepEqual(expect, req.Header) {
    65  			t.Errorf("%v != %v", expect, req.Header)
    66  		}
    67  
    68  		return output, metadata, err
    69  	}), stack)
    70  	_, _, err = handler.Handle(context.Background(), nil)
    71  	if err != nil {
    72  		t.Fatalf("expect no error, got %v", err)
    73  	}
    74  }
    75  

View as plain text