github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/command/flag/org_role_test.go (about) 1 package flag_test 2 3 import ( 4 . "code.cloudfoundry.org/cli/command/flag" 5 6 flags "github.com/jessevdk/go-flags" 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/ginkgo/extensions/table" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("OrgRole", func() { 13 var orgRole OrgRole 14 15 Describe("UnmarshalFlag", func() { 16 BeforeEach(func() { 17 orgRole = OrgRole{} 18 }) 19 20 It("accepts OrgManager", func() { 21 err := orgRole.UnmarshalFlag("orgmanager") 22 Expect(err).ToNot(HaveOccurred()) 23 Expect(orgRole).To(Equal(OrgRole{Role: "OrgManager"})) 24 }) 25 26 It("accepts BillingManager", func() { 27 err := orgRole.UnmarshalFlag("Billingmanager") 28 Expect(err).ToNot(HaveOccurred()) 29 Expect(orgRole).To(Equal(OrgRole{Role: "BillingManager"})) 30 }) 31 32 It("accepts OrgAuditor", func() { 33 err := orgRole.UnmarshalFlag("orgAuditor") 34 Expect(err).ToNot(HaveOccurred()) 35 Expect(orgRole).To(Equal(OrgRole{Role: "OrgAuditor"})) 36 }) 37 38 It("errors on anything else", func() { 39 err := orgRole.UnmarshalFlag("I AM A BANANANANANANANANA") 40 Expect(err).To(MatchError(&flags.Error{ 41 Type: flags.ErrRequired, 42 Message: `ROLE must be "OrgManager", "BillingManager" and "OrgAuditor"`, 43 })) 44 Expect(orgRole.Role).To(BeEmpty()) 45 }) 46 }) 47 48 Describe("Complete", func() { 49 DescribeTable("returns list of completions", 50 func(prefix string, matches []flags.Completion) { 51 completions := orgRole.Complete(prefix) 52 Expect(completions).To(Equal(matches)) 53 }, 54 55 Entry("returns 'OrgManager' and 'OrgAuditor' when passed 'O'", 56 "O", 57 []flags.Completion{{Item: "OrgManager"}, {Item: "OrgAuditor"}}), 58 Entry("returns 'OrgManager' and 'OrgAuditor' when passed 'o'", 59 "o", 60 []flags.Completion{{Item: "OrgManager"}, {Item: "OrgAuditor"}}), 61 Entry("returns 'BillingManager' when passed 'B'", 62 "B", 63 []flags.Completion{{Item: "BillingManager"}}), 64 Entry("returns 'BillingManager' when passed 'b'", 65 "b", 66 []flags.Completion{{Item: "BillingManager"}}), 67 Entry("completes to 'OrgAuditor' when passed 'Orga'", 68 "Orga", 69 []flags.Completion{{Item: "OrgAuditor"}}), 70 Entry("completes to 'OrgManager' when passed 'Orgm'", 71 "Orgm", 72 []flags.Completion{{Item: "OrgManager"}}), 73 Entry("returns 'OrgManager', 'BillingManager' and 'OrgAuditor' when passed nothing", 74 "", 75 []flags.Completion{{Item: "OrgManager"}, {Item: "BillingManager"}, {Item: "OrgAuditor"}}), 76 Entry("completes to nothing when passed 'wut'", 77 "wut", 78 []flags.Completion{}), 79 ) 80 }) 81 })