cmd = &commands.OneTimeSSHCode{} cmd.SetDependency(deps, false) flagContext = flags.NewFlagContext(cmd.MetaData().Flags) factory = &fakerequirements.FakeFactory{} endpointRequirement = &passingRequirement{Name: "endpoint-requirement"} factory.NewApiEndpointRequirementReturns(endpointRequirement) }) Describe("Requirements", func() { It("returns an EndpointRequirement", func() { actualRequirements, err := cmd.Requirements(factory, flagContext) Expect(err).NotTo(HaveOccurred()) Expect(factory.NewApiEndpointRequirementCallCount()).To(Equal(1)) Expect(actualRequirements).To(ContainElement(endpointRequirement)) }) Context("when not provided exactly zero args", func() { BeforeEach(func() { flagContext.Parse("domain-name") }) It("fails with usage", func() { Expect(func() { cmd.Requirements(factory, flagContext) }).To(Panic()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Incorrect Usage. No argument required"}, )) })