github.com/sleungcy/cli@v7.1.0+incompatible/integration/v7/global/service_command_test.go (about)

     1  package global
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/integration/helpers"
     5  	"code.cloudfoundry.org/cli/integration/helpers/servicebrokerstub"
     6  	. "github.com/onsi/ginkgo"
     7  	. "github.com/onsi/gomega"
     8  	. "github.com/onsi/gomega/gbytes"
     9  	. "github.com/onsi/gomega/gexec"
    10  )
    11  
    12  var _ = Describe("service command", func() {
    13  
    14  	var (
    15  		serviceInstanceName string
    16  		orgName             string
    17  		sourceSpaceName     string
    18  
    19  		service     string
    20  		servicePlan string
    21  		broker      *servicebrokerstub.ServiceBrokerStub
    22  	)
    23  
    24  	BeforeEach(func() {
    25  		serviceInstanceName = helpers.PrefixedRandomName("SI")
    26  		orgName = helpers.NewOrgName()
    27  		sourceSpaceName = helpers.NewSpaceName()
    28  		helpers.SetupCF(orgName, sourceSpaceName)
    29  
    30  		broker = servicebrokerstub.EnableServiceAccess()
    31  		service = broker.FirstServiceOfferingName()
    32  		servicePlan = broker.FirstServicePlanName()
    33  
    34  		Eventually(helpers.CF("create-service", service, servicePlan, serviceInstanceName)).Should(Exit(0))
    35  	})
    36  
    37  	AfterEach(func() {
    38  		broker.Forget()
    39  		helpers.QuickDeleteOrg(orgName)
    40  	})
    41  
    42  	Context("service is shared between two spaces", func() {
    43  		var (
    44  			targetSpaceName string
    45  		)
    46  
    47  		BeforeEach(func() {
    48  			targetSpaceName = helpers.NewSpaceName()
    49  			helpers.CreateOrgAndSpace(orgName, targetSpaceName)
    50  			helpers.TargetOrgAndSpace(orgName, sourceSpaceName)
    51  			Eventually(helpers.CF("share-service", serviceInstanceName, "-s", targetSpaceName)).Should(Exit(0))
    52  		})
    53  
    54  		Context("due to global settings of service sharing disabled", func() {
    55  			BeforeEach(func() {
    56  				helpers.DisableFeatureFlag("service_instance_sharing")
    57  			})
    58  
    59  			AfterEach(func() {
    60  				helpers.EnableFeatureFlag("service_instance_sharing")
    61  			})
    62  
    63  			It("should display that the service instance feature flag is disabled", func() {
    64  				session := helpers.CF("service", serviceInstanceName)
    65  				Eventually(session).Should(Say(`The "service_instance_sharing" feature flag is disabled for this Cloud Foundry platform.`))
    66  				Eventually(session).Should(Exit(0))
    67  			})
    68  
    69  			Context("AND service broker does not allow service instance sharing", func() {
    70  				BeforeEach(func() {
    71  					broker.Services[0].Shareable = false
    72  					broker.Configure().Register()
    73  				})
    74  
    75  				It("should display that service instance sharing is disabled for this service (global message)", func() {
    76  					session := helpers.CF("service", serviceInstanceName)
    77  					Eventually(session).Should(Say(`The "service_instance_sharing" feature flag is disabled for this Cloud Foundry platform. Also, service instance sharing is disabled for this service.`))
    78  					Eventually(session).Should(Exit(0))
    79  				})
    80  			})
    81  		})
    82  	})
    83  })