github.com/loafoe/cli@v7.1.0+incompatible/integration/helpers/environment.go (about) 1 package helpers 2 3 import ( 4 "fmt" 5 "strings" 6 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 // AddOrReplaceEnvironment will update environment if it already exists or will add 14 // a new environment with the given environment name and details. 15 func AddOrReplaceEnvironment(env []string, newEnvName string, newEnvVal string) []string { 16 var found bool 17 for i, envPair := range env { 18 splitENV := strings.Split(envPair, "=") 19 if splitENV[0] == newEnvName { 20 env[i] = fmt.Sprintf("%s=%s", newEnvName, newEnvVal) 21 found = true 22 } 23 } 24 25 if !found { 26 env = append(env, fmt.Sprintf("%s=%s", newEnvName, newEnvVal)) 27 } 28 return env 29 } 30 31 func CheckSpaceAndOrgTargetedCorrectly(command ...string) { 32 LoginCF() 33 34 By("errors if org and space are not targeted") 35 session := CF(command...) 36 Eventually(session).Should(Say("FAILED")) 37 Eventually(session.Out).Should(Say("No org and space targeted, use 'cf target -o ORG -s SPACE' to target an org and space")) 38 Eventually(session).Should(Exit(1)) 39 } 40 41 // CheckEnvironmentTargetedCorrectly will confirm if the command requires an 42 // API to be targeted and logged in to run. It can optionally check if the 43 // command requires org and space to be targeted. 44 func CheckEnvironmentTargetedCorrectly(targetedOrganizationRequired bool, targetedSpaceRequired bool, testOrg string, command ...string) { 45 LoginCF() 46 47 if targetedOrganizationRequired { 48 By("errors if org is not targeted") 49 session := CF(command...) 50 Eventually(session).Should(Say("FAILED")) 51 Eventually(session.Err).Should(Say("No org targeted, use 'cf target -o ORG' to target an org\\.")) 52 Eventually(session).Should(Exit(1)) 53 54 if targetedSpaceRequired { 55 By("errors if space is not targeted") 56 TargetOrg(testOrg) 57 session := CF(command...) 58 Eventually(session).Should(Say("FAILED")) 59 Eventually(session.Err).Should(Say("No space targeted, use 'cf target -s SPACE' to target a space\\.")) 60 Eventually(session).Should(Exit(1)) 61 } 62 } 63 64 By("errors if user not logged in") 65 LogoutCF() 66 session := CF(command...) 67 Eventually(session).Should(Say("FAILED")) 68 Eventually(session.Err).Should(Say("Not logged in\\. Use 'cf login' or 'cf login --sso' to log in\\.")) 69 Eventually(session).Should(Exit(1)) 70 71 By("errors if cli not targeted") 72 UnsetAPI() 73 session = CF(command...) 74 Eventually(session).Should(Say("FAILED")) 75 Eventually(session.Err).Should(Say("No API endpoint set\\. Use 'cf login' or 'cf api' to target an endpoint\\.")) 76 Eventually(session).Should(Exit(1)) 77 } 78 79 // UnrefactoredCheckEnvironmentTargetedCorrectly will confirm if the command requires an 80 // API to be targeted and logged in to run. It can optionally check if the 81 // command requires org and space to be targeted. 82 func UnrefactoredCheckEnvironmentTargetedCorrectly(targetedOrganizationRequired bool, targetedSpaceRequired bool, testOrg string, command ...string) { 83 LoginCF() 84 85 if targetedOrganizationRequired { 86 By("errors if org is not targeted") 87 session := CF(command...) 88 Eventually(session).Should(Say("FAILED")) 89 Eventually(session).Should(Say("No org and space targeted, use 'cf target -o ORG -s SPACE' to target an org and space")) 90 Eventually(session).Should(Exit(1)) 91 92 if targetedSpaceRequired { 93 By("errors if space is not targeted") 94 TargetOrg(testOrg) 95 session := CF(command...) 96 Eventually(session).Should(Say("FAILED")) 97 Eventually(session).Should(Say("No space targeted, use 'cf target -s' to target a space\\.")) 98 Eventually(session).Should(Exit(1)) 99 } 100 } 101 102 By("errors if user not logged in") 103 LogoutCF() 104 session := CF(command...) 105 Eventually(session).Should(Say("FAILED")) 106 Eventually(session).Should(Say("Not logged in\\. Use 'cf login' or 'cf login --sso' to log in\\.")) 107 Eventually(session).Should(Exit(1)) 108 109 By("errors if cli not targeted") 110 UnsetAPI() 111 session = CF(command...) 112 Eventually(session).Should(Say("FAILED")) 113 Eventually(session).Should(Say("No API endpoint set\\. Use 'cf login' or 'cf api' to target an endpoint\\.")) 114 Eventually(session).Should(Exit(1)) 115 }