35 lines
456 B
Go
35 lines
456 B
Go
|
package reflect
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestPath(t *testing.T) {
|
||
|
|
||
|
type Nested2 struct {
|
||
|
Name string
|
||
|
}
|
||
|
type Nested1 struct {
|
||
|
Nested2 Nested2
|
||
|
}
|
||
|
type Config struct {
|
||
|
Nested1 Nested1
|
||
|
}
|
||
|
|
||
|
cfg := &Config{
|
||
|
Nested1: Nested1{
|
||
|
Nested2: Nested2{
|
||
|
Name: "NAME",
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
v, err := Lookup(cfg, "$.Nested1.Nested2.Name")
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
if v.String() != "NAME" {
|
||
|
t.Fatalf("lookup returns invalid value: %v", v)
|
||
|
}
|
||
|
}
|