cmd.Requirements(requirementsFactory, flagContext) Expect(requirementsFactory.NewUsageRequirementCallCount()).To(Equal(1)) }) }) Describe("Execute", func() { var err error BeforeEach(func() { err := flagContext.Parse() Expect(err).NotTo(HaveOccurred()) }) JustBeforeEach(func() { err = cmd.Execute(flagContext) }) Context("when there are router groups", func() { BeforeEach(func() { routerGroups := models.RouterGroups{ models.RouterGroup{ GUID: "guid-0001", Name: "default-router-group", Type: "tcp", }, } routingAPIRepo.ListRouterGroupsStub = func(cb func(models.RouterGroup) bool) (apiErr error) { for _, r := range routerGroups { if !cb(r) { break
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) }) runCommand := func(args ...string) error { err := flagContext.Parse(args...) if err != nil { return err } cmd.Execute(flagContext) return nil } Describe("login 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) Expect(requirementsFactory.NewRoutingAPIRequirementCallCount()).To(Equal(1)) })