Blame internal/common/states_test.go

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