go-micro.dev/v5@v5.12.0/config/reader/json/json_test.go (about) 1 package json 2 3 import ( 4 "testing" 5 6 "go-micro.dev/v5/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, err := values.Get(test.path...); err != nil { 40 t.Fatal(err) 41 } else if v.String("") != test.value { 42 t.Fatalf("Expected %s got %s for path %v", test.value, v, test.path) 43 } 44 } 45 }