github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/integration/v7/plugin/plugin_suite_test.go (about)

     1  package plugin
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"code.cloudfoundry.org/cli/integration/helpers"
     8  	. "github.com/onsi/ginkgo"
     9  	. "github.com/onsi/gomega"
    10  	. "github.com/onsi/gomega/gbytes"
    11  	. "github.com/onsi/gomega/gexec"
    12  )
    13  
    14  const (
    15  	CFEventuallyTimeout   = 180 * time.Second
    16  	CFConsistentlyTimeout = 500 * time.Millisecond
    17  )
    18  
    19  var (
    20  	// Suite Level
    21  	testPluginPath         string
    22  	overrideTestPluginPath string
    23  	panicTestPluginPath    string
    24  	apiURL                 string
    25  	skipSSLValidation      bool
    26  
    27  	// Per Test Level
    28  	homeDir string
    29  )
    30  
    31  func TestPlugin(t *testing.T) {
    32  	RegisterFailHandler(Fail)
    33  	RunSpecs(t, "Plugin Suite")
    34  }
    35  
    36  var _ = SynchronizedBeforeSuite(func() []byte {
    37  	return nil
    38  }, func(path []byte) {
    39  	// Ginkgo Globals
    40  	SetDefaultEventuallyTimeout(CFEventuallyTimeout)
    41  	SetDefaultConsistentlyDuration(CFConsistentlyTimeout)
    42  
    43  	// Setup common environment variables
    44  	helpers.TurnOffColors()
    45  
    46  	var err error
    47  	testPluginPath, err = Build("code.cloudfoundry.org/cli/integration/assets/test_plugin_v7", "-tags=V7")
    48  	Expect(err).ToNot(HaveOccurred())
    49  
    50  	overrideTestPluginPath, err = Build("code.cloudfoundry.org/cli/integration/assets/test_plugin_with_command_overrides")
    51  	Expect(err).ToNot(HaveOccurred())
    52  
    53  	panicTestPluginPath, err = Build("code.cloudfoundry.org/cli/integration/assets/test_plugin_with_panic_v7", "-tags=V7")
    54  	Expect(err).ToNot(HaveOccurred())
    55  })
    56  
    57  var _ = SynchronizedAfterSuite(func() {
    58  	CleanupBuildArtifacts()
    59  },
    60  	func() {},
    61  )
    62  
    63  var _ = BeforeEach(func() {
    64  	homeDir = helpers.SetHomeDir()
    65  	apiURL, skipSSLValidation = helpers.SetAPI()
    66  	helpers.LoginCF()
    67  	Eventually(helpers.CF("remove-plugin-repo", "CF-Community")).Should(Exit(0))
    68  })
    69  
    70  var _ = AfterEach(func() {
    71  	GinkgoWriter.Write([]byte("==============================Global After Each=============================="))
    72  	helpers.DestroyHomeDir(homeDir)
    73  })
    74  
    75  func installTestPlugin() {
    76  	session := helpers.CF("install-plugin", "-f", testPluginPath)
    77  	Eventually(session).Should(Exit(0))
    78  }
    79  
    80  func uninstallTestPlugin() {
    81  	session := helpers.CF("uninstall-plugin", "CF-CLI-Integration-Test-Plugin")
    82  	Eventually(session).Should(Exit(0))
    83  }
    84  
    85  func createTargetedOrgAndSpace() (string, string) {
    86  	org := helpers.NewOrgName()
    87  	space := helpers.NewSpaceName()
    88  	username, _ := helpers.GetCredentials()
    89  	helpers.CreateOrgAndSpace(org, space)
    90  	helpers.TargetOrgAndSpace(org, space)
    91  	helpers.SetOrgRole(username, org, "OrgManager", helpers.ClientCredentialsTestMode())
    92  	helpers.SetSpaceRole(username, org, space, "SpaceDeveloper", helpers.ClientCredentialsTestMode())
    93  	helpers.SetSpaceRole(username, org, space, "SpaceManager", helpers.ClientCredentialsTestMode())
    94  	return org, space
    95  }
    96  
    97  func getUsername() string {
    98  	username, err := helpers.GetConfig().CurrentUserName()
    99  	Expect(err).ToNot(HaveOccurred())
   100  	return username
   101  }
   102  
   103  func confirmTestPluginOutput(command string, output ...string) {
   104  	session := helpers.CF(command)
   105  	for _, val := range output {
   106  		Eventually(session).Should(Say(val))
   107  	}
   108  	Eventually(session).Should(Exit(0))
   109  }
   110  
   111  func confirmTestPluginOutputWithArg(command string, arg string, output ...string) {
   112  	session := helpers.CF(command, arg)
   113  	for _, val := range output {
   114  		Eventually(session).Should(Say(val))
   115  	}
   116  	Eventually(session).Should(Exit(0))
   117  }