}) updateCommandDependency := func(pluginCall bool) { deps.UI = ui deps.Config = configRepo deps.RepoLocator = deps.RepoLocator.SetSpaceRepository(spaceRepo) commandregistry.Commands.SetCommand(commandregistry.Commands.FindCommand("allow-space-ssh").SetDependency(deps, pluginCall)) } runCommand := func(args ...string) bool { return testcmd.RunCLICommand("allow-space-ssh", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirements", func() { It("fails with usage when called without enough arguments", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires", "argument"}, )) }) It("fails requirements when not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(runCommand("my-space")).To(BeFalse()) }) It("does not pass requirements if org is not targeted", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{})
deps = commandregistry.Dependency{ UI: ui, Config: configRepo, RepoLocator: repoLocator, } cmd = &user.UnsetOrgRole{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(map[string]flags.FlagSet{}) factory = new(requirementsfakes.FakeFactory) loginRequirement = &passingRequirement{} factory.NewLoginRequirementReturns(loginRequirement) userRequirement = new(requirementsfakes.FakeUserRequirement) userRequirement.ExecuteReturns(nil) factory.NewUserRequirementReturns(userRequirement) organizationRequirement = new(requirementsfakes.FakeOrganizationRequirement) organizationRequirement.ExecuteReturns(nil) factory.NewOrganizationRequirementReturns(organizationRequirement) }) Describe("Requirements", func() { Context("when not provided exactly three args", func() { BeforeEach(func() { flagContext.Parse("the-user-name", "the-org-name") })
starter.MetaDataReturns(commandregistry.CommandMetadata{Name: "start"}) stopper.SetDependencyStub = func(_ commandregistry.Dependency, _ bool) commandregistry.Command { return stopper } stopper.MetaDataReturns(commandregistry.CommandMetadata{Name: "stop"}) }) AfterEach(func() { commandregistry.Register(originalStart) commandregistry.Register(originalStop) }) Describe("requirements", func() { It("fails with usage when not provided exactly one arg", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires an argument"}, )) }) It("fails when not logged in", func() { requirementsFactory.NewApplicationRequirementReturns(applicationReq) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) Expect(runCommand()).To(BeFalse()) }) It("fails when a space is not targeted", func() { requirementsFactory.NewApplicationRequirementReturns(applicationReq) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{})
routingAPIRepo = new(apifakes.FakeRoutingAPIRepository) config = testconfig.NewRepositoryWithDefaults() repoLocator = api.RepositoryLocator{}.SetRoutingAPIRepository(routingAPIRepo) deps = commandregistry.Dependency{ UI: ui, Config: config, RepoLocator: repoLocator, } minAPIVersionRequirement = new(requirementsfakes.FakeRequirement) loginRequirement = new(requirementsfakes.FakeRequirement) routingAPIEndpoingRequirement = new(requirementsfakes.FakeRequirement) requirementsFactory = new(requirementsfakes.FakeFactory) requirementsFactory.NewMinAPIVersionRequirementReturns(minAPIVersionRequirement) requirementsFactory.NewLoginRequirementReturns(loginRequirement) requirementsFactory.NewRoutingAPIRequirementReturns(routingAPIEndpoingRequirement) cmd = new(routergroups.RouterGroups) cmd = cmd.SetDependency(deps, false).(*routergroups.RouterGroups) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) }) Describe("Requirements", func() { It("fails if the user is not logged in", func() { cmd.Requirements(requirementsFactory, flagContext) Expect(requirementsFactory.NewLoginRequirementCallCount()).To(Equal(1)) }) It("fails when the routing API endpoint is not set", func() {