backend := new(fakes.FakeBackend) backend.GraceTimeReturns(100 * time.Millisecond) bomberman := bomberman.New(backend, func(container garden.Container) { detonated <- container }) container := new(fakes.FakeContainer) container.HandleReturns("doomed") bomberman.Strap(container) select { case <-detonated: case <-time.After(backend.GraceTime(container) + 50*time.Millisecond): Fail("did not detonate!") } }) Context("when the container has a grace time of 0", func() { It("never detonates", func() { detonated := make(chan garden.Container) backend := new(fakes.FakeBackend) backend.GraceTimeReturns(0) bomberman := bomberman.New(backend, func(container garden.Container) { detonated <- container })