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

     1  package v7action_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	"code.cloudfoundry.org/cli/actor/actionerror"
     7  	. "code.cloudfoundry.org/cli/actor/v7action"
     8  	"code.cloudfoundry.org/cli/actor/v7action/v7actionfakes"
     9  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("Organization Quota Actions", func() {
    15  	var (
    16  		actor                     *Actor
    17  		fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient
    18  	)
    19  
    20  	BeforeEach(func() {
    21  		actor, fakeCloudControllerClient, _, _, _, _ = NewTestActor()
    22  	})
    23  
    24  	Describe("GetOrganizationQuotas", func() {
    25  		var (
    26  			quotas     []OrganizationQuota
    27  			warnings   Warnings
    28  			executeErr error
    29  		)
    30  
    31  		JustBeforeEach(func() {
    32  			quotas, warnings, executeErr = actor.GetOrganizationQuotas()
    33  		})
    34  
    35  		When("getting organization quotas", func() {
    36  			BeforeEach(func() {
    37  				fakeCloudControllerClient.GetOrganizationQuotasReturns(
    38  					[]ccv3.OrgQuota{
    39  						ccv3.OrgQuota{
    40  							GUID: "quota-guid",
    41  							Name: "kiwi",
    42  						},
    43  						ccv3.OrgQuota{
    44  							GUID: "quota-2-guid",
    45  							Name: "strawberry",
    46  						},
    47  					},
    48  					ccv3.Warnings{"some-quota-warning"},
    49  					nil,
    50  				)
    51  			})
    52  
    53  			It("queries the API and returns organization quotas", func() {
    54  				Expect(executeErr).ToNot(HaveOccurred())
    55  
    56  				Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1))
    57  
    58  				Expect(quotas).To(ConsistOf(
    59  					OrganizationQuota{
    60  						GUID: "quota-guid",
    61  						Name: "kiwi",
    62  					},
    63  					OrganizationQuota{
    64  						GUID: "quota-2-guid",
    65  						Name: "strawberry",
    66  					},
    67  				))
    68  				Expect(warnings).To(ConsistOf("some-quota-warning"))
    69  			})
    70  		})
    71  	})
    72  
    73  	Describe("GetOrganizationQuotaByName", func() {
    74  		var (
    75  			quotaName  string
    76  			quota      OrganizationQuota
    77  			warnings   Warnings
    78  			executeErr error
    79  		)
    80  
    81  		BeforeEach(func() {
    82  			quotaName = "quota-name"
    83  		})
    84  
    85  		JustBeforeEach(func() {
    86  			quota, warnings, executeErr = actor.GetOrganizationQuotaByName(quotaName)
    87  		})
    88  
    89  		When("when the API layer call returns an error", func() {
    90  			BeforeEach(func() {
    91  				fakeCloudControllerClient.GetOrganizationQuotasReturns(
    92  					[]ccv3.OrgQuota{},
    93  					ccv3.Warnings{"some-quota-warning"},
    94  					errors.New("list-error"),
    95  				)
    96  			})
    97  
    98  			It("returns the error and prints warnings", func() {
    99  				Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1))
   100  
   101  				Expect(warnings).To(ConsistOf("some-quota-warning"))
   102  				Expect(executeErr).To(MatchError("list-error"))
   103  				Expect(quota).To(Equal(OrganizationQuota{}))
   104  			})
   105  		})
   106  
   107  		When("when the org quota could not be found", func() {
   108  			BeforeEach(func() {
   109  				fakeCloudControllerClient.GetOrganizationQuotasReturns(
   110  					[]ccv3.OrgQuota{},
   111  					ccv3.Warnings{"some-quota-warning"},
   112  					nil,
   113  				)
   114  			})
   115  
   116  			It("returns the error and prints warnings", func() {
   117  				Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1))
   118  
   119  				Expect(warnings).To(ConsistOf("some-quota-warning"))
   120  				Expect(executeErr).To(MatchError(actionerror.OrganizationQuotaNotFoundForNameError{Name: quotaName}))
   121  				Expect(quota).To(Equal(OrganizationQuota{}))
   122  			})
   123  		})
   124  
   125  		When("getting a single quota by name", func() {
   126  			BeforeEach(func() {
   127  				fakeCloudControllerClient.GetOrganizationQuotasReturns(
   128  					[]ccv3.OrgQuota{
   129  						ccv3.OrgQuota{
   130  							GUID: "quota-guid",
   131  							Name: quotaName,
   132  						},
   133  					},
   134  					ccv3.Warnings{"some-quota-warning"},
   135  					nil,
   136  				)
   137  			})
   138  
   139  			It("queries the API and returns the matching organization quota", func() {
   140  				Expect(executeErr).ToNot(HaveOccurred())
   141  
   142  				Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1))
   143  				query := fakeCloudControllerClient.GetOrganizationQuotasArgsForCall(0)
   144  				Expect(query).To(ConsistOf(
   145  					ccv3.Query{Key: ccv3.NameFilter, Values: []string{quotaName}},
   146  				))
   147  
   148  				Expect(warnings).To(ConsistOf("some-quota-warning"))
   149  				Expect(quota).To(Equal(OrganizationQuota{GUID: "quota-guid", Name: quotaName}))
   150  			})
   151  		})
   152  	})
   153  })