fakeKeyFactory.NewKeyPairStub = func(bits int) (keys.KeyPair, error) { return nil, <-errorCh } }) It("should return an error", func() { Expect(err).To(HaveOccurred()) }) }) }) }) Context("when there is a docker image url AND a droplet uri", func() { BeforeEach(func() { desiredAppReq.DockerImageUrl = "user/repo:tag" desiredAppReq.DropletUri = "http://the-droplet.uri.com" }) It("should error", func() { Expect(err).To(MatchError(recipebuilder.ErrMultipleAppSources)) }) }) Context("when there is NEITHER a docker image url NOR a droplet uri", func() { BeforeEach(func() { desiredAppReq.DockerImageUrl = "" desiredAppReq.DropletUri = "" }) It("should error", func() { Expect(err).To(MatchError(recipebuilder.ErrDropletSourceMissing))
}) It("does not desire the LRP", func() { Consistently(fakeBBS.RemoveDesiredLRPCallCount).Should(Equal(0)) }) It("responds with 400 Bad Request", func() { Expect(responseRecorder.Code).To(Equal(http.StatusBadRequest)) }) }) Context("when the LRP has docker image", func() { var newlyDesiredDockerLRP *models.DesiredLRP BeforeEach(func() { desireAppRequest.DropletUri = "" desireAppRequest.DockerImageUrl = "docker:///user/repo#tag" newlyDesiredDockerLRP = &models.DesiredLRP{ ProcessGuid: "new-process-guid", Instances: 1, RootFs: "docker:///user/repo#tag", Action: models.WrapAction(&models.RunAction{ User: "******", Path: "ls", }), Annotation: "last-modified-etag", } dockerBuilder.BuildReturns(newlyDesiredDockerLRP, nil) })