It("Does not try to update service plans if they are all already private", func() { serviceBuilder.GetServiceByNameReturns(privateService, nil) _, err := actor.UpdateAllPlansForService("my-private-service", false) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanRepo.UpdateCallCount()).To(Equal(0)) }) }) }) Describe(".UpdateOrgForService", func() { BeforeEach(func() { serviceBuilder.GetServiceByNameReturns(mixedService, nil) orgRepo.FindByNameOrganization = org1 }) It("Returns an error if the service cannot be found", func() { serviceBuilder.GetServiceByNameReturns(models.ServiceOffering{}, errors.New("service was not found")) _, err := actor.UpdateOrgForService("not-a-service", "org-1", true) Expect(err.Error()).To(Equal("service was not found")) }) Context("when giving access to all plans for a single org", func() { It("creates a service plan visibility for all private plans", func() { _, err := actor.UpdateOrgForService("my-mixed-service", "org-1", true) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanVisibilityRepo.CreateCallCount()).To(Equal(1))
Expect(endpointRepo.UpdateEndpointReceived).To(Equal("http://api.example.com")) Expect(ui.ShowConfigurationCalled).To(BeTrue()) }) }) Describe("when there are too many orgs to show", func() { BeforeEach(func() { for i := 0; i < 60; i++ { id := strconv.Itoa(i) org := models.Organization{} org.Guid = "my-org-guid-" + id org.Name = "my-org-" + id orgRepo.Organizations = append(orgRepo.Organizations, org) } orgRepo.FindByNameOrganization = orgRepo.Organizations[1] space1 := models.Space{} space1.Guid = "my-space-guid" space1.Name = "my-space" space2 := models.Space{} space2.Guid = "some-space-guid" space2.Name = "some-space" spaceRepo.Spaces = []models.Space{space1, space2} }) It("doesn't display a list of orgs (the user must type the name)", func() { ui.Inputs = []string{"api.example.com", "*****@*****.**", "password", "my-org-1", "my-space"}