It("Does not try to update service plans if they are all already public or the org already has access", func() { serviceBuilder.GetServiceByNameWithPlansReturns(publicAndLimitedService, nil) err := actor.UpdateOrgForService("my-public-and-limited-service", "org-1", true) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanVisibilityRepo.CreateCallCount()).To(Equal(1)) }) }) Context("when disabling access to all plans for a single org", func() { It("deletes the associated visibilities for all limited plans", func() { serviceBuilder.GetServiceByNameWithPlansReturns(publicAndLimitedService, nil) servicePlanVisibilityRepo.SearchReturns([]models.ServicePlanVisibilityFields{visibility1}, nil) err := actor.UpdateOrgForService("my-public-and-limited-service", "org-1", false) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanVisibilityRepo.DeleteCallCount()).To(Equal(1)) services := servicePlanVisibilityRepo.SearchArgsForCall(0) Expect(services["organization_guid"]).To(Equal("org-1-guid")) visibilityGUID := servicePlanVisibilityRepo.DeleteArgsForCall(0) Expect(visibilityGUID).To(Equal("visibility-guid-1")) }) It("Does not try to update service plans if they are all public", func() { serviceBuilder.GetServiceByNameWithPlansReturns(publicService, nil) err := actor.UpdateOrgForService("my-public-and-limited-service", "org-1", false) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanVisibilityRepo.DeleteCallCount()).To(Equal(0)) })