github.com/nimakaviani/cli@v6.37.1-0.20180619223813-e734901a73fa+incompatible/integration/helpers/stack.go (about)

     1  package helpers
     2  
     3  import (
     4  	"encoding/json"
     5  
     6  	. "github.com/onsi/ginkgo"
     7  	. "github.com/onsi/gomega"
     8  	. "github.com/onsi/gomega/gexec"
     9  )
    10  
    11  type ccStacks struct {
    12  	Resources []struct {
    13  		Entity struct {
    14  			Name string `json:"name"`
    15  		} `json:"entity"`
    16  	} `json:"resources"`
    17  }
    18  
    19  func SkipIfOneStack() {
    20  	if len(FetchStacks()) < 2 {
    21  		Skip("test requires at least two stacks")
    22  	}
    23  }
    24  
    25  func FetchStacks() []string {
    26  	session := CF("curl", "/v2/stacks")
    27  
    28  	Eventually(session).Should(Exit(0))
    29  
    30  	var rawStacks ccStacks
    31  	err := json.Unmarshal(session.Out.Contents(), &rawStacks)
    32  	Expect(err).ToNot(HaveOccurred())
    33  
    34  	var stacks []string
    35  	for _, stack := range rawStacks.Resources {
    36  		stacks = append(stacks, stack.Entity.Name)
    37  	}
    38  
    39  	return stacks
    40  }