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