/
mapmap_test.go
40 lines (33 loc) · 914 Bytes
/
mapmap_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package mapmap
import (
"github.com/spf13/cast"
"github.com/stretchr/testify/assert"
"testing"
)
func TestMapMap(t *testing.T) {
var v interface{}
var processingErrors []error
var err error
m := map[string]interface{}{
"cat": "garfield",
"dog": "odie",
"friends": []interface{}{"John"},
"turtle": "0",
"57": int64(57),
"doesItWork": true,
}
r := map[string]interface{}{
"cat": "garfield",
"frog": "0",
"myOnlyFriend": "John",
}
var mappers []*Mapper
mappers = append(mappers, NewMapper("cat", "cat"))
mappers = append(mappers, NewMapper("turtle", "frog"))
mappers = append(mappers, NewMapper("friends.[0]", "myOnlyFriend"))
v, processingErrors, err = MapIt(m, mappers)
assert.Equal(t, cast.ToStringMap(v), r)
assert.Equal(t, processingErrors, []error{})
assert.Equal(t, len(processingErrors), 0)
assert.Equal(t, err, nil)
}