Eventually(process.Wait()).Should(Receive()) }) itPerformsBatchOperations := func() { Context("when generating the batch operations succeeds", func() { var ( operation1 *fake_operationq.FakeOperation operation2 *fake_operationq.FakeOperation ) BeforeEach(func() { operation1 = new(fake_operationq.FakeOperation) operation2 = new(fake_operationq.FakeOperation) fakeGenerator.BatchOperationsStub = func(lager.Logger) (map[string]operationq.Operation, error) { fakeClock.Increment(10 * time.Second) return map[string]operationq.Operation{"guid1": operation1, "guid2": operation2}, nil } }) It("pushes them onto the queue", func() { Eventually(fakeQueue.PushCallCount).Should(Equal(2)) enqueuedOperations := make([]operationq.Operation, 0, 2) enqueuedOperations = append(enqueuedOperations, fakeQueue.PushArgsForCall(0)) enqueuedOperations = append(enqueuedOperations, fakeQueue.PushArgsForCall(1)) Expect(enqueuedOperations).To(ConsistOf(operation1, operation2)) }) It("emits the duration it took to generate the batch operations", func() { Eventually(fakeQueue.PushCallCount).Should(Equal(2))