github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v7/set_label_command_test.go (about) 1 package v7_test 2 3 import ( 4 "code.cloudfoundry.org/cli/command/flag" 5 . "code.cloudfoundry.org/cli/command/v7" 6 "code.cloudfoundry.org/cli/command/v7/v7fakes" 7 "code.cloudfoundry.org/cli/types" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("set-label command", func() { 13 var ( 14 cmd SetLabelCommand 15 resourceName string 16 fakeLabelSetter *v7fakes.FakeLabelSetter 17 18 executeErr error 19 ) 20 21 Context("shared validations", func() { 22 BeforeEach(func() { 23 fakeLabelSetter = new(v7fakes.FakeLabelSetter) 24 cmd = SetLabelCommand{ 25 LabelSetter: fakeLabelSetter, 26 } 27 }) 28 29 When("some provided labels do not have a value part", func() { 30 BeforeEach(func() { 31 cmd.RequiredArgs = flag.SetLabelArgs{ 32 ResourceType: "anything", 33 ResourceName: resourceName, 34 Labels: []string{"FOO=BAR", "MISSING_EQUALS", "ENV=FAKE"}, 35 } 36 }) 37 38 It("complains about the missing equal sign", func() { 39 err := cmd.Execute(nil) 40 Expect(err).To(MatchError("Metadata error: no value provided for label 'MISSING_EQUALS'")) 41 Expect(err).To(HaveOccurred()) 42 }) 43 }) 44 45 When("all the provided labels are valid", func() { 46 BeforeEach(func() { 47 cmd.RequiredArgs = flag.SetLabelArgs{ 48 ResourceType: "anything", 49 ResourceName: resourceName, 50 Labels: []string{"FOO=BAR", "ENV=FAKE"}, 51 } 52 cmd.BuildpackStack = "some-stack" 53 54 }) 55 56 It("calls execute with the right parameters", func() { 57 executeErr = cmd.Execute(nil) 58 59 Expect(executeErr).ToNot(HaveOccurred()) 60 Expect(fakeLabelSetter.ExecuteCallCount()).To(Equal(1)) 61 targetResource, labels := fakeLabelSetter.ExecuteArgsForCall(0) 62 Expect(targetResource.ResourceType).To(Equal(cmd.RequiredArgs.ResourceType)) 63 Expect(targetResource.ResourceName).To(Equal(cmd.RequiredArgs.ResourceName)) 64 Expect(targetResource.BuildpackStack).To(Equal(cmd.BuildpackStack)) 65 Expect(labels).To(Equal(map[string]types.NullString{ 66 "FOO": types.NewNullString("BAR"), 67 "ENV": types.NewNullString("FAKE"), 68 })) 69 }) 70 }) 71 72 }) 73 })