return appRestarter } appRestarter.MetaDataReturns(commandregistry.CommandMetadata{Name: "restart"}) }) AfterEach(func() { commandregistry.Register(OriginalCommand) }) runCommand := func(args ...string) bool { return testcmd.RunCLICommand("copy-source", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirement failures", func() { It("when not logged in", func() { requirementsFactory.NewUsageRequirementReturns(requirements.Passing{}) requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand("source-app", "target-app")).ToNot(HavePassedRequirements()) }) It("when a space is not targeted", func() { requirementsFactory.NewUsageRequirementReturns(requirements.Passing{}) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Failing{Message: "not targeting space"}) Expect(runCommand("source-app", "target-app")).ToNot(HavePassedRequirements()) }) It("when provided too many args", func() { requirementsFactory.NewUsageRequirementReturns(requirements.Failing{}) Expect(runCommand("source-app", "target-app", "too-much", "app-name")).ToNot(HavePassedRequirements()) })