github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/actors/plan_builder/plan_builder_test.go (about) 1 package plan_builder_test 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/actors/plan_builder" 5 "github.com/cloudfoundry/cli/cf/api/fakes" 6 testorg "github.com/cloudfoundry/cli/cf/api/organizations/fakes" 7 "github.com/cloudfoundry/cli/cf/models" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Plan builder", func() { 13 var ( 14 builder plan_builder.PlanBuilder 15 16 planRepo *fakes.FakeServicePlanRepo 17 visibilityRepo *fakes.FakeServicePlanVisibilityRepository 18 orgRepo *testorg.FakeOrganizationRepository 19 20 plan1 models.ServicePlanFields 21 plan2 models.ServicePlanFields 22 23 org1 models.Organization 24 org2 models.Organization 25 ) 26 27 BeforeEach(func() { 28 planRepo = &fakes.FakeServicePlanRepo{} 29 visibilityRepo = &fakes.FakeServicePlanVisibilityRepository{} 30 orgRepo = &testorg.FakeOrganizationRepository{} 31 builder = plan_builder.NewBuilder(planRepo, visibilityRepo, orgRepo) 32 33 plan1 = models.ServicePlanFields{ 34 Name: "service-plan1", 35 Guid: "service-plan1-guid", 36 ServiceOfferingGuid: "service-guid1", 37 } 38 39 plan2 = models.ServicePlanFields{ 40 Name: "service-plan2", 41 Guid: "service-plan2-guid", 42 ServiceOfferingGuid: "service-guid1", 43 } 44 planRepo.SearchReturns = map[string][]models.ServicePlanFields{ 45 "service-guid1": []models.ServicePlanFields{plan1, plan2}, 46 } 47 org1 = models.Organization{} 48 org1.Name = "org1" 49 org1.Guid = "org1-guid" 50 51 org2 = models.Organization{} 52 org2.Name = "org2" 53 org2.Guid = "org2-guid" 54 visibilityRepo.ListReturns([]models.ServicePlanVisibilityFields{ 55 {ServicePlanGuid: "service-plan1-guid", OrganizationGuid: "org1-guid"}, 56 {ServicePlanGuid: "service-plan1-guid", OrganizationGuid: "org2-guid"}, 57 }, nil) 58 orgRepo.ListOrgsReturns([]models.Organization{org1, org2}, nil) 59 }) 60 61 Describe(".AttachOrgsToPlans", func() { 62 It("returns plans fully populated with the orgnames that have visibility", func() { 63 barePlans := []models.ServicePlanFields{plan1, plan2} 64 65 plans, err := builder.AttachOrgsToPlans(barePlans) 66 Expect(err).ToNot(HaveOccurred()) 67 68 Expect(plans[0].OrgNames).To(Equal([]string{"org1", "org2"})) 69 }) 70 }) 71 72 Describe(".AttachOrgToPlans", func() { 73 It("returns plans fully populated with the orgnames that have visibility", func() { 74 orgRepo.FindByNameReturns(org1, nil) 75 barePlans := []models.ServicePlanFields{plan1, plan2} 76 77 plans, err := builder.AttachOrgToPlans(barePlans, "org1") 78 Expect(err).ToNot(HaveOccurred()) 79 80 Expect(plans[0].OrgNames).To(Equal([]string{"org1"})) 81 }) 82 }) 83 84 Describe(".GetPlansForServiceWithOrgs", func() { 85 It("returns all the plans for the service with the provided guid", func() { 86 plans, err := builder.GetPlansForServiceWithOrgs("service-guid1") 87 Expect(err).ToNot(HaveOccurred()) 88 89 Expect(len(plans)).To(Equal(2)) 90 Expect(plans[0].Name).To(Equal("service-plan1")) 91 Expect(plans[0].OrgNames).To(Equal([]string{"org1", "org2"})) 92 Expect(plans[1].Name).To(Equal("service-plan2")) 93 }) 94 }) 95 96 Describe(".GetPlansForService", func() { 97 It("returns all the plans for the service with the provided guid", func() { 98 plans, err := builder.GetPlansForService("service-guid1") 99 Expect(err).ToNot(HaveOccurred()) 100 101 Expect(len(plans)).To(Equal(2)) 102 Expect(plans[0].Name).To(Equal("service-plan1")) 103 Expect(plans[0].OrgNames).To(BeNil()) 104 Expect(plans[1].Name).To(Equal("service-plan2")) 105 }) 106 }) 107 108 Describe(".GetPlansForServiceForOrg", func() { 109 It("returns all the plans for the service with the provided guid", func() { 110 orgRepo.FindByNameReturns(org1, nil) 111 plans, err := builder.GetPlansForServiceForOrg("service-guid1", "org1") 112 Expect(err).ToNot(HaveOccurred()) 113 114 Expect(len(plans)).To(Equal(2)) 115 Expect(plans[0].Name).To(Equal("service-plan1")) 116 Expect(plans[0].OrgNames).To(Equal([]string{"org1"})) 117 Expect(plans[1].Name).To(Equal("service-plan2")) 118 }) 119 }) 120 121 Describe(".GetPlansVisibleToOrg", func() { 122 It("returns all the plans visible to the named org", func() { 123 plans, err := builder.GetPlansVisibleToOrg("org1") 124 Expect(err).ToNot(HaveOccurred()) 125 126 Expect(len(plans)).To(Equal(1)) 127 Expect(plans[0].Name).To(Equal("service-plan1")) 128 Expect(plans[0].OrgNames).To(Equal([]string{"org1", "org2"})) 129 }) 130 }) 131 })