github.com/smugmug/godynamo@v0.0.0-20151122084750-7913028f6623/endpoints/update_item/update_item_test.go (about) 1 package update_item 2 3 import ( 4 "encoding/json" 5 "testing" 6 ) 7 8 func TestNil(t *testing.T) { 9 s := NewUpdateItem() 10 _,_,err := s.EndpointReqWithConf(nil) 11 if err == nil { 12 t.Errorf("nil conf should result in error") 13 } 14 } 15 16 func TestRequestUnmarshal(t *testing.T) { 17 s := []string{`{"TableName":"Thread","Key":{"ForumName":{"S":"AmazonDynamoDB"},"Subject":{"S":"HowdoIupdatemultipleitems?"}},"AttributeUpdates":{"LastPostedBy":{"Value":{"S":"alice@example.com"},"Action":"PUT"}},"Expected":{"LastPostedBy":{"Value":{"S":"fred@example.com"},"Exists":true}},"ReturnValues":"ALL_NEW"}`, `{"TableName":"Thread","Key":{"ForumName":{"S":"AmazonDynamoDB"},"Subject":{"S":"Maximumnumberofitems?"}},"UpdateExpression":"setLastPostedBy=:val1","ConditionExpression":"LastPostedBy=:val2","ExpressionAttributeValues":{":val1":{"S":"alice@example.com"},":val2":{"S":"fred@example.com"}},"ReturnValues":"ALL_NEW"}`, `{"TableName":"Thread","Key":{"ForumName":{"S":"AmazonDynamoDB"},"Subject":{"S":"Aquestionaboutupdates"}},"UpdateExpression":"setReplies=Replies+:num","ExpressionAttributeValues":{":num":{"N":"1"}},"ReturnValues":"NONE"}`} 18 for _, v := range s { 19 var u UpdateItem 20 um_err := json.Unmarshal([]byte(v), &u) 21 if um_err != nil { 22 t.Errorf("cannot unmarshal\n") 23 } 24 _, jerr := json.Marshal(u) 25 if jerr != nil { 26 t.Errorf("cannot marshal\n") 27 } 28 } 29 } 30 31 func TestResponseUnmarshal(t *testing.T) { 32 s := []string{`{"Attributes":{"LastPostedBy":{"S":"alice@example.com"},"ForumName":{"S":"AmazonDynamoDB"},"LastPostDateTime":{"S":"20130320010350"},"Tags":{"SS":["Update","MultipleItems","HelpMe"]},"Subject":{"S":"Maximumnumberofitems?"},"Views":{"N":"5"},"Message":{"S":"Iwanttoput10milliondataitemstoanAmazonDynamoDBtable.Isthereanupperlimit?"}}}`} 33 for _, v := range s { 34 var u Response 35 um_err := json.Unmarshal([]byte(v), &u) 36 if um_err != nil { 37 t.Errorf("cannot unmarshal\n") 38 } 39 _, jerr := json.Marshal(u) 40 if jerr != nil { 41 t.Errorf("cannot marshal\n") 42 } 43 } 44 }