You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.1 KiB
57 lines
1.1 KiB
package mapping |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestMapValuerWithInherit_Value(t *testing.T) { |
|
input := map[string]any{ |
|
"discovery": map[string]any{ |
|
"host": "localhost", |
|
"port": 8080, |
|
}, |
|
"component": map[string]any{ |
|
"name": "test", |
|
}, |
|
} |
|
valuer := recursiveValuer{ |
|
current: mapValuer(input["component"].(map[string]any)), |
|
parent: simpleValuer{ |
|
current: mapValuer(input), |
|
}, |
|
} |
|
|
|
val, ok := valuer.Value("discovery") |
|
assert.True(t, ok) |
|
|
|
m, ok := val.(map[string]any) |
|
assert.True(t, ok) |
|
assert.Equal(t, "localhost", m["host"]) |
|
assert.Equal(t, 8080, m["port"]) |
|
} |
|
|
|
func TestRecursiveValuer_Value(t *testing.T) { |
|
input := map[string]any{ |
|
"component": map[string]any{ |
|
"name": "test", |
|
"foo": map[string]any{ |
|
"bar": "baz", |
|
}, |
|
}, |
|
"foo": "value", |
|
} |
|
valuer := recursiveValuer{ |
|
current: mapValuer(input["component"].(map[string]any)), |
|
parent: simpleValuer{ |
|
current: mapValuer(input), |
|
}, |
|
} |
|
|
|
val, ok := valuer.Value("foo") |
|
assert.True(t, ok) |
|
assert.EqualValues(t, map[string]any{ |
|
"bar": "baz", |
|
}, val) |
|
}
|
|
|