func (cmd *SSH) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) ([]requirements.Requirement, error) { if len(fc.Args()) != 1 { cmd.ui.Failed(T("Incorrect Usage. Requires APP_NAME as argument") + "\n\n" + commandregistry.Commands.CommandUsage("ssh")) return nil, fmt.Errorf("Incorrect usage: %d arguments of %d required", len(fc.Args()), 1) } if fc.IsSet("i") && fc.Int("i") < 0 { cmd.ui.Failed(fmt.Sprintf(T("Incorrect Usage:")+" %s\n\n%s", T("Value for flag 'app-instance-index' cannot be negative"), commandregistry.Commands.CommandUsage("ssh"))) return nil, fmt.Errorf("Incorrect usage: app-instance-index cannot be negative") } var err error cmd.opts, err = options.NewSSHOptions(fc) if err != nil { cmd.ui.Failed(fmt.Sprintf(T("Incorrect Usage:")+" %s\n\n%s", err.Error(), commandregistry.Commands.CommandUsage("ssh"))) return nil, err } cmd.appReq = requirementsFactory.NewApplicationRequirement(cmd.opts.AppName) reqs := []requirements.Requirement{ requirementsFactory.NewLoginRequirement(), requirementsFactory.NewTargetedSpaceRequirement(), cmd.appReq, } return reqs, nil }
fc.NewIntFlag("app-instance-index", "i", "") fc.NewBoolFlag("skip-host-validation", "k", "") fc.NewBoolFlag("skip-remote-execution", "N", "") fc.NewBoolFlag("request-pseudo-tty", "t", "") fc.NewBoolFlag("force-pseudo-tty", "tt", "") fc.NewBoolFlag("disable-pseudo-tty", "T", "") args = []string{} parseError = nil }) JustBeforeEach(func() { err := fc.Parse(args...) Expect(err).NotTo(HaveOccurred()) opts, parseError = options.NewSSHOptions(fc) }) Context("when an app name is provided", func() { Context("as the only argument", func() { BeforeEach(func() { args = append(args, "app-1") }) It("populates the AppName field", func() { Expect(parseError).NotTo(HaveOccurred()) Expect(opts.AppName).To(Equal("app-1")) }) }) Context("as the last argument", func() {