github.com/loafoe/cli@v7.1.0+incompatible/integration/helpers/servicebrokerstub/api.go (about) 1 package servicebrokerstub 2 3 import ( 4 "time" 5 6 "code.cloudfoundry.org/cli/integration/helpers" 7 8 "code.cloudfoundry.org/cli/integration/assets/hydrabroker/config" 9 ) 10 11 type ServiceBrokerStub struct { 12 Name, URL, GUID string 13 Username, Password string 14 Services []config.Service 15 created bool 16 registered bool 17 catalogResponse int 18 provisionResponse int 19 deprovisionResponse int 20 asyncResponseDelay time.Duration 21 } 22 23 func New() *ServiceBrokerStub { 24 return newDefaultConfig() 25 } 26 27 func Create() *ServiceBrokerStub { 28 return New().Create() 29 } 30 31 func Register() *ServiceBrokerStub { 32 return New().Register() 33 } 34 35 func EnableServiceAccess() *ServiceBrokerStub { 36 return New().EnableServiceAccess() 37 } 38 39 func (s *ServiceBrokerStub) Create() *ServiceBrokerStub { 40 ensureAppIsDeployed() 41 s.requestNewBrokerRoute() 42 s.created = true 43 return s 44 } 45 46 func (s *ServiceBrokerStub) Forget() { 47 if s.registered { 48 s.deregister() 49 } 50 s.forget() 51 } 52 53 func (s *ServiceBrokerStub) Configure() *ServiceBrokerStub { 54 s.configure() 55 return s 56 } 57 58 func (s *ServiceBrokerStub) Register() *ServiceBrokerStub { 59 if !s.created { 60 s.Create() 61 } 62 s.register(false) 63 s.registered = true 64 return s 65 } 66 67 func (s *ServiceBrokerStub) RegisterSpaceScoped() *ServiceBrokerStub { 68 if !s.created { 69 s.Create() 70 } 71 s.register(true) 72 s.registered = true 73 return s 74 } 75 76 func (s *ServiceBrokerStub) RegisterViaV2() *ServiceBrokerStub { 77 if !s.created { 78 s.Create() 79 } 80 s.registerViaV2() 81 s.registered = true 82 return s 83 } 84 85 func (s *ServiceBrokerStub) EnableServiceAccess() *ServiceBrokerStub { 86 if !s.registered { 87 s.Register() 88 } 89 s.enableServiceAccess() 90 return s 91 } 92 93 func (s *ServiceBrokerStub) WithName(name string) *ServiceBrokerStub { 94 s.Name = name 95 return s 96 } 97 98 func (s *ServiceBrokerStub) WithServiceOfferings(services int) *ServiceBrokerStub { 99 previousName := s.Services[0].Name 100 for len(s.Services) < services { 101 ser := newDefaultServiceOffering() 102 ser.Name = helpers.GenerateHigherName(helpers.NewServiceOfferingName, previousName) 103 previousName = ser.Name 104 s.Services = append(s.Services, ser) 105 } 106 return s 107 } 108 109 func (s *ServiceBrokerStub) WithPlans(plans int) *ServiceBrokerStub { 110 previousName := s.Services[0].Plans[0].Name 111 for len(s.Services[0].Plans) < plans { 112 p := newDefaultPlan() 113 p.Name = helpers.GenerateHigherName(helpers.NewPlanName, previousName) 114 previousName = p.Name 115 s.Services[0].Plans = append(s.Services[0].Plans, p) 116 } 117 return s 118 } 119 120 func (s *ServiceBrokerStub) WithHigherNameThan(o *ServiceBrokerStub) *ServiceBrokerStub { 121 higherName := helpers.GenerateHigherName(helpers.NewServiceBrokerName, o.Name) 122 return s.WithName(higherName) 123 } 124 125 func (s *ServiceBrokerStub) WithCatalogResponse(statusCode int) *ServiceBrokerStub { 126 s.catalogResponse = statusCode 127 return s 128 } 129 130 func (s *ServiceBrokerStub) WithProvisionResponse(statusCode int) *ServiceBrokerStub { 131 s.provisionResponse = statusCode 132 return s 133 } 134 135 func (s *ServiceBrokerStub) WithDeprovisionResponse(statusCode int) *ServiceBrokerStub { 136 s.deprovisionResponse = statusCode 137 return s 138 } 139 140 func (s *ServiceBrokerStub) WithAsyncDelay(delay time.Duration) *ServiceBrokerStub { 141 s.asyncResponseDelay = delay 142 return s 143 } 144 145 func (s *ServiceBrokerStub) FirstServiceOfferingName() string { 146 return s.Services[0].Name 147 } 148 149 func (s *ServiceBrokerStub) FirstServiceOfferingDescription() string { 150 return s.Services[0].Description 151 } 152 153 func (s *ServiceBrokerStub) FirstServicePlanName() string { 154 return s.Services[0].Plans[0].Name 155 } 156 157 func (s *ServiceBrokerStub) FirstServicePlanDescription() string { 158 return s.Services[0].Plans[0].Description 159 }