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))
Пример #2
0
			})

			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)
			})