github.com/annwntech/go-micro/v2@v2.9.5/config/reader/json/json_test.go (about) 1 package json 2 3 import ( 4 "testing" 5 6 "github.com/annwntech/go-micro/v2/config/source" 7 ) 8 9 func TestReader(t *testing.T) { 10 data := []byte(`{"foo": "bar", "baz": {"bar": "cat"}}`) 11 12 testData := []struct { 13 path []string 14 value string 15 }{ 16 { 17 []string{"foo"}, 18 "bar", 19 }, 20 { 21 []string{"baz", "bar"}, 22 "cat", 23 }, 24 } 25 26 r := NewReader() 27 28 c, err := r.Merge(&source.ChangeSet{Data: data}, &source.ChangeSet{}) 29 if err != nil { 30 t.Fatal(err) 31 } 32 33 values, err := r.Values(c) 34 if err != nil { 35 t.Fatal(err) 36 } 37 38 for _, test := range testData { 39 if v := values.Get(test.path...).String(""); v != test.value { 40 t.Fatalf("Expected %s got %s for path %v", test.value, v, test.path) 41 } 42 } 43 }