From ab0d20a21a266bc869c0d3902d2ea4b52f1e2d33 Mon Sep 17 00:00:00 2001 From: "sky.cao" Date: Sat, 10 Jun 2023 23:31:59 +0800 Subject: [PATCH] fix map[string]struct{} map[string]interface{} Argument compare panic --- mock/mock.go | 3 ++- mock/mock_test.go | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/mock/mock.go b/mock/mock.go index f4b42e44f..fab84d01d 100644 --- a/mock/mock.go +++ b/mock/mock.go @@ -952,7 +952,8 @@ func (args Arguments) Diff(objects []interface{}) (string, int) { } } else if reflect.TypeOf(expected) == reflect.TypeOf((*AnythingOfTypeArgument)(nil)).Elem() { // type checking - if reflect.TypeOf(actual).Name() != string(expected.(AnythingOfTypeArgument)) && reflect.TypeOf(actual).String() != string(expected.(AnythingOfTypeArgument)) { + if reflect.TypeOf(actual).Name() != string(expected.(AnythingOfTypeArgument)) && + strings.ReplaceAll(reflect.TypeOf(actual).String(), " ", "") != strings.ReplaceAll(string(expected.(AnythingOfTypeArgument)), " ", "") { // not match differences++ output = fmt.Sprintf("%s\t%d: FAIL: type %s != type %s - %s\n", output, i, expected, reflect.TypeOf(actual).Name(), actualFmt) diff --git a/mock/mock_test.go b/mock/mock_test.go index 9ceebbc44..473ceef89 100644 --- a/mock/mock_test.go +++ b/mock/mock_test.go @@ -1732,6 +1732,28 @@ func Test_Arguments_Diff_WithAnythingOfTypeArgument(t *testing.T) { } +func Test_Arguments_Diff_WithAnythingOfTypeArgument_MapInterface(t *testing.T) { + + var args = Arguments([]interface{}{AnythingOfType("*map[string]interface{}")}) + var count int + param := make(map[string]interface{}) + _, count = args.Diff([]interface{}{¶m}) + + assert.Equal(t, 0, count) + +} + +func Test_Arguments_Diff_WithAnythingOfTypeArgument_MapStruct(t *testing.T) { + + var args = Arguments([]interface{}{AnythingOfType("*map[string]struct{}")}) + var count int + param := make(map[string]struct{}) + _, count = args.Diff([]interface{}{¶m}) + + assert.Equal(t, 0, count) + +} + func Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing(t *testing.T) { var args = Arguments([]interface{}{"string", AnythingOfType("string"), true})