github.com/smugmug/godynamo@v0.0.0-20151122084750-7913028f6623/endpoints/query/query_test.go (about) 1 package query 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "testing" 7 ) 8 9 func TestNil(t *testing.T) { 10 q := NewQuery() 11 _,_,err := q.EndpointReqWithConf(nil) 12 if err == nil { 13 t.Errorf("nil conf should result in error") 14 } 15 } 16 17 func TestRequestUnmarshal(t *testing.T) { 18 s := []string{`{"TableName":"Thread","IndexName":"LastPostIndex","Select":"ALL_ATTRIBUTES","Limit":3,"ConsistentRead":true,"KeyConditions":{"LastPostDateTime":{"AttributeValueList":[{"S":"20130101"},{"S":"20130115"}],"ComparisonOperator":"BETWEEN"},"ForumName":{"AttributeValueList":[{"S":"AmazonDynamoDB"}],"ComparisonOperator":"EQ"}}}`, `{"TableName":"Thread","Select":"COUNT","ConsistentRead":true,"KeyConditions":{"ForumName":{"AttributeValueList":[{"S":"AmazonDynamoDB"}],"ComparisonOperator":"EQ"}}}`} 19 for _, v := range s { 20 var q Query 21 um_err := json.Unmarshal([]byte(v), &q) 22 if um_err != nil { 23 e := fmt.Sprintf("unmarshal Query: %v", um_err) 24 t.Errorf(e) 25 } 26 _, jerr := json.Marshal(q) 27 if jerr != nil { 28 t.Errorf("cannot marshal\n") 29 } 30 } 31 } 32 33 func TestResponseUnmarshal(t *testing.T) { 34 s := []string{`{"Count":3,"Items":[{"LastPostedBy":{"S":"fred@example.com"},"ForumName":{"S":"AmazonDynamoDB"},"LastPostDateTime":{"S":"20130102054211"},"Tags":{"SS":["Problem","Question"]}},{"LastPostedBy":{"S":"alice@example.com"},"ForumName":{"S":"AmazonDynamoDB"},"LastPostDateTime":{"S":"20130105111307"},"Tags":{"SS":["Idea"]}},{"LastPostedBy":{"S":"bob@example.com"},"ForumName":{"S":"AmazonDynamoDB"},"LastPostDateTime":{"S":"20130108094417"},"Tags":{"SS":["AppDesign","HelpMe"]}}]}`, `{"Count":17}`} 35 for _, v := range s { 36 var q Response 37 um_err := json.Unmarshal([]byte(v), &q) 38 if um_err != nil { 39 e := fmt.Sprintf("unmarshal Response: %v", um_err) 40 t.Errorf(e) 41 } 42 _, jerr := json.Marshal(q) 43 if jerr != nil { 44 t.Errorf("cannot marshal\n") 45 } 46 } 47 }