package common import ( "encoding/json" "testing" "github.com/stretchr/testify/assert" ) func TestJSONConversions(t *testing.T) { type TestJson struct { Ibs ImageBuildState `json:"ibs"` } typedCases := []TestJson{ { Ibs: IBWaiting, }, { Ibs: IBRunning, }, } strCases := []string{ `{"ibs": "WAITING"}`, `{"ibs": "RUNNING"}`, } for n, c := range strCases { var inputStringAsStruct *TestJson err := json.Unmarshal([]byte(c), &inputStringAsStruct) assert.NoErrorf(t, err, "Failed to unmarshal: %#v", err) assert.Equal(t, inputStringAsStruct, &typedCases[n]) } var byteArrays [][]byte for _, c := range typedCases { data, err := json.Marshal(c) assert.NoError(t, err) byteArrays = append(byteArrays, data) } for n, b := range byteArrays { var inputStringAsStruct *TestJson err := json.Unmarshal(b, &inputStringAsStruct) assert.NoError(t, err) assert.Equal(t, inputStringAsStruct, &typedCases[n]) } }