Config: configRepo, RepoLocator: repoLocator, } cmd = domain.CreateSharedDomain{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) factory = new(requirementsfakes.FakeFactory) loginRequirement = &passingRequirement{Name: "Login"} factory.NewLoginRequirementReturns(loginRequirement) routingAPIRequirement = &passingRequirement{Name: "RoutingApi"} factory.NewRoutingAPIRequirementReturns(routingAPIRequirement) minAPIVersionRequirement = &passingRequirement{"MinAPIVersionRequirement"} factory.NewMinAPIVersionRequirementReturns(minAPIVersionRequirement) routingAPIRepo.ListRouterGroupsStub = func(cb func(models.RouterGroup) bool) error { for _, r := range routerGroups { if !cb(r) { break } } return nil } }) Describe("Requirements", func() {
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() { cmd.Requirements(requirementsFactory, flagContext)