func (s *S) TestServiceInstanceStatusHandler(c *C) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNoContent) w.Write([]byte(`Service instance "my_nosql" is up`)) })) defer ts.Close() srv := service.Service{Name: "mongodb", OwnerTeams: []string{s.team.Name}, Endpoint: map[string]string{"production": ts.URL}} err := srv.Create() c.Assert(err, IsNil) defer srv.Delete() si := service.ServiceInstance{Name: "my_nosql", ServiceName: srv.Name} err = si.Create() c.Assert(err, IsNil) defer si.Delete() recorder, request := makeRequestToStatusHandler("my_nosql", c) err = ServiceInstanceStatusHandler(recorder, request, s.user) c.Assert(err, IsNil) b, err := ioutil.ReadAll(recorder.Body) c.Assert(string(b), Equals, "Service instance \"my_nosql\" is up") }
func (s *S) TestServiceInfoHandlerShouldReturnOnlyInstancesOfTheSameTeamOfTheUser(c *C) { srv := service.Service{Name: "mongodb", Teams: []string{s.team.Name}} err := srv.Create() c.Assert(err, IsNil) defer srv.Delete() si1 := service.ServiceInstance{ Name: "my_nosql", ServiceName: srv.Name, Apps: []string{}, Teams: []string{s.team.Name}, } err = si1.Create() c.Assert(err, IsNil) defer si1.Delete() si2 := service.ServiceInstance{ Name: "your_nosql", ServiceName: srv.Name, Apps: []string{"wordpress"}, Teams: []string{}, } err = si2.Create() c.Assert(err, IsNil) defer si2.Delete() request, err := http.NewRequest("GET", fmt.Sprintf("/services/%s?:name=%s", "mongodb", "mongodb"), nil) c.Assert(err, IsNil) recorder := httptest.NewRecorder() err = ServiceInfoHandler(recorder, request, s.user) c.Assert(err, IsNil) body, err := ioutil.ReadAll(recorder.Body) c.Assert(err, IsNil) var instances []service.ServiceInstance err = json.Unmarshal(body, &instances) c.Assert(err, IsNil) expected := []service.ServiceInstance{si1} c.Assert(instances, DeepEquals, expected) }