github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+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("NoTargetedOrganizationError", NoTargetedOrganizationError{}), 38 Entry("NoTargetedSpaceError", NoTargetedSpaceError{}), 39 Entry("NotLoggedInError", NotLoggedInError{}), 40 41 // Cloud Controller errors. 42 Entry("APIRequestError", APIRequestError{}), 43 Entry("InvalidSSLCertError", InvalidSSLCertError{}), 44 Entry("SSLCertErrorError", SSLCertErrorError{}), 45 Entry("APINotFoundError", APINotFoundError{}), 46 47 // Actor errors. 48 Entry("ApplicationNotFoundError", ApplicationNotFoundError{}), 49 Entry("ServiceInstanceNotFoundError", ServiceInstanceNotFoundError{}), 50 51 // Parse errors. 52 Entry("ParseArgumentError", ParseArgumentError{}), 53 54 // Version errors. 55 Entry("MinimumAPIVersionNotMetError", MinimumAPIVersionNotMetError{}), 56 ) 57 })