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 }