github.com/sleungcy/cli@v7.1.0+incompatible/command/flag/network_port_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/ginkgo/extensions/table" 8 . "github.com/onsi/gomega" 9 ) 10 11 var _ = Describe("NetworkPort", func() { 12 var port NetworkPort 13 14 Describe("UnmarshalFlag", func() { 15 BeforeEach(func() { 16 port = NetworkPort{} 17 }) 18 19 DescribeTable("it sets the ports correctly", 20 func(input string, expectedStart int, expectedEnd int) { 21 err := port.UnmarshalFlag(input) 22 Expect(err).ToNot(HaveOccurred()) 23 Expect(port).To(Equal(NetworkPort{ 24 StartPort: expectedStart, 25 EndPort: expectedEnd, 26 })) 27 }, 28 Entry("when provided '3000' it sets the start and end to 3000", "3000", 3000, 3000), 29 Entry("when provided '3000-6000' it sets the start to 3000 and end to 6000", "3000-6000", 3000, 6000), 30 ) 31 32 DescribeTable("errors correctly", 33 func(input string, expectedErr error) { 34 err := port.UnmarshalFlag(input) 35 Expect(err).To(MatchError(expectedErr)) 36 }, 37 38 Entry("when provided 'fooo' it returns back a flag error", "fooo", 39 &flags.Error{ 40 Type: flags.ErrRequired, 41 Message: `PORT must be a positive integer`, 42 }), 43 Entry("when provided '1-fooo' it returns back a flag error", "1-fooo", 44 &flags.Error{ 45 Type: flags.ErrRequired, 46 Message: `PORT must be a positive integer`, 47 }), 48 Entry("when provided '-1' it returns back a flag error", "-1", 49 &flags.Error{ 50 Type: flags.ErrRequired, 51 Message: `PORT must be a positive integer`, 52 }), 53 Entry("when provided '-1-1' it returns back a flag error", "-1-1", 54 &flags.Error{ 55 Type: flags.ErrRequired, 56 Message: `PORT must be a positive integer`, 57 }), 58 Entry("when provided '1-2-3' it returns back a flag error", "1-2-3", 59 &flags.Error{ 60 Type: flags.ErrRequired, 61 Message: `PORT syntax must match integer[-integer]`, 62 }), 63 ) 64 }) 65 })