orgRepo.FindByNameReturns(org1, nil) }) It("Returns an error if the service cannot be found", func() { serviceBuilder.GetServiceByNameWithPlansReturns(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 plans", func() { err := actor.UpdateOrgForService("my-mixed-service", "org-1", true) Expect(err).ToNot(HaveOccurred()) Expect(servicePlanVisibilityRepo.CreateCallCount()).To(Equal(2)) planGUID, orgGUID := servicePlanVisibilityRepo.CreateArgsForCall(0) Expect(planGUID).To(Equal("private-service-plan-guid")) Expect(orgGUID).To(Equal("org-1-guid")) planGUID, orgGUID = servicePlanVisibilityRepo.CreateArgsForCall(1) Expect(planGUID).To(Equal("limited-service-plan-guid")) Expect(orgGUID).To(Equal("org-1-guid")) }) 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())