satisfyingWorker, satisfyingErr = pool.Satisfying(spec, resourceTypes) }) Context("with multiple workers", func() { var ( workerA *fakes.FakeWorker workerB *fakes.FakeWorker workerC *fakes.FakeWorker ) BeforeEach(func() { workerA = new(fakes.FakeWorker) workerB = new(fakes.FakeWorker) workerC = new(fakes.FakeWorker) workerA.SatisfyingReturns(workerA, nil) workerB.SatisfyingReturns(workerB, nil) workerC.SatisfyingReturns(nil, errors.New("nope")) fakeProvider.WorkersReturns([]Worker{workerA, workerB, workerC}, nil) }) It("succeeds", func() { Expect(satisfyingErr).NotTo(HaveOccurred()) }) It("checks that the workers satisfy the given spec", func() { Expect(workerA.SatisfyingCallCount()).To(Equal(1)) actualSpec, actualResourceTypes := workerA.SatisfyingArgsForCall(0) Expect(actualSpec).To(Equal(spec)) Expect(actualResourceTypes).To(Equal(resourceTypes))