github.com/cloudfoundry/cli@v7.1.0+incompatible/actor/v2action/shared_domain_test.go (about)

     1  package v2action_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	. "code.cloudfoundry.org/cli/actor/v2action"
     7  	"code.cloudfoundry.org/cli/actor/v2action/v2actionfakes"
     8  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv2"
     9  
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("Shared Domain Actions", func() {
    15  	var (
    16  		actor                     *Actor
    17  		fakeCloudControllerClient *v2actionfakes.FakeCloudControllerClient
    18  		executeErr                error
    19  		domainName                string
    20  		routerGroup               RouterGroup
    21  		warnings                  Warnings
    22  		isInternal                bool
    23  	)
    24  
    25  	BeforeEach(func() {
    26  		isInternal = false
    27  		fakeCloudControllerClient = new(v2actionfakes.FakeCloudControllerClient)
    28  		actor = NewActor(fakeCloudControllerClient, nil, nil)
    29  	})
    30  
    31  	Describe("CreateSharedDomain", func() {
    32  		BeforeEach(func() {
    33  			domainName = "some-domain-name"
    34  			routerGroup = RouterGroup{
    35  				GUID: "some-guid",
    36  			}
    37  		})
    38  
    39  		JustBeforeEach(func() {
    40  			warnings, executeErr = actor.CreateSharedDomain(domainName, routerGroup, isInternal)
    41  		})
    42  
    43  		It("should call the appropriate method on the client", func() {
    44  			Expect(fakeCloudControllerClient.CreateSharedDomainCallCount()).To(Equal(1))
    45  			domain, routerGrouId, internal := fakeCloudControllerClient.CreateSharedDomainArgsForCall(0)
    46  			Expect(domain).To(Equal(domainName))
    47  			Expect(routerGrouId).To(Equal(routerGroup.GUID))
    48  			Expect(internal).To(BeFalse())
    49  		})
    50  
    51  		When("the call fails", func() {
    52  			var expectedError error
    53  			BeforeEach(func() {
    54  				expectedError = errors.New("something terrible has happened")
    55  				fakeCloudControllerClient.CreateSharedDomainReturns(
    56  					ccv2.Warnings{"some warning", "another warning"},
    57  					expectedError,
    58  				)
    59  			})
    60  			It("should return the appropriate error", func() {
    61  				Expect(executeErr).To(MatchError(expectedError))
    62  			})
    63  
    64  			It("should return all warnings", func() {
    65  				Expect(warnings).To(ConsistOf("some warning", "another warning"))
    66  			})
    67  		})
    68  
    69  		When("the call succeeeds", func() {
    70  			BeforeEach(func() {
    71  				fakeCloudControllerClient.CreateSharedDomainReturns(
    72  					ccv2.Warnings{"some warning", "another warning"},
    73  					nil,
    74  				)
    75  			})
    76  
    77  			When("the internal flag is passed", func() {
    78  				BeforeEach(func() {
    79  					isInternal = true
    80  				})
    81  				It("passes the internal flag", func() {
    82  					Expect(fakeCloudControllerClient.CreateSharedDomainCallCount()).To(Equal(1))
    83  					domain, routerGrouId, isInternal := fakeCloudControllerClient.CreateSharedDomainArgsForCall(0)
    84  					Expect(domain).To(Equal(domainName))
    85  					Expect(routerGrouId).To(Equal(routerGroup.GUID))
    86  					Expect(isInternal).To(BeTrue())
    87  				})
    88  			})
    89  
    90  			It("returns the all warnings and no error", func() {
    91  				Expect(executeErr).ToNot(HaveOccurred())
    92  				Expect(warnings).To(ConsistOf("some warning", "another warning"))
    93  			})
    94  		})
    95  	})
    96  })