github.com/nimakaviani/cli@v6.37.1-0.20180619223813-e734901a73fa+incompatible/actor/pushaction/domain_test.go (about)

     1  package pushaction_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	"code.cloudfoundry.org/cli/actor/actionerror"
     7  	. "code.cloudfoundry.org/cli/actor/pushaction"
     8  	"code.cloudfoundry.org/cli/actor/pushaction/pushactionfakes"
     9  	"code.cloudfoundry.org/cli/actor/v2action"
    10  
    11  	. "github.com/onsi/ginkgo"
    12  	. "github.com/onsi/gomega"
    13  )
    14  
    15  var _ = Describe("Domains", func() {
    16  	var (
    17  		actor       *Actor
    18  		fakeV2Actor *pushactionfakes.FakeV2Actor
    19  	)
    20  
    21  	BeforeEach(func() {
    22  		fakeV2Actor = new(pushactionfakes.FakeV2Actor)
    23  		actor = NewActor(fakeV2Actor, nil, nil)
    24  	})
    25  
    26  	Describe("DefaultDomain", func() {
    27  		var (
    28  			orgGUID       string
    29  			defaultDomain v2action.Domain
    30  			warnings      Warnings
    31  			executeErr    error
    32  		)
    33  
    34  		BeforeEach(func() {
    35  			orgGUID = "some-org-guid"
    36  		})
    37  
    38  		JustBeforeEach(func() {
    39  			defaultDomain, warnings, executeErr = actor.DefaultDomain(orgGUID)
    40  		})
    41  
    42  		Context("when retrieving the domains is successful", func() {
    43  			BeforeEach(func() {
    44  				fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{
    45  					{
    46  						Name: "private-domain.com",
    47  						GUID: "some-private-domain-guid",
    48  					},
    49  					{
    50  						Name: "private-domain-2.com",
    51  						GUID: "some-private-domain-guid-2",
    52  					},
    53  					{
    54  						Name: "shared-domain.com",
    55  						GUID: "some-shared-domain-guid",
    56  					},
    57  				},
    58  					v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"},
    59  					nil,
    60  				)
    61  			})
    62  
    63  			It("returns the first domain and warnings", func() {
    64  				Expect(executeErr).ToNot(HaveOccurred())
    65  				Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings"))
    66  				Expect(defaultDomain).To(Equal(v2action.Domain{
    67  					Name: "private-domain.com",
    68  					GUID: "some-private-domain-guid",
    69  				}))
    70  
    71  				Expect(fakeV2Actor.GetOrganizationDomainsCallCount()).To(Equal(1))
    72  				Expect(fakeV2Actor.GetOrganizationDomainsArgsForCall(0)).To(Equal(orgGUID))
    73  			})
    74  		})
    75  
    76  		Context("no domains exist", func() {
    77  			BeforeEach(func() {
    78  				fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, nil)
    79  			})
    80  
    81  			It("returns the first shared domain and warnings", func() {
    82  				Expect(executeErr).To(MatchError(actionerror.NoDomainsFoundError{OrganizationGUID: orgGUID}))
    83  				Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings"))
    84  			})
    85  		})
    86  
    87  		Context("when retrieving the domains errors", func() {
    88  			var expectedErr error
    89  
    90  			BeforeEach(func() {
    91  				expectedErr = errors.New("whoops")
    92  				fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, expectedErr)
    93  			})
    94  
    95  			It("returns errors and warnings", func() {
    96  				Expect(executeErr).To(MatchError(expectedErr))
    97  				Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings"))
    98  			})
    99  		})
   100  	})
   101  })