2021-02-14 23:33:01 +03:00
|
|
|
package reflect
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2022-04-22 09:24:34 +03:00
|
|
|
func TestLookup(t *testing.T) {
|
2021-02-14 23:33:01 +03:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|