github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v7action/organization_summary_test.go (about)

     1  package v7action_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	. "code.cloudfoundry.org/cli/actor/v7action"
     7  	"code.cloudfoundry.org/cli/actor/v7action/v7actionfakes"
     8  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     9  	"code.cloudfoundry.org/clock"
    10  
    11  	. "github.com/onsi/ginkgo"
    12  	. "github.com/onsi/gomega"
    13  )
    14  
    15  var _ = Describe("Organization Summary Actions", func() {
    16  	var (
    17  		actor                     *Actor
    18  		fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient
    19  		orgSummary                OrganizationSummary
    20  		warnings                  Warnings
    21  		err                       error
    22  		expectedErr               error
    23  	)
    24  
    25  	BeforeEach(func() {
    26  		fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient)
    27  		actor = NewActor(fakeCloudControllerClient, nil, nil, nil, clock.NewClock())
    28  	})
    29  
    30  	JustBeforeEach(func() {
    31  		orgSummary, warnings, err = actor.GetOrganizationSummaryByName("some-org")
    32  	})
    33  
    34  	Describe("GetOrganizationSummaryByName", func() {
    35  		When("no errors are encountered", func() {
    36  			BeforeEach(func() {
    37  				fakeCloudControllerClient.GetOrganizationsReturns(
    38  					[]ccv3.Organization{
    39  						{
    40  							GUID: "some-org-guid",
    41  							Name: "some-org",
    42  						},
    43  					},
    44  					ccv3.Warnings{"get-org-warning-1", "get-org-warning-2"},
    45  					nil)
    46  
    47  				fakeCloudControllerClient.GetOrganizationDomainsReturns(
    48  					[]ccv3.Domain{
    49  						{
    50  							GUID: "shared-domain-guid-2",
    51  							Name: "shared-domain-2",
    52  						},
    53  						{
    54  							GUID: "shared-domain-guid-1",
    55  							Name: "shared-domain-1",
    56  						},
    57  					},
    58  					ccv3.Warnings{"domain-warning-1", "domain-warning-2"},
    59  					nil)
    60  
    61  				fakeCloudControllerClient.GetSpacesReturns(
    62  					[]ccv3.Space{
    63  						{
    64  							GUID: "space-2-guid",
    65  							Name: "space-2",
    66  						},
    67  						{
    68  							GUID: "space-1-guid",
    69  							Name: "space-1",
    70  						},
    71  					},
    72  					ccv3.Warnings{"space-warning-1", "space-warning-2"},
    73  					nil)
    74  
    75  				fakeCloudControllerClient.GetOrganizationDefaultIsolationSegmentReturns(
    76  					ccv3.Relationship{
    77  						GUID: "default-iso-seg-guid",
    78  					},
    79  					ccv3.Warnings{"iso-seg-warning-1", "iso-seg-warning-2"},
    80  					nil)
    81  			})
    82  
    83  			It("returns the organization summary and all warnings", func() {
    84  				Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
    85  				Expect(fakeCloudControllerClient.GetOrganizationsArgsForCall(0)[0].Values).To(ConsistOf("some-org"))
    86  				Expect(fakeCloudControllerClient.GetOrganizationDomainsCallCount()).To(Equal(1))
    87  				orgGuid, labelSelector := fakeCloudControllerClient.GetOrganizationDomainsArgsForCall(0)
    88  				Expect(orgGuid).To(Equal("some-org-guid"))
    89  				Expect(labelSelector).To(Equal([]ccv3.Query{}))
    90  				Expect(fakeCloudControllerClient.GetSpacesCallCount()).To(Equal(1))
    91  				Expect(fakeCloudControllerClient.GetSpacesArgsForCall(0)[0].Values).To(ConsistOf("some-org-guid"))
    92  
    93  				Expect(orgSummary).To(Equal(OrganizationSummary{
    94  					Organization: Organization{
    95  						Name: "some-org",
    96  						GUID: "some-org-guid",
    97  					},
    98  					DomainNames:                 []string{"shared-domain-1", "shared-domain-2"},
    99  					SpaceNames:                  []string{"space-1", "space-2"},
   100  					DefaultIsolationSegmentGUID: "default-iso-seg-guid",
   101  				}))
   102  				Expect(warnings).To(ConsistOf(
   103  					"get-org-warning-1",
   104  					"get-org-warning-2",
   105  					"domain-warning-1",
   106  					"domain-warning-2",
   107  					"space-warning-1",
   108  					"space-warning-2",
   109  					"iso-seg-warning-1",
   110  					"iso-seg-warning-2",
   111  				))
   112  				Expect(err).NotTo(HaveOccurred())
   113  			})
   114  		})
   115  
   116  		When("an error is encountered getting the organization", func() {
   117  			BeforeEach(func() {
   118  				expectedErr = errors.New("get-orgs-error")
   119  				fakeCloudControllerClient.GetOrganizationsReturns(
   120  					[]ccv3.Organization{},
   121  					ccv3.Warnings{
   122  						"get-org-warning-1",
   123  						"get-org-warning-2",
   124  					},
   125  					expectedErr,
   126  				)
   127  			})
   128  
   129  			It("returns the error and all warnings", func() {
   130  				Expect(err).To(MatchError(expectedErr))
   131  				Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2"))
   132  			})
   133  		})
   134  
   135  		When("the organization exists", func() {
   136  			BeforeEach(func() {
   137  				fakeCloudControllerClient.GetOrganizationsReturns(
   138  					[]ccv3.Organization{
   139  						{GUID: "some-org-guid"},
   140  					},
   141  					ccv3.Warnings{
   142  						"get-org-warning-1",
   143  						"get-org-warning-2",
   144  					},
   145  					nil,
   146  				)
   147  			})
   148  
   149  			When("an error is encountered getting the organization domains", func() {
   150  				BeforeEach(func() {
   151  					expectedErr = errors.New("domains error")
   152  					fakeCloudControllerClient.GetOrganizationDomainsReturns([]ccv3.Domain{}, ccv3.Warnings{"domains warning"}, expectedErr)
   153  				})
   154  
   155  				It("returns that error and all warnings", func() {
   156  					Expect(err).To(MatchError(expectedErr))
   157  					Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2", "domains warning"))
   158  				})
   159  			})
   160  
   161  			When("an error is encountered getting the organization spaces", func() {
   162  				BeforeEach(func() {
   163  					expectedErr = errors.New("cc-get-spaces-error")
   164  					fakeCloudControllerClient.GetSpacesReturns(
   165  						[]ccv3.Space{},
   166  						ccv3.Warnings{"spaces warning"},
   167  						expectedErr,
   168  					)
   169  				})
   170  
   171  				It("returns the error and all warnings", func() {
   172  					Expect(err).To(MatchError(expectedErr))
   173  					Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2", "spaces warning"))
   174  				})
   175  			})
   176  		})
   177  	})
   178  })