func (s *S) TestBindUnit(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, err := createTestApp(s.conn, "painkiller", "", []string{s.team.Name}, []app.Unit{{Ip: "10.10.10.10"}}) c.Assert(err, gocheck.IsNil) defer s.conn.Apps().Remove(bson.M{"name": a.Name}) envs, err := instance.BindUnit(&a, a.GetUnits()[0]) c.Assert(err, gocheck.IsNil) c.Assert(called, gocheck.Equals, true) expectedEnvs := map[string]string{ "DATABASE_USER": "******", "DATABASE_PASSWORD": "******", } c.Assert(envs, gocheck.DeepEquals, expectedEnvs) }