workerClient.FindContainerForIdentifierReturns(nil, false, disaster) }) It("returns the error and no resource", func() { Expect(initErr).To(Equal(disaster)) Expect(initResource).To(BeNil()) }) It("does not create a container", func() { Expect(workerClient.SatisfyingCallCount()).To(BeZero()) Expect(workerClient.CreateContainerCallCount()).To(BeZero()) }) }) Context("when a container already exists for the session", func() { var fakeContainer *wfakes.FakeContainer BeforeEach(func() { fakeContainer = new(wfakes.FakeContainer) workerClient.FindContainerForIdentifierReturns(fakeContainer, true, nil) }) It("does not error and returns a resource", func() { Expect(initErr).NotTo(HaveOccurred()) Expect(initResource).NotTo(BeNil()) }) It("does not create a container", func() { Expect(workerClient.SatisfyingCallCount()).To(BeZero()) Expect(workerClient.CreateContainerCallCount()).To(BeZero()) })
foundContainer Container lookupErr error ) BeforeEach(func() { id = Identifier{Name: "some-name"} }) JustBeforeEach(func() { foundContainer, lookupErr = pool.LookupContainer(id) }) Context("with multiple workers", func() { var ( workerA *fakes.FakeWorker workerB *fakes.FakeWorker fakeContainer *fakes.FakeContainer ) BeforeEach(func() { workerA = new(fakes.FakeWorker) workerB = new(fakes.FakeWorker) workerA.ActiveContainersReturns(3) workerB.ActiveContainersReturns(2) fakeContainer = new(fakes.FakeContainer) fakeContainer.HandleReturns("fake-container") fakeProvider.WorkersReturns([]Worker{workerA, workerB}, nil) })
Platform: "some-platform", Tags: []string{"config", "tags"}, Image: "some-image", Params: map[string]string{"SOME": "params"}, Run: atc.TaskRunConfig{ Path: "ls", Args: []string{"some", "args"}, }, } configSource.FetchConfigReturns(fetchedConfig, nil) }) Context("when creating the task's container works", func() { var ( fakeContainer *wfakes.FakeContainer fakeProcess *gfakes.FakeProcess ) BeforeEach(func() { fakeContainer = new(wfakes.FakeContainer) fakeContainer.HandleReturns("some-handle") fakeWorkerClient.CreateContainerReturns(fakeContainer, nil) fakeProcess = new(gfakes.FakeProcess) fakeProcess.IDReturns(42) fakeContainer.RunReturns(fakeProcess, nil) fakeContainer.StreamInReturns(nil) }) Describe("before having created the container", func() {
}) AfterEach(func() { if !expectBadHandshake { conn.Close() } }) Context("when authenticated", func() { BeforeEach(func() { authValidator.IsAuthenticatedReturns(true) }) Context("and the worker client returns a container", func() { var ( fakeDBContainer db.Container fakeContainer *workerfakes.FakeContainer ) BeforeEach(func() { fakeDBContainer = db.Container{} containerDB.GetContainerReturns(fakeDBContainer, true, nil) fakeContainer = new(workerfakes.FakeContainer) fakeWorkerClient.LookupContainerReturns(fakeContainer, true, nil) }) Context("when the call to lookup the container returns an error", func() { BeforeEach(func() { fakeWorkerClient.LookupContainerReturns(nil, false, errors.New("nope")) })