fakeBackend := new(fakes.FakeBackend) doomedContainer := new(fakes.FakeContainer) fakeBackend.ContainersReturns([]garden.Container{doomedContainer}, nil) fakeBackend.GraceTimeReturns(100 * time.Millisecond) apiServer := server.New(gardenListenNetwork, gardenListenAddr, 0, fakeBackend, logger) before := time.Now() err = apiServer.Start() Ω(err).ShouldNot(HaveOccurred()) Ω(fakeBackend.DestroyCallCount()).Should(Equal(0)) Eventually(fakeBackend.DestroyCallCount).Should(Equal(1)) Ω(time.Since(before)).Should(BeNumerically(">", 100*time.Millisecond)) }) Context("when starting the backend fails", func() { disaster := errors.New("oh no!") It("fails to start", func() { var err error tmpdir, err = ioutil.TempDir(os.TempDir(), "api-server-test") Ω(err).ShouldNot(HaveOccurred()) fakeBackend := new(fakes.FakeBackend) fakeBackend.StartReturns(disaster)