Exemple #1
0
					step.Release()
					Expect(fakeResource.ReleaseCallCount()).To(Equal(1))
					Expect(fakeResource.ReleaseArgsForCall(0)).To(Equal(worker.FinalTTL(5 * time.Minute)))
				})
			})

			Describe("signalling", func() {
				var receivedSignals <-chan os.Signal

				BeforeEach(func() {
					sigs := make(chan os.Signal)
					receivedSignals = sigs

					fakeVersionedSource.RunStub = func(signals <-chan os.Signal, ready chan<- struct{}) error {
						close(ready)
						sigs <- <-signals
						return nil
					}
				})

				It("forwards to the resource", func() {
					process.Signal(os.Interrupt)
					Eventually(receivedSignals).Should(Receive(Equal(os.Interrupt)))
					Eventually(process.Wait()).Should(Receive())
				})
			})

			Context("when performing the put fails", func() {
				Context("with an unknown error", func() {
					disaster := errors.New("nope")
Exemple #2
0
				Expect(ioConfig.Stderr).To(Equal(stderrBuf))
			})

			Context("when the cache is not initialized", func() {
				BeforeEach(func() {
					fakeCache.IsInitializedReturns(false, nil)
				})

				It("runs the get resource action", func() {
					Expect(fakeVersionedSource.RunCallCount()).To(Equal(1))
				})

				Context("after the 'get' action completes", func() {
					BeforeEach(func() {
						fakeVersionedSource.RunStub = func(signals <-chan os.Signal, ready chan<- struct{}) error {
							Expect(fakeCache.InitializeCallCount()).To(Equal(0))
							return nil
						}
					})

					It("exits with no error", func() {
						Expect(<-process.Wait()).To(BeNil())
					})

					It("marks the cache as initialized", func() {
						<-process.Wait()
						Expect(fakeCache.InitializeCallCount()).To(Equal(1))
					})

					It("reports the fetched version info", func() {
						<-process.Wait()