Enable get() to be used with alias $.StateValues (#2081)
This commit is contained in:
parent
19927fc147
commit
766b03047c
|
|
@ -38,6 +38,10 @@ func get(path string, varArgs ...interface{}) (interface{}, error) {
|
||||||
var v interface{}
|
var v interface{}
|
||||||
var ok bool
|
var ok bool
|
||||||
switch typedObj := obj.(type) {
|
switch typedObj := obj.(type) {
|
||||||
|
case *map[string]interface{}:
|
||||||
|
obj = *typedObj
|
||||||
|
}
|
||||||
|
switch typedObj := obj.(type) {
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
v, ok = typedObj[keys[0]]
|
v, ok = typedObj[keys[0]]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,26 @@ func TestGetMap(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetMapPtr(t *testing.T) {
|
||||||
|
obj := map[string]interface{}{"Foo": map[string]interface{}{"Bar": "Bar"}}
|
||||||
|
objPrt := &obj
|
||||||
|
|
||||||
|
v1, err := get("Foo.Bar", objPrt)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
if v1 != "Bar" {
|
||||||
|
t.Errorf("unexpected value for path Foo.Bar in %v: expected=Bar, actual=%v", objPrt, v1)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = get("Foo.baz", objPrt)
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("expected error but was not occurred")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestGet_Default(t *testing.T) {
|
func TestGet_Default(t *testing.T) {
|
||||||
obj := map[string]interface{}{"Foo": map[string]interface{}{}, "foo": 1}
|
obj := map[string]interface{}{"Foo": map[string]interface{}{}, "foo": 1}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue