Beispiel #1
0
		db.WatchForDesiredLRPChangesReturns(desiredLRPStop, desiredLRPErrors)
		db.WatchForActualLRPChangesReturns(actualLRPStop, actualLRPErrors)

		bbsWatcher = watcher.NewWatcher(logger, db, hub, clock, retryWaitDuration)
	})

	AfterEach(func() {
		process.Signal(os.Interrupt)
		Eventually(process.Wait()).Should(Receive())
	})

	Describe("starting", func() {
		Context("when the hub initially reports no subscribers", func() {
			BeforeEach(func() {
				hub.RegisterCallbackStub = func(cb func(int)) {
					cb(0)
				}
				process = ifrit.Invoke(bbsWatcher)
			})

			It("does not request a watch", func() {
				Consistently(db.WatchForDesiredLRPChangesCallCount).Should(BeZero())
				Consistently(db.WatchForActualLRPChangesCallCount).Should(BeZero())
			})

			Context("and then the hub reports a subscriber", func() {
				var callback func(int)

				BeforeEach(func() {
					Expect(hub.RegisterCallbackCallCount()).To(Equal(1))
					callback = hub.RegisterCallbackArgsForCall(0)