github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/flag/space_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("SpaceRole", func() { 12 var spaceRole SpaceRole 13 14 Describe("Complete", func() { 15 DescribeTable("returns list of completions", 16 func(prefix string, matches []flags.Completion) { 17 completions := spaceRole.Complete(prefix) 18 Expect(completions).To(Equal(matches)) 19 }, 20 Entry("returns 'SpaceManager', 'SpaceDeveloper' and 'SpaceAuditor' when passed 'S'", "S", 21 []flags.Completion{{Item: "SpaceManager"}, {Item: "SpaceDeveloper"}, {Item: "SpaceAuditor"}}), 22 Entry("returns 'SpaceManager', 'SpaceDeveloper' and 'SpaceAuditor' when passed 's'", "s", 23 []flags.Completion{{Item: "SpaceManager"}, {Item: "SpaceDeveloper"}, {Item: "SpaceAuditor"}}), 24 Entry("completes to 'SpaceAuditor' when passed 'Spacea'", "Spacea", 25 []flags.Completion{{Item: "SpaceAuditor"}}), 26 Entry("completes to 'SpaceDeveloper' when passed 'Spaced'", "Spaced", 27 []flags.Completion{{Item: "SpaceDeveloper"}}), 28 Entry("completes to 'SpaceManager' when passed 'Spacem'", "Spacem", 29 []flags.Completion{{Item: "SpaceManager"}}), 30 Entry("completes to 'SpaceManager' when passed 'spacEM'", "spacEM", 31 []flags.Completion{{Item: "SpaceManager"}}), 32 Entry("returns 'SpaceManager', 'SpaceDeveloper' and 'SpaceAuditor' when passed nothing", "", 33 []flags.Completion{{Item: "SpaceManager"}, {Item: "SpaceDeveloper"}, {Item: "SpaceAuditor"}}), 34 Entry("completes to nothing when passed 'wut'", "wut", 35 []flags.Completion{}), 36 ) 37 }) 38 39 Describe("UnmarshalFlag", func() { 40 BeforeEach(func() { 41 spaceRole = SpaceRole{} 42 }) 43 44 It("accepts SpaceManager", func() { 45 err := spaceRole.UnmarshalFlag("spacemanager") 46 Expect(err).ToNot(HaveOccurred()) 47 Expect(spaceRole).To(Equal(SpaceRole{Role: "SpaceManager"})) 48 }) 49 50 It("accepts SpaceDeveloper", func() { 51 err := spaceRole.UnmarshalFlag("Spacedeveloper") 52 Expect(err).ToNot(HaveOccurred()) 53 Expect(spaceRole).To(Equal(SpaceRole{Role: "SpaceDeveloper"})) 54 }) 55 56 It("accepts SpaceAuditor", func() { 57 err := spaceRole.UnmarshalFlag("spaceAuditor") 58 Expect(err).ToNot(HaveOccurred()) 59 Expect(spaceRole).To(Equal(SpaceRole{Role: "SpaceAuditor"})) 60 }) 61 62 It("errors on anything else", func() { 63 err := spaceRole.UnmarshalFlag("I AM A BANANANANANANANANA") 64 Expect(err).To(MatchError(&flags.Error{ 65 Type: flags.ErrRequired, 66 Message: `ROLE must be "SpaceManager", "SpaceDeveloper" and "SpaceAuditor"`, 67 })) 68 Expect(spaceRole.Role).To(BeEmpty()) 69 }) 70 }) 71 })