func (s *S) TestPutAttrsOK(c *C) { testServer.Response(200, nil, TestPutAttrsXmlOK) domain := s.sdb.Domain("MyDomain") item := domain.Item("Item123") putAttrs := new(sdb.PutAttrs) putAttrs.Add("FirstName", "john") putAttrs.Add("LastName", "smith") putAttrs.Replace("MiddleName", "jacob") putAttrs.IfValue("FirstName", "john") putAttrs.IfMissing("FirstName") resp, err := item.PutAttrs(putAttrs) req := testServer.WaitRequest() c.Assert(req.Method, Equals, "GET") c.Assert(req.URL.Path, Equals, "/") c.Assert(req.Form["Action"], DeepEquals, []string{"PutAttributes"}) c.Assert(req.Form["ItemName"], DeepEquals, []string{"Item123"}) c.Assert(req.Form["DomainName"], DeepEquals, []string{"MyDomain"}) c.Assert(req.Form["Attribute.1.Name"], DeepEquals, []string{"FirstName"}) c.Assert(req.Form["Attribute.1.Value"], DeepEquals, []string{"john"}) c.Assert(req.Form["Attribute.2.Name"], DeepEquals, []string{"LastName"}) c.Assert(req.Form["Attribute.2.Value"], DeepEquals, []string{"smith"}) c.Assert(req.Form["Attribute.3.Name"], DeepEquals, []string{"MiddleName"}) c.Assert(req.Form["Attribute.3.Value"], DeepEquals, []string{"jacob"}) c.Assert(req.Form["Attribute.3.Replace"], DeepEquals, []string{"true"}) c.Assert(req.Form["Expected.1.Name"], DeepEquals, []string{"FirstName"}) c.Assert(req.Form["Expected.1.Value"], DeepEquals, []string{"john"}) c.Assert(req.Form["Expected.1.Exists"], DeepEquals, []string{"false"}) c.Assert(err, IsNil) c.Assert(resp.ResponseMetadata.RequestId, Equals, "490206ce-8292-456c-a00f-61b335eb202b") c.Assert(resp.ResponseMetadata.BoxUsage, Equals, 0.0000219907) }