github.com/aavshr/aws-sdk-go@v1.41.3/example/service/dynamodb/unitTest/unitTest.go (about) 1 //go:build example 2 // +build example 3 4 // Package unitTest demonstrates how to unit test, without needing to pass a 5 // connector to every function, code that uses DynamoDB. 6 package unitTest 7 8 import ( 9 "github.com/aavshr/aws-sdk-go/aws" 10 "github.com/aavshr/aws-sdk-go/service/dynamodb" 11 "github.com/aavshr/aws-sdk-go/service/dynamodb/dynamodbattribute" 12 "github.com/aavshr/aws-sdk-go/service/dynamodb/dynamodbiface" 13 ) 14 15 // ItemGetter can be assigned a DynamoDB connector like: 16 // svc := dynamodb.DynamoDB(sess) 17 // getter.DynamoDB = dynamodbiface.DynamoDBAPI(svc) 18 type ItemGetter struct { 19 DynamoDB dynamodbiface.DynamoDBAPI 20 } 21 22 // Get a value from a DynamoDB table containing entries like: 23 // {"id": "my primary key", "value": "valuable value"} 24 func (ig *ItemGetter) Get(id string) (value string) { 25 var input = &dynamodb.GetItemInput{ 26 Key: map[string]*dynamodb.AttributeValue{ 27 "id": { 28 S: aws.String(id), 29 }, 30 }, 31 TableName: aws.String("my_table"), 32 AttributesToGet: []*string{ 33 aws.String("value"), 34 }, 35 } 36 if output, err := ig.DynamoDB.GetItem(input); err == nil { 37 if _, ok := output.Item["value"]; ok { 38 dynamodbattribute.Unmarshal(output.Item["value"], &value) 39 } 40 } 41 return 42 }