Name: "target-app", GUID: "target-app-guid", }, } appRepo.ReadFromSpaceReturns(targetApp, nil) }) Describe("when no parameters are passed", func() { It("obtains both the source and target application from the same space", func() { runCommand("source-app", "target-app") targetAppName, spaceGUID := appRepo.ReadFromSpaceArgsForCall(0) Expect(targetAppName).To(Equal("target-app")) Expect(spaceGUID).To(Equal("my-space-guid")) Expect(appRepo.ReadArgsForCall(0)).To(Equal("source-app")) sourceAppGUID, targetAppGUID := copyAppSourceRepo.CopyApplicationArgsForCall(0) Expect(sourceAppGUID).To(Equal("source-app-guid")) Expect(targetAppGUID).To(Equal("target-app-guid")) appArg, orgName, spaceName := appRestarter.ApplicationRestartArgsForCall(0) Expect(appArg).To(Equal(targetApp)) Expect(orgName).To(Equal(config.OrganizationFields().Name)) Expect(spaceName).To(Equal(config.SpaceFields().Name)) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Copying source from app", "source-app", "to target app", "target-app", "in org my-org / space my-space as my-user..."}, []string{"Note: this may take some time"}, []string{"OK"}, ))
var appRepo *applicationsfakes.FakeRepository BeforeEach(func() { appRepo = new(applicationsfakes.FakeRepository) }) It("succeeds when an app with the given name exists", func() { app := models.Application{} app.Name = "my-app" app.GUID = "my-app-guid" appRepo.ReadReturns(app, nil) appReq := NewApplicationRequirement("foo", appRepo) err := appReq.Execute() Expect(err).NotTo(HaveOccurred()) Expect(appRepo.ReadArgsForCall(0)).To(Equal("foo")) Expect(appReq.GetApplication()).To(Equal(app)) }) It("fails when an app with the given name cannot be found", func() { appError := errors.NewModelNotFoundError("app", "foo") appRepo.ReadReturns(models.Application{}, appError) err := NewApplicationRequirement("foo", appRepo).Execute() Expect(err).To(HaveOccurred()) Expect(err).To(Equal(appError)) }) })
Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires", "argument"}, )) }) Context("When provided an app that exists", func() { BeforeEach(func() { appRepo.ReadReturns(app, nil) }) It("deletes an app when the user confirms", func() { ui.Inputs = []string{"y"} runCommand("app-to-delete") Expect(appRepo.ReadArgsForCall(0)).To(Equal("app-to-delete")) Expect(appRepo.DeleteArgsForCall(0)).To(Equal("app-to-delete-guid")) Expect(ui.Prompts).To(ContainSubstrings([]string{"Really delete the app app-to-delete"})) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Deleting", "app-to-delete", "my-org", "my-space", "my-user"}, []string{"OK"}, )) }) It("does not prompt when the -f flag is provided", func() { runCommand("-f", "app-to-delete") Expect(appRepo.ReadArgsForCall(0)).To(Equal("app-to-delete")) Expect(appRepo.DeleteArgsForCall(0)).To(Equal("app-to-delete-guid"))