ComposeState is only used by the weldr API. Drop the JSON marshaller and unmarshaller, because ComposeState is not used in an JSON-exported field anymore.
47 lines
959 B
Go
47 lines
959 B
Go
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])
|
|
}
|
|
|
|
}
|