func BenchmarkJSONUtilBuild_Simple_dynamodbPutItem(b *testing.B) { svc := service.NewService(nil) params := getDynamodbPutItemParams(b) for i := 0; i < b.N; i++ { r := service.NewRequest(svc, &service.Operation{Name: "Operation"}, params, nil) _, err := jsonutil.BuildJSON(r.Params) if err != nil { b.Fatal("Unexpected error", err) } } }
func BenchmarkRESTBuild_Complex_elastictranscoderCreateJobInput(b *testing.B) { svc := service.NewService(nil) svc.ServiceName = "elastictranscoder" svc.APIVersion = "2012-09-25" for i := 0; i < b.N; i++ { r := service.NewRequest(svc, &service.Operation{Name: "CreateJobInput"}, restjsonBuildParms, nil) rest.Build(r) if r.Error != nil { b.Fatal("Unexpected error", r.Error) } } }
func BenchmarkJSONRPCBuild_Simple_dynamodbPutItem(b *testing.B) { svc := service.NewService(nil) params := getDynamodbPutItemParams(b) for i := 0; i < b.N; i++ { r := service.NewRequest(svc, &service.Operation{Name: "Operation"}, params, nil) jsonrpc.Build(r) if r.Error != nil { b.Fatal("Unexpected error", r.Error) } } }
func benchRESTXMLBuild(b *testing.B, op *service.Operation, params interface{}) { svc := service.NewService(nil) svc.ServiceName = "cloudfront" svc.APIVersion = "2015-04-17" for i := 0; i < b.N; i++ { r := service.NewRequest(svc, op, params, nil) restxml.Build(r) if r.Error != nil { b.Fatal("Unexpected error", r.Error) } } }
func benchEC2QueryBuild(b *testing.B, opName string, params interface{}) { svc := service.NewService(nil) svc.ServiceName = "ec2" svc.APIVersion = "2015-04-15" for i := 0; i < b.N; i++ { r := service.NewRequest(svc, &service.Operation{ Name: opName, HTTPMethod: "POST", HTTPPath: "/", }, params, nil) ec2query.Build(r) if r.Error != nil { b.Fatal("Unexpected error", r.Error) } } }
func BenchmarkRESTBuild_Simple_elastictranscoderListJobsByPipeline(b *testing.B) { svc := service.NewService(nil) svc.ServiceName = "elastictranscoder" svc.APIVersion = "2012-09-25" params := &elastictranscoder.ListJobsByPipelineInput{ PipelineId: aws.String("Id"), // Required Ascending: aws.String("Ascending"), PageToken: aws.String("Id"), } for i := 0; i < b.N; i++ { r := service.NewRequest(svc, &service.Operation{Name: "ListJobsByPipeline"}, params, nil) rest.Build(r) if r.Error != nil { b.Fatal("Unexpected error", r.Error) } } }
func TestResignRequestExpiredCreds(t *testing.T) { creds := credentials.NewStaticCredentials("AKID", "SECRET", "SESSION") r := service.NewRequest( service.NewService(&aws.Config{Credentials: creds}), &service.Operation{ Name: "BatchGetItem", HTTPMethod: "POST", HTTPPath: "/", }, nil, nil, ) Sign(r) querySig := r.HTTPRequest.Header.Get("Authorization") creds.Expire() Sign(r) assert.NotEqual(t, querySig, r.HTTPRequest.Header.Get("Authorization")) }
func TestIgnoreResignRequestWithValidCreds(t *testing.T) { r := service.NewRequest( service.NewService(&aws.Config{ Credentials: credentials.NewStaticCredentials("AKID", "SECRET", "SESSION"), Region: aws.String("us-west-2"), }), &service.Operation{ Name: "BatchGetItem", HTTPMethod: "POST", HTTPPath: "/", }, nil, nil, ) Sign(r) sig := r.HTTPRequest.Header.Get("Authorization") Sign(r) assert.Equal(t, sig, r.HTTPRequest.Header.Get("Authorization")) }
func TestAnonymousCredentials(t *testing.T) { r := service.NewRequest( service.NewService(&aws.Config{Credentials: credentials.AnonymousCredentials}), &service.Operation{ Name: "BatchGetItem", HTTPMethod: "POST", HTTPPath: "/", }, nil, nil, ) Sign(r) urlQ := r.HTTPRequest.URL.Query() assert.Empty(t, urlQ.Get("X-Amz-Signature")) assert.Empty(t, urlQ.Get("X-Amz-Credential")) assert.Empty(t, urlQ.Get("X-Amz-SignedHeaders")) assert.Empty(t, urlQ.Get("X-Amz-Date")) hQ := r.HTTPRequest.Header assert.Empty(t, hQ.Get("Authorization")) assert.Empty(t, hQ.Get("X-Amz-Date")) }
func TestPreResignRequestExpiredCreds(t *testing.T) { provider := &credentials.StaticProvider{credentials.Value{"AKID", "SECRET", "SESSION"}} creds := credentials.NewCredentials(provider) r := service.NewRequest( service.NewService(&aws.Config{Credentials: creds}), &service.Operation{ Name: "BatchGetItem", HTTPMethod: "POST", HTTPPath: "/", }, nil, nil, ) r.ExpireTime = time.Minute * 10 Sign(r) querySig := r.HTTPRequest.URL.Query().Get("X-Amz-Signature") creds.Expire() r.Time = time.Now().Add(time.Hour * 48) Sign(r) assert.NotEqual(t, querySig, r.HTTPRequest.URL.Query().Get("X-Amz-Signature")) }