// Client should return ErrStatusBadRequest when entity doesn't validate func (s *TestSuite) TestAddBadRequest(c *C) { // given locClient := client.LocationClient{Host: s.host} // when _, err := locClient.AddLocation("", "Texas") // then c.Assert(err, Equals, rest.ErrStatusBadRequest) }
// Location should be findable func (s *TestSuite) TestFind(c *C) { // given locClient := client.LocationClient{Host: s.host} created, _ := locClient.AddLocation("Austin", "Texas") // when found, err := locClient.FindLocation(created.Id) // then c.Assert(err, Equals, nil) c.Assert(created, DeepEquals, found) }
// Client should return ErrStatusConflict when id exists // (not supported by client so pulled impl into test) func (s *TestSuite) TestAddConflict(c *C) { // given locClient := client.LocationClient{Host: s.host} created, _ := locClient.AddLocation("Austin", "Texas") // when url := fmt.Sprintf("%s/location", s.host) r, _ := rest.MakeRequest("POST", url, created) err := rest.ProcessResponseEntity(r, nil, http.StatusCreated) // then c.Assert(err, Equals, rest.ErrStatusConflict) }
// Client should return ErrStatusBadRequest if entity doesn't validate func (s *TestSuite) TestSaveBadRequestFromEntity(c *C) { // given locClient := client.LocationClient{Host: s.host} location, _ := locClient.AddLocation("Austin", "Texas") // when location.State = "" _, err := locClient.SaveLocation(location) // then c.Assert(err, Equals, rest.ErrStatusBadRequest) }
// Client should return ErrStatusBadRequest if Id doesn't validate // (not supported by client so pulled impl into test) func (s *TestSuite) TestSaveBadRequestFromId(c *C) { // given locClient := client.LocationClient{Host: s.host} location, _ := locClient.AddLocation("Austin", "Texas") // when url := fmt.Sprintf("%s/location/%s", s.host, "asd") r, err := rest.MakeRequest("GET", url, location) err = rest.ProcessResponseEntity(r, nil, http.StatusOK) // then c.Assert(err, Equals, rest.ErrStatusBadRequest) }
// Client should return ErrStatusNotFound if trying to save to an id that doesn't exist func (s *TestSuite) TestSaveNotFound(c *C) { // given locClient := client.LocationClient{Host: s.host} location, _ := locClient.AddLocation("Austin", "Texas") // when location.Id = location.Id + 1 location.State = "foo" _, err := locClient.SaveLocation(location) // then c.Assert(err, Equals, rest.ErrStatusNotFound) }
// Save should update a location func (s *TestSuite) TestSave(c *C) { // given locClient := client.LocationClient{Host: s.host} location, _ := locClient.AddLocation("Austin", "Texas") // when saved, err := locClient.SaveLocation(location) // then c.Assert(err, Equals, nil) c.Assert(location.State, DeepEquals, saved.State) }
// Find all should return all locations func (s *TestSuite) TestFindAll(c *C) { // given locClient := client.LocationClient{Host: s.host} loc1, err := locClient.AddLocation("Austin", "Texas") loc2, err := locClient.AddLocation("Williamsburg", "Virginia") // when foundLocations, err := locClient.FindAllLocations() // then c.Assert(err, Equals, nil) c.Assert(foundLocations, DeepEquals, []api.Location{loc1, loc2}) }
// Delete should Delete a location func (s *TestSuite) TestDelete(c *C) { // given locClient := client.LocationClient{Host: s.host} location, _ := locClient.AddLocation("Austin", "Texas") // when err := locClient.DeleteLocation(location.Id) // then c.Assert(err, Equals, nil) foundLocations, _ := locClient.FindAllLocations() c.Assert(len(foundLocations), Equals, 0) }