github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/errors_test.go (about) 1 package command_test 2 3 import ( 4 "bytes" 5 "text/template" 6 7 . "code.cloudfoundry.org/cli/command" 8 "code.cloudfoundry.org/cli/util/ui" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/ginkgo/extensions/table" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("Translatable Errors", func() { 16 translateFunc := func(s string, vars ...interface{}) string { 17 formattedTemplate, err := template.New("test template").Parse(s) 18 Expect(err).ToNot(HaveOccurred()) 19 formattedTemplate.Option("missingkey=error") 20 21 var buffer bytes.Buffer 22 err = formattedTemplate.Execute(&buffer, vars[0]) 23 Expect(err).ToNot(HaveOccurred()) 24 25 return buffer.String() 26 } 27 28 DescribeTable("translates error", 29 func(e error) { 30 err, ok := e.(ui.TranslatableError) 31 Expect(ok).To(BeTrue()) 32 err.Translate(translateFunc) 33 }, 34 35 // Command prerequisite errors. 36 Entry("NoAPISetError", NoAPISetError{}), 37 Entry("NoOrganizationTargetedError", NoOrganizationTargetedError{}), 38 Entry("NoSpaceTargetedError", NoSpaceTargetedError{}), 39 Entry("NotLoggedInError", NotLoggedInError{}), 40 41 // UAA errors. 42 Entry("BadCredentialsError", BadCredentialsError{}), 43 44 // Cloud Controller errors. 45 Entry("APIRequestError", APIRequestError{}), 46 Entry("InvalidSSLCertError", InvalidSSLCertError{}), 47 Entry("SSLCertErrorError", SSLCertErrorError{}), 48 Entry("APINotFoundError", APINotFoundError{}), 49 50 // Actor errors. 51 Entry("ApplicationNotFoundError", ApplicationNotFoundError{}), 52 Entry("ServiceInstanceNotFoundError", ServiceInstanceNotFoundError{}), 53 54 // Parse errors. 55 Entry("ArgumentCombinationError", ArgumentCombinationError{}), 56 Entry("ParseArgumentError", ParseArgumentError{}), 57 Entry("RequiredArgumentError", RequiredArgumentError{}), 58 Entry("ThreeRequiredArgumentsError", ThreeRequiredArgumentsError{}), 59 60 // Version errors. 61 Entry("MinimumAPIVersionNotMetError", MinimumAPIVersionNotMetError{}), 62 Entry("LifecycleMinimumAPIVersionNotMetError", LifecycleMinimumAPIVersionNotMetError{}), 63 Entry("HealthCheckTypeUnsupportedError", HealthCheckTypeUnsupportedError{ 64 SupportedTypes: []string{"some-type", "another-type"}, 65 }), 66 67 // URL scheme errors. 68 Entry("UnsupportedURLSchemeError", UnsupportedURLSchemeError{}), 69 ) 70 })