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  }