workerC.CreateContainerReturns(fakeContainer, nil) fakeProvider.WorkersReturns([]Worker{workerA, workerB, workerC}, nil) }) It("succeeds", func() { Ω(createErr).ShouldNot(HaveOccurred()) }) It("returns the created container", func() { Ω(createdContainer).Should(Equal(fakeContainer)) }) It("checks that the workers satisfy the given spec", func() { Ω(workerA.SatisfiesCallCount()).Should(Equal(1)) Ω(workerA.SatisfiesArgsForCall(0)).Should(Equal(spec)) Ω(workerB.SatisfiesCallCount()).Should(Equal(1)) Ω(workerB.SatisfiesArgsForCall(0)).Should(Equal(spec)) Ω(workerC.SatisfiesCallCount()).Should(Equal(1)) Ω(workerC.SatisfiesArgsForCall(0)).Should(Equal(spec)) }) It("creates using a random worker", func() { for i := 1; i < 100; i++ { // account for initial create in JustBefore createdContainer, createErr := pool.CreateContainer(id, spec) Ω(createErr).ShouldNot(HaveOccurred()) Ω(createdContainer).Should(Equal(fakeContainer)) }