From 7ed624adece5c57831aca4e7f36297ae97ab922d Mon Sep 17 00:00:00 2001 From: "sangdeug.kim" Date: Tue, 8 Oct 2019 10:54:46 +0900 Subject: [PATCH] Adding BatchWriteItemWithContext This patch introduces BatchWriteItemWithContext API which has same body of BatchWriteItem. --- batch_write_item.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/batch_write_item.go b/batch_write_item.go index 2e4caae..336fa5a 100644 --- a/batch_write_item.go +++ b/batch_write_item.go @@ -4,6 +4,8 @@ import ( "fmt" "reflect" + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/dynamodb" ) @@ -38,3 +40,23 @@ func (e *MockDynamoDB) BatchWriteItem(input *dynamodb.BatchWriteItemInput) (*dyn return nil, fmt.Errorf("Batch Write Item Expectation Not Found") } + +// BatchWriteItemWithContext - this func will be invoked when test running matching expectation with actual input +func (e *MockDynamoDB) BatchWriteItemWithContext(ctx aws.Context, input *dynamodb.BatchWriteItemInput, opt ...request.Option) (*dynamodb.BatchWriteItemOutput, error) { + if len(e.dynaMock.BatchWriteItemExpect) > 0 { + x := e.dynaMock.BatchWriteItemExpect[0] //get first element of expectation + + if x.input != nil { + if !reflect.DeepEqual(x.input, input.RequestItems) { + return nil, fmt.Errorf("Expect input %+v but found input %+v", x.input, input.RequestItems) + } + } + + // delete first element of expectation + e.dynaMock.BatchWriteItemExpect = append(e.dynaMock.BatchWriteItemExpect[:0], e.dynaMock.BatchWriteItemExpect[1:]...) + + return x.output, nil + } + + return nil, fmt.Errorf("Batch Write Item Expectation Not Found") +}