From 5331cd6ec0cdad3ca341cf96288b7fa4f75b9fb6 Mon Sep 17 00:00:00 2001 From: Paul Morie Date: Wed, 20 Aug 2014 17:22:29 -0400 Subject: [PATCH] Add missing case for IntOrString unit tests --- pkg/util/util_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/pkg/util/util_test.go b/pkg/util/util_test.go index 5e68b628132..43445af8a7a 100644 --- a/pkg/util/util_test.go +++ b/pkg/util/util_test.go @@ -18,6 +18,7 @@ package util import ( "encoding/json" + "reflect" "testing" "gopkg.in/v1/yaml" @@ -171,6 +172,33 @@ func TestIntOrStringMarshalJSON(t *testing.T) { } } +func TestIntOrStringMarshalJSONUnmarshalYAML(t *testing.T) { + cases := []struct { + input IntOrString + }{ + {IntOrString{Kind: IntstrInt, IntVal: 123}}, + {IntOrString{Kind: IntstrString, StrVal: "123"}}, + } + + for _, c := range cases { + input := IntOrStringHolder{c.input} + jsonMarshalled, err := json.Marshal(&input) + if err != nil { + t.Errorf("1: Failed to marshal input: '%v': %v", input, err) + } + + var result IntOrStringHolder + err = yaml.Unmarshal(jsonMarshalled, &result) + if err != nil { + t.Errorf("2: Failed to unmarshall '%+v': %v", string(jsonMarshalled), err) + } + + if !reflect.DeepEqual(input, result) { + t.Errorf("3: Failed to marshal input '%+v': got %+v", input, result) + } + } +} + func TestStringDiff(t *testing.T) { diff := StringDiff("aaabb", "aaacc") expect := "aaa\n\nA: bb\n\nB: cc\n\n"