func (s *QueryBuilderSuite) TestEmptyQuery(c *check.C) { q := dynamodb.NewEmptyQuery() queryString := q.String() expectedString := "{}" c.Check(queryString, check.Equals, expectedString) if expectedString != queryString { c.Fatalf("Unexpected Query String : %s\n", queryString) } }
func (s *QueryBuilderSuite) TestAddWriteRequestItems(c *check.C) { primary := dynamodb.NewStringAttribute("WidgetFoo", "") secondary := dynamodb.NewNumericAttribute("Created", "") key := dynamodb.PrimaryKey{primary, secondary} table := s.server.NewTable("FooData", key) primary2 := dynamodb.NewStringAttribute("TestHashKey", "") secondary2 := dynamodb.NewNumericAttribute("TestRangeKey", "") key2 := dynamodb.PrimaryKey{primary2, secondary2} table2 := s.server.NewTable("TestTable", key2) q := dynamodb.NewEmptyQuery() attribute1 := dynamodb.NewNumericAttribute("testing", "4") attribute2 := dynamodb.NewNumericAttribute("testingbatch", "2111") attribute3 := dynamodb.NewStringAttribute("testingstrbatch", "mystr") item1 := []dynamodb.Attribute{*attribute1, *attribute2, *attribute3} attribute4 := dynamodb.NewNumericAttribute("testing", "444") attribute5 := dynamodb.NewNumericAttribute("testingbatch", "93748249272") attribute6 := dynamodb.NewStringAttribute("testingstrbatch", "myotherstr") item2 := []dynamodb.Attribute{*attribute4, *attribute5, *attribute6} attributeDel1 := dynamodb.NewStringAttribute("TestHashKeyDel", "DelKey") attributeDel2 := dynamodb.NewNumericAttribute("TestRangeKeyDel", "7777777") itemDel := []dynamodb.Attribute{*attributeDel1, *attributeDel2} attributeTest1 := dynamodb.NewStringAttribute("TestHashKey", "MyKey") attributeTest2 := dynamodb.NewNumericAttribute("TestRangeKey", "0193820384293") itemTest := []dynamodb.Attribute{*attributeTest1, *attributeTest2} tableItems := map[*dynamodb.Table]map[string][][]dynamodb.Attribute{} actionItems := make(map[string][][]dynamodb.Attribute) actionItems["Put"] = [][]dynamodb.Attribute{item1, item2} actionItems["Delete"] = [][]dynamodb.Attribute{itemDel} tableItems[table] = actionItems actionItems2 := make(map[string][][]dynamodb.Attribute) actionItems2["Put"] = [][]dynamodb.Attribute{itemTest} tableItems[table2] = actionItems2 q.AddWriteRequestItems(tableItems) queryJson, err := simplejson.NewJson([]byte(q.String())) if err != nil { c.Fatal(err) } expectedJson, err := simplejson.NewJson([]byte(` { "RequestItems": { "TestTable": [ { "PutRequest": { "Item": { "TestRangeKey": { "N": "0193820384293" }, "TestHashKey": { "S": "MyKey" } } } } ], "FooData": [ { "PutRequest": { "Item": { "testingstrbatch": { "S": "mystr" }, "testingbatch": { "N": "2111" }, "testing": { "N": "4" } } } }, { "PutRequest": { "Item": { "testingstrbatch": { "S": "myotherstr" }, "testingbatch": { "N": "93748249272" }, "testing": { "N": "444" } } } }, { "DeleteRequest": { "Key": { "TestRangeKeyDel": { "N": "7777777" }, "TestHashKeyDel": { "S": "DelKey" } } } } ] } } `)) if err != nil { c.Fatal(err) } c.Check(queryJson, check.DeepEquals, expectedJson) }