func (s *S) TestHandleBindServiceMessage(c *gocheck.C) { called := false ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { called = true w.Write([]byte(`{"DATABASE_USER":"******","DATABASE_PASSWORD":"******"}`)) })) defer ts.Close() srvc := service.Service{Name: "mysql", Endpoint: map[string]string{"production": ts.URL}} err := srvc.Create() c.Assert(err, gocheck.IsNil) defer s.conn.Services().Remove(bson.M{"_id": "mysql"}) instance := service.ServiceInstance{Name: "my-mysql", ServiceName: "mysql", Teams: []string{s.team.Name}} instance.Create() defer s.conn.ServiceInstances().Remove(bson.M{"_id": "my-mysql"}) a := App{ Name: "nemesis", Units: []Unit{ { Name: "i-00800", State: "started", Machine: 19, }, }, } err = s.conn.Apps().Insert(a) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": a.Name}) err = instance.AddApp(a.Name) c.Assert(err, gocheck.IsNil) err = s.conn.ServiceInstances().Update(bson.M{"name": instance.Name}, instance) c.Assert(err, gocheck.IsNil) message := queue.Message{Action: BindService, Args: []string{a.Name, a.Units[0].Name}} handle(&message) c.Assert(called, gocheck.Equals, true) }