updateCommandDependency(false) }) runCommand := func(args ...string) bool { cmd := command_registry.Commands.FindCommand("app") return testcmd.RunCliCommand(cmd, args, requirementsFactory) } Describe("requirements", func() { It("fails if not logged in", func() { requirementsFactory.LoginSuccess = false Expect(runCommand("my-app")).To(BeFalse()) }) It("fails if a space is not targeted", func() { requirementsFactory.TargetedSpaceSuccess = false Expect(runCommand("my-app")).To(BeFalse()) }) It("fails with usage when not provided exactly one arg", func() { passed := runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"Incorrect Usage", "Requires an argument"}, )) Expect(passed).To(BeFalse()) }) }) Describe("when invoked by a plugin", func() { var ( pluginAppModel *plugin_models.GetAppModel
app = models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" appRepo = &testapi.FakeApplicationRepository{} requirementsFactory = &testreq.FakeReqFactory{} configRepo = testconfig.NewRepositoryWithDefaults() }) runCommand := func(args ...string) { testcmd.RunCommand(NewSetEnv(ui, configRepo, appRepo), args, requirementsFactory) } Describe("requirements", func() { It("fails when login is not successful", func() { requirementsFactory.Application = app requirementsFactory.TargetedSpaceSuccess = true runCommand("hey", "gabba", "gabba") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) It("fails when a space is not targeted", func() { requirementsFactory.Application = app requirementsFactory.LoginSuccess = true runCommand("hey", "gabba", "gabba") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) It("fails with usage when not provided with exactly three args", func() { requirementsFactory.Application = app