mirror of
https://github.com/langgenius/dify-plugin-daemon.git
synced 2026-07-23 02:05:27 -04:00
78 lines
1.2 KiB
Go
78 lines
1.2 KiB
Go
package mapping
|
|
|
|
import (
|
|
"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)
|
|
}
|
|
}
|