Esempio n. 1
0
			}
			return fakeScripts[jobName]
		}
	})

	It("is asynchronous", func() {
		Expect(action.IsAsynchronous()).To(BeTrue())
	})

	It("is not persistent", func() {
		Expect(action.IsPersistent()).To(BeFalse())
	})

	Describe("Run", func() {
		var (
			parallelScript *fakescript.FakeScript
		)

		BeforeEach(func() {
			parallelScript = &fakescript.FakeScript{}
			jobScriptProvider.NewParallelScriptReturns(parallelScript)
		})

		addJobTemplate := func(spec *applyspec.JobSpec, name string) {
			spec.Template = name
			spec.JobTemplateSpecs = append(spec.JobTemplateSpecs, applyspec.JobTemplateSpec{Name: name})
		}

		Context("when drain update is requested", func() {
			newSpec := boshas.V1ApplySpec{
				PackageSpecs: map[string]boshas.PackageSpec{
	})

	Describe("Run", func() {
		Context("when there are no scripts", func() {
			BeforeEach(func() {
				scripts = []boshscript.Script{}
			})

			It("succeeds", func() {
				err := parallelScript.Run()
				Expect(err).ToNot(HaveOccurred())
			})
		})

		Context("when script exists", func() {
			var existingScript *fakescript.FakeScript

			BeforeEach(func() {
				existingScript = &fakescript.FakeScript{}
				existingScript.TagReturns("fake-job-1")
				existingScript.PathReturns("path/to/script1")
				existingScript.ExistsReturns(true)
				scripts = append(scripts, existingScript)
			})

			It("executes the script and succeeds", func() {
				existingScript.RunReturns(nil)

				err := parallelScript.Run()
				Expect(err).ToNot(HaveOccurred())