github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+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  })