From 72e20bd3955478ee682ecee356143b65ed0f96c0 Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Sun, 18 Sep 2022 11:34:49 +0200 Subject: [PATCH] bugfix wrong return value of function newUnsupportedReflectKindError --- error.go | 4 +-- error_test.go | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 error_test.go diff --git a/error.go b/error.go index e8434d6..8d9f5ee 100644 --- a/error.go +++ b/error.go @@ -28,7 +28,7 @@ func newPathAlreadyExistsError(path string) PathAlreadyExistsError { return PathAlreadyExistsError(errors.New("files " + path + " already exists")) } -// PathDoesNotExistError is returned when a files does not exist +// PathDoesNotExistError is returned when a files do not exist type PathDoesNotExistError error func newPathDoesNotExistError(path string) PathDoesNotExistError { @@ -59,7 +59,7 @@ func (s *setting[C]) ResetErrors() *setting[C] { // At the reflect level, some types are not supported type UnsupportedReflectKindError error -func newUnsupportedReflectKindError(t reflect.Type) UnsupportedTypeError { +func newUnsupportedReflectKindError(t reflect.Type) UnsupportedReflectKindError { return UnsupportedReflectKindError(errors.New("type " + t.String() + " is not supported")) } diff --git a/error_test.go b/error_test.go new file mode 100644 index 0000000..877004f --- /dev/null +++ b/error_test.go @@ -0,0 +1,73 @@ +package configuration + +import ( + "github.com/stretchr/testify/assert" + "reflect" + "testing" +) + +func TestResetErrors(t *testing.T) { + + defaults := ConfigStruct2{ + A: "Hello!", + } + + c := New(defaults) + + assert.False(t, c.HasError()) + c.SetDefaultDirectories() + assert.True(t, c.HasError()) + c.ResetErrors() + assert.False(t, c.HasError()) +} + +func TestNewFlagDoesNotExistError(t *testing.T) { + err := newFlagDoesNotExistError("flag") + _, ok := err.(FlagDoesNotExistError) + assert.True(t, ok) +} + +func TestNewPathAlreadyExistsError(t *testing.T) { + err := newPathAlreadyExistsError("flag") + _, ok := err.(PathAlreadyExistsError) + assert.True(t, ok) +} + +func TestNewPathDoesNotExistError(t *testing.T) { + err := newPathDoesNotExistError("flag") + _, ok := err.(PathDoesNotExistError) + assert.True(t, ok) +} + +func TestNewFormatNotSupportedError(t *testing.T) { + err := newFormatNotSupportedError(Yaml) + _, ok := err.(FormatNotSupportedError) + assert.True(t, ok) +} + +func TestNewUnsupportedTypeError(t *testing.T) { + x := reflect.TypeOf("string") + err := newUnsupportedTypeError(x) + _, ok := err.(UnsupportedTypeError) + assert.True(t, ok) +} + +func TestNewUnsupportedReflectKindError(t *testing.T) { + x := reflect.TypeOf("string") + err := newUnsupportedReflectKindError(x) + _, ok := err.(UnsupportedReflectKindError) + assert.True(t, ok) +} + +func TestNewFlagNotFoundError(t *testing.T) { + err := newFlagNotFoundError("flag") + _, ok := err.(FlagNotFoundError) + assert.True(t, ok) +} + +func TestNewMismatchedTypeError(t *testing.T) { + x := reflect.TypeOf("string") + err := newMismatchedTypeError(x, x) + _, ok := err.(MismatchedTypeError) + assert.True(t, ok) +} -- GitLab