github.com/aavshr/aws-sdk-go@v1.41.3/aws/request/http_request_retry_test.go (about)

     1  package request_test
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/aavshr/aws-sdk-go/aws"
     8  	"github.com/aavshr/aws-sdk-go/aws/request"
     9  	"github.com/aavshr/aws-sdk-go/awstesting/mock"
    10  )
    11  
    12  func TestRequestCancelRetry(t *testing.T) {
    13  	c := make(chan struct{})
    14  	reqNum := 0
    15  	s := mock.NewMockClient(&aws.Config{
    16  		MaxRetries: aws.Int(1),
    17  	})
    18  	s.Handlers.Validate.Clear()
    19  	s.Handlers.Unmarshal.Clear()
    20  	s.Handlers.UnmarshalMeta.Clear()
    21  	s.Handlers.UnmarshalError.Clear()
    22  	s.Handlers.Send.PushFront(func(r *request.Request) {
    23  		reqNum++
    24  	})
    25  	out := &testData{}
    26  	r := s.NewRequest(&request.Operation{Name: "Operation"}, nil, out)
    27  	r.HTTPRequest.Cancel = c
    28  	close(c)
    29  
    30  	err := r.Send()
    31  	if !strings.Contains(err.Error(), "canceled") {
    32  		t.Errorf("expect canceled in error, %v", err)
    33  	}
    34  	if e, a := 1, reqNum; e != a {
    35  		t.Errorf("expect %v, got %v", e, a)
    36  	}
    37  }