Skip to content

Commit c5ba23a

Browse files
fix: fix getValue on optimizelyJson built from a map (#258)
* fix: fix getValue on optimizelyJson built from a map
1 parent a252882 commit c5ba23a

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ jobs:
5757
- pushd $GOPATH/src/github.com/twmb/murmur3 && git checkout v1.0.0 && popd
5858
- mkdir $GOPATH/src/github.com/hashicorp && cd $GOPATH/src/github.com/hashicorp && git clone https://github.com/hashicorp/go-multierror.git && cd $TRAVIS_BUILD_DIR
5959
- pushd $GOPATH/src/github.com/hashicorp/go-multierror && git checkout v1.0.0 && popd
60+
- mkdir $GOPATH/src/gopkg.in && cd $GOPATH/src/gopkg.in && git clone https://github.com/go-yaml/yaml.git && cd $TRAVIS_BUILD_DIR
61+
- mv $GOPATH/src/gopkg.in/yaml $GOPATH/src/gopkg.in/yaml.v2 && pushd $GOPATH/src/gopkg.in/yaml.v2 && git checkout v2.2.2 && popd
6062
- go get -v -d ./...
6163
# This pkg not in go 1.10
6264
- go get github.com/stretchr/testify

pkg/optimizelyjson/optimizely_json.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ func (optlyJson *OptimizelyJSON) GetValue(jsonPath string, schema interface{}) e
7979
}
8080

8181
if jsonPath == "" { // populate the whole schema
82-
return json.Unmarshal([]byte(optlyJson.payload), schema)
82+
if optlyJson.payload != "" {
83+
return json.Unmarshal([]byte(optlyJson.payload), schema)
84+
}
85+
return populateSchema(optlyJson.data)
8386
}
8487

8588
splitJSONPath := strings.Split(jsonPath, ".")

pkg/optimizelyjson/optimizely_json_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ func (suite *OptimizelyJsonTestSuite) TestGetValueEmptyJsonKeyWholeSchema() {
193193
Field6: nil,
194194
}
195195
suite.Equal(expected, sc)
196+
197+
sc = schema{}
198+
optimizelyJsonFromMap := NewOptimizelyJSONfromMap(suite.data)
199+
err = optimizelyJsonFromMap.GetValue("", &sc)
200+
suite.NoError(err)
201+
suite.Equal(expected, sc)
196202
}
197203

198204
func (suite *OptimizelyJsonTestSuite) TestGetValueValidJsonKeyPartialSchema() {
@@ -213,9 +219,16 @@ func (suite *OptimizelyJsonTestSuite) TestGetValueValidJsonKeyPartialSchema() {
213219
suite.Equal(expected, sc)
214220

215221
// check if it does not destroy original object
222+
sc = schema{}
216223
err = suite.optimizelyJson.GetValue("field4", &sc)
217224
suite.NoError(err)
218225
suite.Equal(expected, sc)
226+
227+
sc = schema{}
228+
optimizelyJsonFromMap := NewOptimizelyJSONfromMap(suite.data)
229+
err = optimizelyJsonFromMap.GetValue("field4", &sc)
230+
suite.NoError(err)
231+
suite.Equal(expected, sc)
219232
}
220233

221234
func (suite *OptimizelyJsonTestSuite) TestGetValueValidJsonKeyArraySchema() {

0 commit comments

Comments
 (0)