This is an automated email from the ASF dual-hosted git repository. dewrich pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push: new 6fc4c70 Properly unmarshal null DeepCachingType value as "NEVER" 6fc4c70 is described below commit 6fc4c70d8aacbfff3c846375970c7b924e32bbf5 Author: Rawlin Peters <rawlin_pet...@comcast.com> AuthorDate: Fri Apr 13 14:18:56 2018 -0600 Properly unmarshal null DeepCachingType value as "NEVER" --- lib/go-tc/enum.go | 4 ++++ lib/go-tc/enum_test.go | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/go-tc/enum.go b/lib/go-tc/enum.go index da9dcf1..d7991b7 100644 --- a/lib/go-tc/enum.go +++ b/lib/go-tc/enum.go @@ -224,6 +224,10 @@ func DeepCachingTypeFromString(s string) DeepCachingType { // UnmarshalJSON unmarshals a JSON representation of a DeepCachingType (i.e. a string) or returns an error if the DeepCachingType is invalid func (t *DeepCachingType) UnmarshalJSON(data []byte) error { + if string(data) == "null" { + *t = DeepCachingTypeNever + return nil + } s, err := strconv.Unquote(string(data)) if err != nil { return errors.New(string(data) + " JSON not quoted") diff --git a/lib/go-tc/enum_test.go b/lib/go-tc/enum_test.go index e11e35b..95fb64a 100644 --- a/lib/go-tc/enum_test.go +++ b/lib/go-tc/enum_test.go @@ -63,13 +63,23 @@ func TestDeepCachingType(t *testing.T) { // make sure we get the right default when marshalled within a new delivery service var ds DeliveryService - txt, err := json.MarshalIndent(ds, ``, ` `) + _, err := json.MarshalIndent(ds, ``, ` `) if err != nil { t.Errorf(err.Error()) } - t.Log(string(txt)) c = ds.DeepCachingType.String() if c != "NEVER" { t.Errorf(`Default "%s" expected to be "NEVER"`, c) } + + // make sure null values are handled properly + byt := []byte(`{"deepCachingType": null}`) + err = json.Unmarshal(byt, &ds) + if err != nil { + t.Errorf(`Expected to be able to unmarshall a null deepCachingType as "NEVER", instead got error "%v"`, err.Error()) + } + c = ds.DeepCachingType.String() + if c != "NEVER" { + t.Errorf(`null deepCachingType expected to be "NEVER", got "%s"`, c) + } } -- To stop receiving notification emails like this one, please contact dewr...@apache.org.