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  }