UI: ui, PluginModels: &commandregistry.PluginModels{}, RepoLocator: api.RepositoryLocator{}.SetApplicationRepository(appRepo), } cmd = &service.ShowService{} flagContext = flags.NewFlagContext(cmd.MetaData().Flags) reqFactory = new(requirementsfakes.FakeFactory) loginRequirement = &passingRequirement{Name: "login-requirement"} reqFactory.NewLoginRequirementReturns(loginRequirement) targetedSpaceRequirement = &passingRequirement{Name: "targeted-space-requirement"} reqFactory.NewTargetedSpaceRequirementReturns(targetedSpaceRequirement) serviceInstanceRequirement = &requirementsfakes.FakeServiceInstanceRequirement{} reqFactory.NewServiceInstanceRequirementReturns(serviceInstanceRequirement) }) Describe("Requirements", func() { BeforeEach(func() { cmd.SetDependency(deps, pluginCall) }) Context("when not provided exactly 1 argument", func() { It("fails", func() { err := flagContext.Parse("too", "many") Expect(err).NotTo(HaveOccurred()) Expect(func() { cmd.Requirements(reqFactory, flagContext) }).To(Panic()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires an argument"}, ))