package taskruns

import (
	"encoding/json"
	"testing"

	"github.com/stretchr/testify/assert"
)

func MustYamlEq(t *testing.T, expected string, actual interface{}, msgAndArgs ...interface{}) bool {
	marshal, err := json.Marshal(actual)
	if err != nil {
		t.Fail()
	}
	act := string(marshal)
	println(act)
	return assert.YAMLEq(t, expected, act, msgAndArgs...)
}

func TestTestbedSetupRun(t *testing.T) {
	r := NewTestbedSetup()
	expected := `
apiVersion: api/v1
kind: TestbedSetup
metadata:
    id: 0
    createAt: '0001-01-01T00:00:00Z'
    updateAt: '0001-01-01T00:00:00Z'
    createBy: ""
    updateBy: ""
spec: {}
status: {}
`
	MustYamlEq(t, expected, r)
}

func TestTestbedSetupRunList(t *testing.T) {
	r := TestbedSetupList{
		GeneralHeader: HeaderTestbedSetupList,
		Items:         []TestbedSetup{{GeneralHeader: GeneralHeader{ApiVersion: CurrentApiVersion, Kind: KindTestbedSetup}}},
	}
	expected := `
apiVersion: api/v1
kind: TestbedSetupList
items:
    -
        apiVersion: api/v1
        kind: TestbedSetup
        metadata:
            id: 0
            createAt: '0001-01-01T00:00:00Z'
            updateAt: '0001-01-01T00:00:00Z'
            createBy: ""
            updateBy: ""
        spec: {}
        status: {}
`
	MustYamlEq(t, expected, r)
}
