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  })