Expect(cmd.Usage()).To(Equal("bmp bms --deployment[-d] <deployment file>")) }) }) Describe("#Options", func() { It("returns the options of a BmsCommand", func() { Expect(cmds.EqualOptions(cmd.Options(), options)).To(BeTrue()) Expect(cmd.Options().Deployment).ToNot(Equal("")) Expect(cmd.Options().Deployment).To(Equal("../../test_fixtures/bmp/deployment.yml")) }) }) Describe("#Validate", func() { It("validates a good BmsCommand", func() { validate, err := cmd.Validate() Expect(validate).To(BeTrue()) Expect(err).ToNot(HaveOccurred()) }) Context("bad BmsCommand", func() { BeforeEach(func() { options = cmds.Options{ Verbose: false, Deployment: "fake-deployment-file", } }) It("fails validation when deployment file not existed", func() { cmd = bmp.NewBmsCommand(options, fakeBmpClient) validate, err := cmd.Validate()
Describe("#Usage", func() { It("returns the usage text of a TargetCommand", func() { Expect(cmd.Usage()).To(Equal("bmp target http://url.to.bmp.server")) }) }) Describe("#Options", func() { It("returns the options of a TargetCommand", func() { Expect(cmds.EqualOptions(cmd.Options(), options)).To(BeTrue()) }) }) Describe("#Validate", func() { Context("when the options includes a URL", func() { It("returns true on validation", func() { validate, err := cmd.Validate() Expect(validate).To(BeTrue()) Expect(err).ToNot(HaveOccurred()) }) }) Context("when the options includes an empty target URL", func() { BeforeEach(func() { options.Target = "" cmd = bmp.NewTargetCommand(options, fakeBmpClient) }) It("returns false on validation", func() { validate, err := cmd.Validate() Expect(validate).To(BeFalse()) Expect(err).To(HaveOccurred())