2021-01-17 21:46:25 +08:00
|
|
|
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
|
2020-05-04 23:42:51 +08:00
|
|
|
//
|
|
|
|
// This Source Code Form is subject to the terms of the MIT License.
|
|
|
|
// If a copy of the MIT was not distributed with this file,
|
|
|
|
// You can obtain one at https://github.com/gogf/gf.
|
|
|
|
|
|
|
|
package gvar_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gogf/gf/container/gvar"
|
|
|
|
"github.com/gogf/gf/frame/g"
|
|
|
|
"github.com/gogf/gf/test/gtest"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2021-01-19 14:26:17 +08:00
|
|
|
func TestVar_Map(t *testing.T) {
|
2020-05-04 23:42:51 +08:00
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m := g.Map{
|
|
|
|
"k1": "v1",
|
|
|
|
"k2": "v2",
|
|
|
|
}
|
|
|
|
objOne := gvar.New(m, true)
|
|
|
|
t.Assert(objOne.Map()["k1"], m["k1"])
|
|
|
|
t.Assert(objOne.Map()["k2"], m["k2"])
|
|
|
|
})
|
|
|
|
}
|
2021-01-19 14:26:17 +08:00
|
|
|
|
|
|
|
func TestVar_MapToMap(t *testing.T) {
|
|
|
|
// map[int]int -> map[string]string
|
|
|
|
// empty original map.
|
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m1 := g.MapIntInt{}
|
|
|
|
m2 := g.MapStrStr{}
|
|
|
|
t.Assert(gvar.New(m1).MapToMap(&m2), nil)
|
|
|
|
t.Assert(len(m1), len(m2))
|
|
|
|
})
|
|
|
|
// map[int]int -> map[string]string
|
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m1 := g.MapIntInt{
|
|
|
|
1: 100,
|
|
|
|
2: 200,
|
|
|
|
}
|
|
|
|
m2 := g.MapStrStr{}
|
|
|
|
t.Assert(gvar.New(m1).MapToMap(&m2), nil)
|
|
|
|
t.Assert(m2["1"], m1[1])
|
|
|
|
t.Assert(m2["2"], m1[2])
|
|
|
|
})
|
|
|
|
// map[string]interface{} -> map[string]string
|
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m1 := g.Map{
|
|
|
|
"k1": "v1",
|
|
|
|
"k2": "v2",
|
|
|
|
}
|
|
|
|
m2 := g.MapStrStr{}
|
|
|
|
t.Assert(gvar.New(m1).MapToMap(&m2), nil)
|
|
|
|
t.Assert(m2["k1"], m1["k1"])
|
|
|
|
t.Assert(m2["k2"], m1["k2"])
|
|
|
|
})
|
|
|
|
// map[string]string -> map[string]interface{}
|
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m1 := g.MapStrStr{
|
|
|
|
"k1": "v1",
|
|
|
|
"k2": "v2",
|
|
|
|
}
|
|
|
|
m2 := g.Map{}
|
|
|
|
t.Assert(gvar.New(m1).MapToMap(&m2), nil)
|
|
|
|
t.Assert(m2["k1"], m1["k1"])
|
|
|
|
t.Assert(m2["k2"], m1["k2"])
|
|
|
|
})
|
|
|
|
// map[string]interface{} -> map[interface{}]interface{}
|
|
|
|
gtest.C(t, func(t *gtest.T) {
|
|
|
|
m1 := g.MapStrStr{
|
|
|
|
"k1": "v1",
|
|
|
|
"k2": "v2",
|
|
|
|
}
|
|
|
|
m2 := g.MapAnyAny{}
|
|
|
|
t.Assert(gvar.New(m1).MapToMap(&m2), nil)
|
|
|
|
t.Assert(m2["k1"], m1["k1"])
|
|
|
|
t.Assert(m2["k2"], m1["k2"])
|
|
|
|
})
|
|
|
|
}
|