github.com/sleungcy/cli@v7.1.0+incompatible/command/flag/integer_limit_test.go (about) 1 package flag_test 2 3 import ( 4 . "code.cloudfoundry.org/cli/command/flag" 5 flags "github.com/jessevdk/go-flags" 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 ) 9 10 var _ = Describe("IntegerLimit", func() { 11 var limit IntegerLimit 12 13 BeforeEach(func() { 14 limit = IntegerLimit{} 15 }) 16 17 Describe("UnmarshalFlag", func() { 18 When("the empty string is provided", func() { 19 It("sets IsSet to false", func() { 20 err := limit.UnmarshalFlag("") 21 Expect(err).ToNot(HaveOccurred()) 22 Expect(limit).To(Equal(IntegerLimit{Value: 0, IsSet: false})) 23 }) 24 }) 25 26 When("an invalid value is provided", func() { 27 It("returns an error", func() { 28 err := limit.UnmarshalFlag("abcdef") 29 Expect(err).To(MatchError(&flags.Error{ 30 Type: flags.ErrRequired, 31 Message: "invalid integer limit (expected int >= -1)", 32 })) 33 Expect(limit).To(Equal(IntegerLimit{Value: 0, IsSet: false})) 34 }) 35 }) 36 37 When("an out of bounds integer is provided", func() { 38 It("returns an error", func() { 39 err := limit.UnmarshalFlag("-10") 40 Expect(err).To(MatchError(&flags.Error{ 41 Type: flags.ErrRequired, 42 Message: "invalid integer limit (expected int >= -1)", 43 })) 44 }) 45 }) 46 47 When("a valid integer is provided", func() { 48 It("stores the integer and sets IsSet to true", func() { 49 err := limit.UnmarshalFlag("-1") 50 Expect(err).ToNot(HaveOccurred()) 51 Expect(limit).To(Equal(IntegerLimit{Value: -1, IsSet: true})) 52 }) 53 }) 54 }) 55 })