github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/flag/org_role_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("OrgRole", func() {
    12  	var orgRole OrgRole
    13  
    14  	Describe("Complete", func() {
    15  		DescribeTable("returns list of completions",
    16  			func(prefix string, matches []flags.Completion) {
    17  				completions := orgRole.Complete(prefix)
    18  				Expect(completions).To(Equal(matches))
    19  			},
    20  			Entry("returns 'OrgManager' and 'OrgAuditor' when passed 'O'", "O",
    21  				[]flags.Completion{{Item: "OrgManager"}, {Item: "OrgAuditor"}}),
    22  			Entry("returns 'OrgManager' and 'OrgAuditor' when passed 'o'", "o",
    23  				[]flags.Completion{{Item: "OrgManager"}, {Item: "OrgAuditor"}}),
    24  			Entry("returns 'BillingManager' when passed 'B'", "B",
    25  				[]flags.Completion{{Item: "BillingManager"}}),
    26  			Entry("returns 'BillingManager' when passed 'b'", "b",
    27  				[]flags.Completion{{Item: "BillingManager"}}),
    28  			Entry("completes to 'OrgAuditor' when passed 'orgA'", "orgA",
    29  				[]flags.Completion{{Item: "OrgAuditor"}}),
    30  			Entry("completes to 'OrgManager' when passed 'orgm'", "orgm",
    31  				[]flags.Completion{{Item: "OrgManager"}}),
    32  			Entry("returns 'OrgManager', 'BillingManager' and 'OrgAuditor' when passed nothing", "",
    33  				[]flags.Completion{{Item: "OrgManager"}, {Item: "BillingManager"}, {Item: "OrgAuditor"}}),
    34  			Entry("completes to nothing when passed 'wut'", "wut",
    35  				[]flags.Completion{}),
    36  		)
    37  	})
    38  
    39  	Describe("UnmarshalFlag", func() {
    40  		BeforeEach(func() {
    41  			orgRole = OrgRole{}
    42  		})
    43  
    44  		It("accepts OrgManager", func() {
    45  			err := orgRole.UnmarshalFlag("orgmanager")
    46  			Expect(err).ToNot(HaveOccurred())
    47  			Expect(orgRole).To(Equal(OrgRole{Role: "OrgManager"}))
    48  		})
    49  
    50  		It("accepts BillingManager", func() {
    51  			err := orgRole.UnmarshalFlag("Billingmanager")
    52  			Expect(err).ToNot(HaveOccurred())
    53  			Expect(orgRole).To(Equal(OrgRole{Role: "BillingManager"}))
    54  		})
    55  
    56  		It("accepts OrgAuditor", func() {
    57  			err := orgRole.UnmarshalFlag("orgAuditor")
    58  			Expect(err).ToNot(HaveOccurred())
    59  			Expect(orgRole).To(Equal(OrgRole{Role: "OrgAuditor"}))
    60  		})
    61  
    62  		It("errors on anything else", func() {
    63  			err := orgRole.UnmarshalFlag("I AM A BANANANANANANANANA")
    64  			Expect(err).To(MatchError(&flags.Error{
    65  				Type:    flags.ErrRequired,
    66  				Message: `ROLE must be "OrgManager", "BillingManager" and "OrgAuditor"`,
    67  			}))
    68  			Expect(orgRole.Role).To(BeEmpty())
    69  		})
    70  	})
    71  })