err = apiServer.Start() Ω(err).ShouldNot(HaveOccurred()) Ω(fakeBackend.StartCallCount()).Should(Equal(1)) }) It("destroys containers that have been idle for their grace time", func() { var err error tmpdir, err = ioutil.TempDir(os.TempDir(), "api-server-test") Ω(err).ShouldNot(HaveOccurred()) 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)) })