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  })