github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/commandsloader/commands_loader_test.go (about) 1 package commandsloader_test 2 3 import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 "strings" 8 9 "code.cloudfoundry.org/cli/cf/commandregistry" 10 "code.cloudfoundry.org/cli/cf/commandsloader" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("CommandsLoader", func() { 16 It("references all command packages so all commands can be registered in commandregistry", func() { 17 commandsloader.Load() 18 19 count := walkDirAndCountCommand("../commands") 20 Expect(commandregistry.Commands.TotalCommands()).To(Equal(count)) 21 }) 22 }) 23 24 func walkDirAndCountCommand(path string) int { 25 cmdCount := 0 26 27 filepath.Walk(path, func(p string, info os.FileInfo, err error) error { 28 if err != nil { 29 fmt.Println("Error walking commands directories:", err) 30 return err 31 } 32 33 dir := filepath.Dir(p) 34 35 if !info.IsDir() && !strings.HasSuffix(dir, "fakes") { 36 if strings.HasSuffix(info.Name(), ".go") && !strings.HasSuffix(info.Name(), "_test.go") { 37 cmdCount += 1 38 } 39 } 40 return nil 41 }) 42 43 return cmdCount 44 }