github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/command/v2/shared/handle_error_test.go (about) 1 package shared_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/sharedaction" 7 "code.cloudfoundry.org/cli/actor/v2action" 8 "code.cloudfoundry.org/cli/api/cloudcontroller" 9 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2" 10 "code.cloudfoundry.org/cli/api/uaa" 11 "code.cloudfoundry.org/cli/command" 12 . "code.cloudfoundry.org/cli/command/v2/shared" 13 . "github.com/onsi/ginkgo" 14 . "github.com/onsi/ginkgo/extensions/table" 15 . "github.com/onsi/gomega" 16 ) 17 18 var _ = Describe("HandleError", func() { 19 err := errors.New("some-error") 20 21 DescribeTable("error translations", 22 func(passedInErr error, expectedErr error) { 23 actualErr := HandleError(passedInErr) 24 Expect(actualErr).To(MatchError(expectedErr)) 25 }, 26 27 Entry("cloudcontroller.RequestError -> APIRequestError", 28 cloudcontroller.RequestError{Err: err}, 29 command.APIRequestError{Err: err}), 30 31 Entry("cloudcontroller.UnverifiedServerError -> InvalidSSLCertError", 32 cloudcontroller.UnverifiedServerError{URL: "some-url"}, 33 command.InvalidSSLCertError{API: "some-url"}), 34 35 Entry("cloudcontroller.SSLValidationHostnameError -> SSLCertErrorError", 36 cloudcontroller.SSLValidationHostnameError{Message: "some-message"}, 37 command.SSLCertErrorError{Message: "some-message"}), 38 39 Entry("cloudcontroller.APINotFoundError -> APINotFoundError", 40 cloudcontroller.APINotFoundError{URL: "some-url"}, 41 command.APINotFoundError{URL: "some-url"}), 42 43 Entry("v2action.ApplicationNotFoundError -> ApplicationNotFoundError", 44 v2action.ApplicationNotFoundError{Name: "some-app"}, 45 command.ApplicationNotFoundError{Name: "some-app"}), 46 47 Entry("v2action.ServiceInstanceNotFoundError -> ServiceInstanceNotFoundError", 48 v2action.ServiceInstanceNotFoundError{Name: "some-service-instance"}, 49 command.ServiceInstanceNotFoundError{Name: "some-service-instance"}), 50 51 Entry("ccv2.JobFailedError -> JobFailedError", 52 ccv2.JobFailedError{JobGUID: "some-job-guid"}, 53 JobFailedError{JobGUID: "some-job-guid"}), 54 55 Entry("ccv2.JobTimeoutError -> JobTimeoutError", 56 ccv2.JobTimeoutError{JobGUID: "some-job-guid"}, 57 JobTimeoutError{JobGUID: "some-job-guid"}), 58 59 Entry("v2action.OrganizationNotFoundError -> OrgNotFoundError", 60 v2action.OrganizationNotFoundError{Name: "some-org"}, 61 OrganizationNotFoundError{Name: "some-org"}), 62 63 Entry("v2action.SpaceNotFoundError -> SpaceNotFoundError", 64 v2action.SpaceNotFoundError{Name: "some-space"}, 65 SpaceNotFoundError{Name: "some-space"}), 66 67 Entry("sharedaction.NotLoggedInError -> NotLoggedInError", 68 sharedaction.NotLoggedInError{BinaryName: "faceman"}, 69 command.NotLoggedInError{BinaryName: "faceman"}), 70 71 Entry("sharedaction.NoTargetedOrganizationError -> NoTargetedOrganizationError", 72 sharedaction.NoTargetedOrganizationError{BinaryName: "faceman"}, 73 command.NoTargetedOrganizationError{BinaryName: "faceman"}), 74 75 Entry("sharedaction.NoTargetedSpaceError -> NoTargetedSpaceError", 76 sharedaction.NoTargetedSpaceError{BinaryName: "faceman"}, 77 command.NoTargetedSpaceError{BinaryName: "faceman"}), 78 79 Entry("v2action.HTTPHealthCheckInvalidError -> HTTPHealthCheckInvalidError", 80 v2action.HTTPHealthCheckInvalidError{}, 81 HTTPHealthCheckInvalidError{}, 82 ), 83 84 Entry("uaa.InvalidAuthTokenError -> InvalidRefreshTokenError", 85 uaa.InvalidAuthTokenError{}, 86 InvalidRefreshTokenError{}, 87 ), 88 89 Entry("default case -> original error", 90 err, 91 err), 92 ) 93 })