github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/integration/shared/experimental/service_access_command_test.go (about)

     1  package experimental
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/integration/helpers"
     5  	. "github.com/onsi/ginkgo"
     6  	. "github.com/onsi/gomega"
     7  	. "github.com/onsi/gomega/gbytes"
     8  	. "github.com/onsi/gomega/gexec"
     9  )
    10  
    11  var _ = Describe("service-access command", func() {
    12  	When("the environment is not setup correctly", func() {
    13  		It("fails with the appropriate errors", func() {
    14  			helpers.CheckEnvironmentTargetedCorrectly(false, false, ReadOnlyOrg, "service-access")
    15  		})
    16  	})
    17  
    18  	When("the environment is setup correctly", func() {
    19  		var (
    20  			orgName1   string
    21  			spaceName1 string
    22  
    23  			serviceBroker1   helpers.ServiceBroker
    24  			servicePlanName1 string
    25  		)
    26  
    27  		BeforeEach(func() {
    28  			orgName1 = helpers.NewOrgName()
    29  			spaceName1 = helpers.NewSpaceName()
    30  
    31  			helpers.SetupCF(orgName1, spaceName1)
    32  
    33  			servicePlanName1 = helpers.NewPlanName()
    34  			serviceBroker1 = helpers.NewServiceBroker(
    35  				helpers.NewServiceBrokerName(),
    36  				helpers.NewAssets().ServiceBroker,
    37  				helpers.DefaultSharedDomain(),
    38  				helpers.PrefixedRandomName("service"),
    39  				servicePlanName1,
    40  			)
    41  			serviceBroker1.SyncPlans[1].Name = helpers.GenerateHigherName(helpers.NewPlanName, servicePlanName1)
    42  
    43  			serviceBroker1.Push()
    44  			serviceBroker1.Configure(true)
    45  			serviceBroker1.Create()
    46  		})
    47  
    48  		AfterEach(func() {
    49  			serviceBroker1.Destroy()
    50  			helpers.QuickDeleteOrg(orgName1)
    51  		})
    52  
    53  		Describe("service plan visibility", func() {
    54  			It("displays the correct state for the visibility", func() {
    55  				By("having nothing enabled")
    56  				session := helpers.CF("service-access", "-e", serviceBroker1.Service.Name)
    57  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name))
    58  				Eventually(session).Should(Say(`%s\s+%s\s+none`,
    59  					serviceBroker1.Service.Name,
    60  					servicePlanName1,
    61  				))
    62  				Eventually(session).Should(Exit(0))
    63  
    64  				By("having the plan enabled for just the org and space")
    65  				Eventually(
    66  					helpers.CF("enable-service-access",
    67  						serviceBroker1.Service.Name,
    68  						"-o", orgName1,
    69  						"-p", servicePlanName1)).Should(Exit(0))
    70  
    71  				session = helpers.CF("service-access", "-e", serviceBroker1.Service.Name)
    72  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name))
    73  				Eventually(session).Should(Say(`%s\s+%s\s+limited\s+%s`,
    74  					serviceBroker1.Service.Name,
    75  					servicePlanName1,
    76  					orgName1))
    77  				Eventually(session).Should(Exit(0))
    78  
    79  				By("having the plan enabled for everyone")
    80  				Eventually(helpers.CF("enable-service-access", serviceBroker1.Service.Name)).Should(Exit(0))
    81  
    82  				session = helpers.CF("service-access", "-e", serviceBroker1.Service.Name)
    83  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name))
    84  				Eventually(session).Should(Say(`%s\s+%s\s+all`,
    85  					serviceBroker1.Service.Name,
    86  					servicePlanName1,
    87  				))
    88  				Eventually(session).Should(Exit(0))
    89  			})
    90  		})
    91  
    92  		Describe("narrowing display with flags", func() {
    93  			var (
    94  				serviceBroker2   helpers.ServiceBroker
    95  				servicePlanName2 string
    96  
    97  				orgName2 string
    98  			)
    99  
   100  			BeforeEach(func() {
   101  				servicePlanName2 = helpers.NewPlanName()
   102  				serviceBroker2 = helpers.NewServiceBroker(
   103  					helpers.GenerateLowerName(helpers.NewServiceBrokerName, serviceBroker1.Name),
   104  					helpers.NewAssets().ServiceBroker,
   105  					helpers.DefaultSharedDomain(),
   106  					helpers.PrefixedRandomName("service"),
   107  					servicePlanName2,
   108  				)
   109  				serviceBroker2.SyncPlans[1].Name = helpers.GenerateLowerName(helpers.NewPlanName, servicePlanName2)
   110  
   111  				serviceBroker2.Push()
   112  				serviceBroker2.Configure(true)
   113  				serviceBroker2.Create()
   114  
   115  				Eventually(
   116  					helpers.CF("enable-service-access",
   117  						serviceBroker1.Service.Name,
   118  						"-o", orgName1,
   119  						"-p", servicePlanName1)).Should(Exit(0))
   120  
   121  				orgName2 = helpers.GenerateLowerName(helpers.NewOrgName, orgName1)
   122  				helpers.CreateOrg(orgName2)
   123  
   124  				Eventually(
   125  					helpers.CF("enable-service-access",
   126  						serviceBroker1.Service.Name,
   127  						"-o", orgName2,
   128  						"-p", servicePlanName1)).Should(Exit(0))
   129  				Eventually(helpers.CF("enable-service-access", serviceBroker2.Service.Name)).Should(Exit(0))
   130  			})
   131  
   132  			AfterEach(func() {
   133  				helpers.QuickDeleteOrg(orgName2)
   134  				serviceBroker2.Destroy()
   135  			})
   136  
   137  			It("only shows broker/service information based on the flags provided", func() {
   138  				By("by showing the brokers and plans in alphabetical order when no flags are provided")
   139  				session := helpers.CF("service-access")
   140  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker2.Name))
   141  				Eventually(session).Should(Say(`%s\s+%s\s+all`,
   142  					serviceBroker2.Service.Name,
   143  					serviceBroker2.SyncPlans[1].Name,
   144  				))
   145  				Eventually(session).Should(Say(`%s\s+%s\s+all`,
   146  					serviceBroker2.Service.Name,
   147  					serviceBroker2.SyncPlans[0].Name,
   148  				))
   149  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name))
   150  				Eventually(session).Should(Say(`%s\s+%s\s+limited\s+%s,%s`,
   151  					serviceBroker1.Service.Name,
   152  					serviceBroker1.SyncPlans[0].Name,
   153  					orgName2,
   154  					orgName1,
   155  				))
   156  				Eventually(session).Should(Say(`%s\s+%s\s+none`,
   157  					serviceBroker1.Service.Name,
   158  					serviceBroker1.SyncPlans[1].Name,
   159  				))
   160  				Eventually(session).Should(Exit(0))
   161  
   162  				By("by showing the specified broker and it's plans in alphabetical order when the -b flag is provided")
   163  				session = helpers.CF("service-access", "-b", serviceBroker2.Name)
   164  				Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker2.Name))
   165  				Eventually(session).Should(Say(`%s\s+%s\s+all`,
   166  					serviceBroker2.Service.Name,
   167  					serviceBroker2.SyncPlans[1].Name,
   168  				))
   169  				Eventually(session).Should(Say(`%s\s+%s\s+all`,
   170  					serviceBroker2.Service.Name,
   171  					serviceBroker2.SyncPlans[0].Name,
   172  				))
   173  				Consistently(session).ShouldNot(Say(`broker:\s+%s`, serviceBroker1.Name))
   174  				Eventually(session).Should(Exit(0))
   175  			})
   176  		})
   177  	})
   178  })