github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/integration/shared/global/service_command_test.go (about)

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