Ejemplo n.º 1
0
					}
				})

				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")

					BeforeEach(func() {
						fakeVersionedSource.RunReturns(disaster)
					})

					It("exits with the failure", func() {
						Eventually(process.Wait()).Should(Receive(Equal(disaster)))
					})

					It("invokes the delegate's Failed callback without completing", func() {
						Eventually(process.Wait()).Should(Receive(Equal(disaster)))

						Expect(putDelegate.CompletedCallCount()).To(BeZero())

						Expect(putDelegate.FailedCallCount()).To(Equal(1))
						Expect(putDelegate.FailedArgsForCall(0)).To(Equal(disaster))
					})
Ejemplo n.º 2
0
						It("releases the resource, preserving its original TTL", func() {
							<-process.Wait()

							Expect(fakeResource.ReleaseCallCount()).To(BeZero())

							step.Release()
							Expect(fakeResource.ReleaseCallCount()).To(Equal(1))
							Expect(fakeResource.ReleaseArgsForCall(0)).To(BeZero())
						})
					})
				})

				Context("when the 'get' action fails", func() {
					BeforeEach(func() {
						fakeVersionedSource.RunReturns(resource.ErrResourceScriptFailed{
							ExitStatus: 1,
						})
					})

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

					It("does not mark the cache as initialized", func() {
						<-process.Wait()
						Expect(fakeCache.InitializeCallCount()).To(Equal(0))
					})

					It("completes via the delegate", func() {
						<-process.Wait()