| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | package mappingimport (	"encoding/json"	"reflect"	"testing")func TestConvertAnyMap(t *testing.T) {	src := map[any]any{		"a": 1,		"b": 2,		"c": map[any]any{			"d": 3,			"e": 4,			"f": []any{				1,				2,				3,			},		},	}	dst := ConvertAnyMap(src).(map[string]any)	// use reflect to check key is string	keys := reflect.ValueOf(dst).MapKeys()	for _, key := range keys {		if key.Kind() != reflect.String {			t.Errorf("key is not string: %v", key)		}	}	c := dst["c"]	keys = reflect.ValueOf(c).MapKeys()	for _, key := range keys {		if key.Kind() != reflect.String {			t.Errorf("key is not string: %v", key)		}	}	f := dst["c"].(map[string]any)["f"]	if _, ok := f.([]any); !ok {		t.Errorf("f is not []any: %v", f)	}	if len(f.([]any)) != 3 {		t.Errorf("f is not 3: %v", f)	}	if f.([]any)[0] != 1 {		t.Errorf("f[0] is not 1: %v", f)	}}func TestConvertAnyMap_JsonMarshal(t *testing.T) {	src := map[any]any{		"a": 1,		"b": 2,		"c": map[any]any{			"d": 3,			"e": 4,			"f": []any{				1,				2,				3,			},		},	}	dst := ConvertAnyMap(src).(map[string]any)	_, err := json.Marshal(dst)	if err != nil {		t.Errorf("json.Marshal error: %v", err)	}}
 |