github.com/Venafi/vcert/v5@v5.10.2/pkg/venafi/firefly/error_test.go (about) 1 /* 2 * Copyright 2023 Venafi, Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package firefly 18 19 import ( 20 "testing" 21 22 "github.com/stretchr/testify/assert" 23 ) 24 25 func TestNewResponseErrorWithDescription(t *testing.T) { 26 var jsonError = []byte(`{"error": "error_short", "error_description": "error description"}`) 27 28 respError, err := NewResponseError(jsonError) 29 assert.Nil(t, err) 30 assert.NotNil(t, respError) 31 assert.Equal(t, "error_short", respError.ErrorKey) 32 assert.Equal(t, "error description", respError.ErrorDescription) 33 assert.Equal(t, "error_short: error description", respError.Error()) 34 } 35 36 func TestNewResponseErrorWithoutDescription(t *testing.T) { 37 var jsonError = []byte(`{"error": "error_short"}`) 38 39 respError, err := NewResponseError(jsonError) 40 assert.Nil(t, err) 41 assert.NotNil(t, respError) 42 assert.Equal(t, "error_short", respError.ErrorKey) 43 assert.Equal(t, "", respError.ErrorDescription) 44 assert.Equal(t, "error_short", respError.Error()) 45 } 46 47 func TestNewResponseErrorNilData(t *testing.T) { 48 49 respError, err := NewResponseError(nil) 50 if assert.Errorf(t, err, "I was expected an error but is nil") { 51 assert.Error(t, err, "failed to parser empty error message") 52 } 53 assert.Nil(t, respError) 54 } 55 56 func TestNewResponseErrorWrongData(t *testing.T) { 57 58 var jsonError = []byte(`"error": "error_short"`) //omitted the curly brackets to test the unmarshal error 59 60 respError, err := NewResponseError(jsonError) 61 if assert.Errorf(t, err, "I was expected an error but is nil") { 62 assert.Error(t, err, "failed to parser empty error message") 63 } 64 assert.Nil(t, respError) 65 }