Blame internal/store/json_test.go

Packit 63bb0d
package store
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"encoding/json"
Packit 63bb0d
	"io/ioutil"
Packit 63bb0d
	"path/filepath"
Packit 63bb0d
	"reflect"
Packit 63bb0d
	"testing"
Packit 63bb0d
	"time"
Packit 63bb0d
Packit 63bb0d
	"github.com/google/uuid"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/blueprint"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/common"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro/fedoratest"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro/test_distro"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/target"
Packit 63bb0d
	"github.com/stretchr/testify/assert"
Packit 63bb0d
	"github.com/stretchr/testify/require"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
// MustParseTime parses a time string and panics if there is an error
Packit 63bb0d
func MustParseTime(ts string) time.Time {
Packit 63bb0d
	t, err := time.Parse(time.RFC3339, ts)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic(err)
Packit 63bb0d
	}
Packit 63bb0d
	return t
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_imageTypeToCompatString(t *testing.T) {
Packit 63bb0d
	type args struct {
Packit 63bb0d
		input distro.ImageType
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name string
Packit 63bb0d
		args args
Packit 63bb0d
		want string
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "valid",
Packit 63bb0d
			args: args{
Packit 63bb0d
				input: &test_distro.TestImageType{},
Packit 63bb0d
			},
Packit 63bb0d
			want: "test_type",
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			got := imageTypeToCompatString(tt.args.input)
Packit 63bb0d
			if got != tt.want {
Packit 63bb0d
				t.Errorf("imageTypeStringToCompatString() got = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_imageTypeFromCompatString(t *testing.T) {
Packit 63bb0d
	type args struct {
Packit 63bb0d
		input string
Packit 63bb0d
		arch  distro.Arch
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name string
Packit 63bb0d
		args args
Packit 63bb0d
		want distro.ImageType
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "valid",
Packit 63bb0d
			args: args{
Packit 63bb0d
				input: "test_type",
Packit 63bb0d
				arch:  &test_distro.TestArch{},
Packit 63bb0d
			},
Packit 63bb0d
			want: &test_distro.TestImageType{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "invalid mapping",
Packit 63bb0d
			args: args{
Packit 63bb0d
				input: "foo",
Packit 63bb0d
				arch:  &test_distro.TestArch{},
Packit 63bb0d
			},
Packit 63bb0d
			want: nil,
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "invalid distro name",
Packit 63bb0d
			args: args{
Packit 63bb0d
				input: "test_type_invalid",
Packit 63bb0d
				arch:  &test_distro.TestArch{},
Packit 63bb0d
			},
Packit 63bb0d
			want: nil,
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			got := imageTypeFromCompatString(tt.args.input, tt.args.arch)
Packit 63bb0d
			if got != tt.want {
Packit 63bb0d
				t.Errorf("imageTypeStringFromCompatString() got = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestMarshalEmpty(t *testing.T) {
Packit 63bb0d
	d := fedoratest.New()
Packit 63bb0d
	arch, err := d.GetArch("x86_64")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid architecture x86_64 for fedoratest")
Packit 63bb0d
	}
Packit 63bb0d
	store1 := FixtureEmpty()
Packit 63bb0d
	storeV0 := store1.toStoreV0()
Packit 63bb0d
	store2 := newStoreFromV0(*storeV0, arch, nil)
Packit 63bb0d
	if !reflect.DeepEqual(store1, store2) {
Packit 63bb0d
		t.Errorf("marshal/unmarshal roundtrip not a noop for empty store: %v != %v", store1, store2)
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestMarshalFinished(t *testing.T) {
Packit 63bb0d
	d := fedoratest.New()
Packit 63bb0d
	arch, err := d.GetArch("x86_64")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid architecture x86_64 for fedoratest")
Packit 63bb0d
	}
Packit 63bb0d
	store1 := FixtureFinished()
Packit 63bb0d
	storeV0 := store1.toStoreV0()
Packit 63bb0d
	store2 := newStoreFromV0(*storeV0, arch, nil)
Packit 63bb0d
	if !reflect.DeepEqual(store1, store2) {
Packit 63bb0d
		t.Errorf("marshal/unmarshal roundtrip not a noop for base store: %v != %v", store1, store2)
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestStore_toStoreV0(t *testing.T) {
Packit 63bb0d
	type fields struct {
Packit 63bb0d
		blueprints        map[string]blueprint.Blueprint
Packit 63bb0d
		workspace         map[string]blueprint.Blueprint
Packit 63bb0d
		composes          map[uuid.UUID]Compose
Packit 63bb0d
		sources           map[string]SourceConfig
Packit 63bb0d
		blueprintsChanges map[string]map[string]blueprint.Change
Packit 63bb0d
		blueprintsCommits map[string][]string
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name   string
Packit 63bb0d
		fields fields
Packit 63bb0d
		want   *storeV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:   "empty",
Packit 63bb0d
			fields: fields{},
Packit 63bb0d
			want: &storeV0{
Packit 63bb0d
				Blueprints: make(blueprintsV0),
Packit 63bb0d
				Workspace:  make(workspaceV0),
Packit 63bb0d
				Composes:   make(composesV0),
Packit 63bb0d
				Sources:    make(sourcesV0),
Packit 63bb0d
				Changes:    make(changesV0),
Packit 63bb0d
				Commits:    make(commitsV0),
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			store := &Store{
Packit 63bb0d
				blueprints:        tt.fields.blueprints,
Packit 63bb0d
				workspace:         tt.fields.workspace,
Packit 63bb0d
				composes:          tt.fields.composes,
Packit 63bb0d
				sources:           tt.fields.sources,
Packit 63bb0d
				blueprintsChanges: tt.fields.blueprintsChanges,
Packit 63bb0d
				blueprintsCommits: tt.fields.blueprintsCommits,
Packit 63bb0d
			}
Packit 63bb0d
			if got := store.toStoreV0(); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("Store.toStoreV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newStoreFromV0(t *testing.T) {
Packit 63bb0d
	type args struct {
Packit 63bb0d
		storeStruct storeV0
Packit 63bb0d
		arch        distro.Arch
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name string
Packit 63bb0d
		args args
Packit 63bb0d
		want *Store
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "empty",
Packit 63bb0d
			args: args{
Packit 63bb0d
				storeStruct: storeV0{},
Packit 63bb0d
				arch:        &test_distro.TestArch{},
Packit 63bb0d
			},
Packit 63bb0d
			want: New(nil, &test_distro.TestArch{}, nil),
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newStoreFromV0(tt.args.storeStruct, tt.args.arch, nil); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newStoreFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newCommitsV0(t *testing.T) {
Packit 63bb0d
	type args struct {
Packit 63bb0d
		commits map[string][]string
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name string
Packit 63bb0d
		args args
Packit 63bb0d
		want commitsV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "empty",
Packit 63bb0d
			args: args{
Packit 63bb0d
				commits: make(map[string][]string),
Packit 63bb0d
			},
Packit 63bb0d
			want: commitsV0{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "One blueprint's commits",
Packit 63bb0d
			args: args{
Packit 63bb0d
				commits: map[string][]string{
Packit 63bb0d
					"test-blueprint-changes-v0": {
Packit 63bb0d
						"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: commitsV0{
Packit 63bb0d
				"test-blueprint-changes-v0": {
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two blueprint's commits",
Packit 63bb0d
			args: args{
Packit 63bb0d
				commits: map[string][]string{
Packit 63bb0d
					"test-blueprint-changes-v0": {
Packit 63bb0d
						"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
					},
Packit 63bb0d
					"second-blueprint": {
Packit 63bb0d
						"3c2a2653d044433bae36e3236d394688126fa386",
Packit 63bb0d
						"7619ec57c37b4396b5a91358c98792df9e143c18",
Packit 63bb0d
						"8d3cc55a6d2841b2bc6e6578d2ec21123110a858",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: commitsV0{
Packit 63bb0d
				"test-blueprint-changes-v0": {
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
				},
Packit 63bb0d
				"second-blueprint": {
Packit 63bb0d
					"3c2a2653d044433bae36e3236d394688126fa386",
Packit 63bb0d
					"7619ec57c37b4396b5a91358c98792df9e143c18",
Packit 63bb0d
					"8d3cc55a6d2841b2bc6e6578d2ec21123110a858",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newCommitsV0(tt.args.commits); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newCommitsV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_upgrade(t *testing.T) {
Packit 63bb0d
	assert := assert.New(t)
Packit 63bb0d
	testPath, err := filepath.Abs("./test/*.json")
Packit 63bb0d
	require.NoError(t, err)
Packit 63bb0d
	fileNames, err := filepath.Glob(testPath)
Packit 63bb0d
	assert.NoErrorf(err, "Could not read test store directory '%s': %v", testPath, err)
Packit 63bb0d
	require.Greaterf(t, len(fileNames), 0, "No test stores found in %s", testPath)
Packit 63bb0d
	for _, fileName := range fileNames {
Packit 63bb0d
		var storeStruct storeV0
Packit 63bb0d
		file, err := ioutil.ReadFile(fileName)
Packit 63bb0d
		assert.NoErrorf(err, "Could not read test-store '%s': %v", fileName, err)
Packit 63bb0d
		err = json.Unmarshal([]byte(file), &storeStruct)
Packit 63bb0d
		assert.NoErrorf(err, "Could not parse test-store '%s': %v", fileName, err)
Packit 63bb0d
		arch, err := fedora32.New().GetArch("x86_64")
Packit 63bb0d
		assert.NoError(err)
Packit 63bb0d
		store := newStoreFromV0(storeStruct, arch, nil)
Packit 63bb0d
		assert.Equal(1, len(store.blueprints))
Packit 63bb0d
		assert.Equal(1, len(store.blueprintsChanges))
Packit 63bb0d
		assert.Equal(1, len(store.blueprintsCommits))
Packit 63bb0d
		assert.LessOrEqual(1, len(store.composes))
Packit 63bb0d
		assert.Equal(1, len(store.workspace))
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newCommitsFromV0(t *testing.T) {
Packit 63bb0d
	exampleChanges := changesV0{
Packit 63bb0d
		"test-blueprint-changes-v0": {
Packit 63bb0d
			"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
				Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
				Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
				Revision:  nil,
Packit 63bb0d
				Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
			},
Packit 63bb0d
			"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
				Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
				Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
				Revision:  nil,
Packit 63bb0d
				Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
			},
Packit 63bb0d
			"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
				Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
				Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
				Revision:  nil,
Packit 63bb0d
				Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	type args struct {
Packit 63bb0d
		changes changesV0
Packit 63bb0d
		commits commitsV0
Packit 63bb0d
	}
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name string
Packit 63bb0d
		args args
Packit 63bb0d
		want map[string][]string
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "empty",
Packit 63bb0d
			args: args{
Packit 63bb0d
				changes: make(changesV0),
Packit 63bb0d
				commits: make(commitsV0),
Packit 63bb0d
			},
Packit 63bb0d
			want: make(map[string][]string),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Changes with no commits",
Packit 63bb0d
			args: args{
Packit 63bb0d
				changes: exampleChanges,
Packit 63bb0d
				commits: make(commitsV0),
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string][]string{
Packit 63bb0d
				"test-blueprint-changes-v0": {
Packit 63bb0d
					// Oldest sorted first
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Changes with commits",
Packit 63bb0d
			args: args{
Packit 63bb0d
				changes: exampleChanges,
Packit 63bb0d
				commits: commitsV0{
Packit 63bb0d
					"test-blueprint-changes-v0": {
Packit 63bb0d
						"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string][]string{
Packit 63bb0d
				"test-blueprint-changes-v0": {
Packit 63bb0d
					// Oldest sorted first
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		}}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newCommitsFromV0(tt.args.commits, tt.args.changes); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newCommitsFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newBlueprintsFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name       string
Packit 63bb0d
		blueprints blueprintsV0
Packit 63bb0d
		want       map[string]blueprint.Blueprint
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:       "empty",
Packit 63bb0d
			blueprints: blueprintsV0{},
Packit 63bb0d
			want:       make(map[string]blueprint.Blueprint),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprints",
Packit 63bb0d
			blueprints: blueprintsV0{
Packit 63bb0d
				"blueprint-1": {
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
				"blueprint-2": {
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]blueprint.Blueprint{
Packit 63bb0d
				"blueprint-1": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
				"blueprint-2": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newBlueprintsFromV0(tt.blueprints); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newBlueprintsFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newBlueprintsV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name       string
Packit 63bb0d
		blueprints map[string]blueprint.Blueprint
Packit 63bb0d
		want       blueprintsV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:       "empty",
Packit 63bb0d
			blueprints: make(map[string]blueprint.Blueprint),
Packit 63bb0d
			want:       blueprintsV0{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprints",
Packit 63bb0d
			blueprints: map[string]blueprint.Blueprint{
Packit 63bb0d
				"blueprint-1": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
				"blueprint-2": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
			},
Packit 63bb0d
			want: blueprintsV0{
Packit 63bb0d
				"blueprint-1": {
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
				"blueprint-2": {
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newBlueprintsV0(tt.blueprints); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newBlueprintsV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newWorkspaceFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name       string
Packit 63bb0d
		blueprints workspaceV0
Packit 63bb0d
		want       map[string]blueprint.Blueprint
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:       "empty",
Packit 63bb0d
			blueprints: workspaceV0{},
Packit 63bb0d
			want:       make(map[string]blueprint.Blueprint),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprints",
Packit 63bb0d
			blueprints: workspaceV0{
Packit 63bb0d
				"blueprint-1": {
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
				"blueprint-2": {
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]blueprint.Blueprint{
Packit 63bb0d
				"blueprint-1": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
				"blueprint-2": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newWorkspaceFromV0(tt.blueprints); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newWorkspaceFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newWorkspaceV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name       string
Packit 63bb0d
		blueprints map[string]blueprint.Blueprint
Packit 63bb0d
		want       workspaceV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:       "empty",
Packit 63bb0d
			blueprints: make(map[string]blueprint.Blueprint),
Packit 63bb0d
			want:       workspaceV0{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprints",
Packit 63bb0d
			blueprints: map[string]blueprint.Blueprint{
Packit 63bb0d
				"blueprint-1": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
				"blueprint-2": blueprint.Blueprint{
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1"},
Packit 63bb0d
			},
Packit 63bb0d
			want: workspaceV0{
Packit 63bb0d
				"blueprint-1": {
Packit 63bb0d
					Name:        "blueprint-1",
Packit 63bb0d
					Description: "First Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
				"blueprint-2": {
Packit 63bb0d
					Name:        "blueprint-2",
Packit 63bb0d
					Description: "Second Blueprint in Test",
Packit 63bb0d
					Version:     "0.0.1",
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newWorkspaceV0(tt.blueprints); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newWorkspaceV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newChangesFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		changes changesV0
Packit 63bb0d
		want    map[string]map[string]blueprint.Change
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:    "empty",
Packit 63bb0d
			changes: changesV0{},
Packit 63bb0d
			want:    make(map[string]map[string]blueprint.Change),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "One Blueprint's Changes",
Packit 63bb0d
			changes: changesV0{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]map[string]blueprint.Change{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprint's Changes",
Packit 63bb0d
			changes: changesV0{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				"test-blueprint-changes-2": {
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]map[string]blueprint.Change{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				"test-blueprint-changes-2": {
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		}}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newChangesFromV0(tt.changes); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newChangesFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newChangesV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		changes map[string]map[string]blueprint.Change
Packit 63bb0d
		want    changesV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:    "empty",
Packit 63bb0d
			changes: make(map[string]map[string]blueprint.Change),
Packit 63bb0d
			want:    changesV0{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "One Blueprint's Changes",
Packit 63bb0d
			changes: map[string]map[string]blueprint.Change{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: changesV0{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Blueprint's Changes",
Packit 63bb0d
			changes: map[string]map[string]blueprint.Change{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				"test-blueprint-changes-2": {
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: changesV0{
Packit 63bb0d
				"test-blueprint-changes-1": {
Packit 63bb0d
					"4774980638f4162d9909a613c3ccd938e60bb3a9": {
Packit 63bb0d
						Commit:    "4774980638f4162d9909a613c3ccd938e60bb3a9",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.2 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-29T09:52:07Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				"test-blueprint-changes-2": {
Packit 63bb0d
					"72fdb76b9994bd72770e283bf3a5206756daf497": {
Packit 63bb0d
						Commit:    "72fdb76b9994bd72770e283bf3a5206756daf497",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.1.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-09T13:33:06Z",
Packit 63bb0d
					},
Packit 63bb0d
					"79e2043a83637ffdd4db078c6da23deaae09c84b": {
Packit 63bb0d
						Commit:    "79e2043a83637ffdd4db078c6da23deaae09c84b",
Packit 63bb0d
						Message:   "Recipe test-blueprint-changes-v0, version 0.0.1 saved.",
Packit 63bb0d
						Revision:  nil,
Packit 63bb0d
						Timestamp: "2020-07-07T02:57:00Z",
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newChangesV0(tt.changes); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newChangesV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newSourceConfigsFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		sources sourcesV0
Packit 63bb0d
		want    map[string]SourceConfig
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:    "empty",
Packit 63bb0d
			sources: sourcesV0{},
Packit 63bb0d
			want:    make(map[string]SourceConfig),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "One Source",
Packit 63bb0d
			sources: sourcesV0{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]SourceConfig{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Sources",
Packit 63bb0d
			sources: sourcesV0{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
				"repo-2": {
Packit 63bb0d
					Name:     "testRepo2",
Packit 63bb0d
					Type:     "yum-baseurl",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[string]SourceConfig{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
				"repo-2": {
Packit 63bb0d
					Name:     "testRepo2",
Packit 63bb0d
					Type:     "yum-baseurl",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newSourceConfigsFromV0(tt.sources); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newSourceConfigsFromV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newSourcesFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		sources map[string]SourceConfig
Packit 63bb0d
		want    sourcesV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:    "empty",
Packit 63bb0d
			sources: make(map[string]SourceConfig),
Packit 63bb0d
			want:    sourcesV0{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "One Source",
Packit 63bb0d
			sources: map[string]SourceConfig{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: sourcesV0{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "Two Sources",
Packit 63bb0d
			sources: map[string]SourceConfig{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
				"repo-2": {
Packit 63bb0d
					Name:     "testRepo2",
Packit 63bb0d
					Type:     "yum-baseurl",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: sourcesV0{
Packit 63bb0d
				"repo-1": {
Packit 63bb0d
					Name:     "testRepo1",
Packit 63bb0d
					Type:     "yum-mirrorlist",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
				"repo-2": {
Packit 63bb0d
					Name:     "testRepo2",
Packit 63bb0d
					Type:     "yum-baseurl",
Packit 63bb0d
					URL:      "testURL",
Packit 63bb0d
					CheckGPG: true,
Packit 63bb0d
					CheckSSL: true,
Packit 63bb0d
					System:   false,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newSourcesV0(tt.sources); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newSourcesV0() = %v, want %v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newComposeV0(t *testing.T) {
Packit 63bb0d
	bp := blueprint.Blueprint{
Packit 63bb0d
		Name:        "tmux",
Packit 63bb0d
		Description: "tmux blueprint",
Packit 63bb0d
		Version:     "0.0.1",
Packit 63bb0d
		Packages: []blueprint.Package{
Packit 63bb0d
			{Name: "tmux", Version: "*"}},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		compose Compose
Packit 63bb0d
		want    composeV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "qcow2 compose",
Packit 63bb0d
			compose: Compose{
Packit 63bb0d
				Blueprint: &bp,
Packit 63bb0d
				ImageBuild: ImageBuild{
Packit 63bb0d
					ID:        0,
Packit 63bb0d
					ImageType: &test_distro.TestImageType{},
Packit 63bb0d
					Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
					Targets: []*target.Target{
Packit 63bb0d
						{
Packit 63bb0d
							Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
							ImageName: "",
Packit 63bb0d
							Name:      "org.osbuild.local",
Packit 63bb0d
							Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
							Status:    common.IBWaiting,
Packit 63bb0d
							Options: target.LocalTargetOptions{
Packit 63bb0d
								ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
								ImageBuildId: 0,
Packit 63bb0d
								Filename:     "disk.qcow2",
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
					JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
					JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
					JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
					Size:        2147483648,
Packit 63bb0d
					JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
					QueueStatus: common.IBFinished,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: composeV0{
Packit 63bb0d
				Blueprint: &bp,
Packit 63bb0d
				ImageBuilds: []imageBuildV0{
Packit 63bb0d
					{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: "test_type",
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newComposeV0(tt.compose); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newComposeV0() = %#v, want %#v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newComposeFromV0(t *testing.T) {
Packit 63bb0d
	bp := blueprint.Blueprint{
Packit 63bb0d
		Name:        "tmux",
Packit 63bb0d
		Description: "tmux blueprint",
Packit 63bb0d
		Version:     "0.0.1",
Packit 63bb0d
		Packages: []blueprint.Package{
Packit 63bb0d
			{Name: "tmux", Version: "*"}},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name    string
Packit 63bb0d
		compose composeV0
Packit 63bb0d
		arch    distro.Arch
Packit 63bb0d
		want    Compose
Packit 63bb0d
		errOk   bool
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:    "empty",
Packit 63bb0d
			compose: composeV0{},
Packit 63bb0d
			arch:    &test_distro.TestArch{},
Packit 63bb0d
			want:    Compose{},
Packit 63bb0d
			errOk:   true,
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name:  "qcow2 compose",
Packit 63bb0d
			arch:  &test_distro.TestArch{},
Packit 63bb0d
			errOk: false,
Packit 63bb0d
			compose: composeV0{
Packit 63bb0d
				Blueprint: &bp,
Packit 63bb0d
				ImageBuilds: []imageBuildV0{
Packit 63bb0d
					{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: "test_type",
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: Compose{
Packit 63bb0d
				Blueprint: &bp,
Packit 63bb0d
				ImageBuild: ImageBuild{
Packit 63bb0d
					ID:        0,
Packit 63bb0d
					ImageType: &test_distro.TestImageType{},
Packit 63bb0d
					Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
					Targets: []*target.Target{
Packit 63bb0d
						{
Packit 63bb0d
							Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
							ImageName: "",
Packit 63bb0d
							Name:      "org.osbuild.local",
Packit 63bb0d
							Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
							Status:    common.IBWaiting,
Packit 63bb0d
							Options: target.LocalTargetOptions{
Packit 63bb0d
								ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
								ImageBuildId: 0,
Packit 63bb0d
								Filename:     "disk.qcow2",
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
					JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
					JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
					JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
					Size:        2147483648,
Packit 63bb0d
					JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
					QueueStatus: common.IBFinished,
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			got, err := newComposeFromV0(tt.compose, tt.arch)
Packit 63bb0d
			if err != nil {
Packit 63bb0d
				if !tt.errOk {
Packit 63bb0d
					t.Errorf("newComposeFromV0() error = %v", err)
Packit 63bb0d
				}
Packit 63bb0d
			} else if !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newComposeFromV0() = %#v, want %#v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newComposesV0(t *testing.T) {
Packit 63bb0d
	bp := blueprint.Blueprint{
Packit 63bb0d
		Name:        "tmux",
Packit 63bb0d
		Description: "tmux blueprint",
Packit 63bb0d
		Version:     "0.0.1",
Packit 63bb0d
		Packages: []blueprint.Package{
Packit 63bb0d
			{Name: "tmux", Version: "*"}},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name     string
Packit 63bb0d
		composes map[uuid.UUID]Compose
Packit 63bb0d
		want     composesV0
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name: "two composes",
Packit 63bb0d
			composes: map[uuid.UUID]Compose{
Packit 63bb0d
				uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuild: ImageBuild{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: &test_distro.TestImageType{},
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuild: ImageBuild{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: &test_distro.TestImageType{},
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("6ac04049-341a-4297-b50b-5424bec9f193"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: composesV0{
Packit 63bb0d
				uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuilds: []imageBuildV0{
Packit 63bb0d
						imageBuildV0{
Packit 63bb0d
							ID:        0,
Packit 63bb0d
							ImageType: "test_type",
Packit 63bb0d
							Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
							Targets: []*target.Target{
Packit 63bb0d
								{
Packit 63bb0d
									Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
									ImageName: "",
Packit 63bb0d
									Name:      "org.osbuild.local",
Packit 63bb0d
									Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
									Status:    common.IBWaiting,
Packit 63bb0d
									Options: target.LocalTargetOptions{
Packit 63bb0d
										ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
										ImageBuildId: 0,
Packit 63bb0d
										Filename:     "disk.qcow2",
Packit 63bb0d
									},
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
							JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
							JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							Size:        2147483648,
Packit 63bb0d
							JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
							QueueStatus: common.IBFinished,
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuilds: []imageBuildV0{
Packit 63bb0d
						imageBuildV0{
Packit 63bb0d
							ID:        0,
Packit 63bb0d
							ImageType: "test_type",
Packit 63bb0d
							Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
							Targets: []*target.Target{
Packit 63bb0d
								{
Packit 63bb0d
									Uuid:      uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
									ImageName: "",
Packit 63bb0d
									Name:      "org.osbuild.local",
Packit 63bb0d
									Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
									Status:    common.IBWaiting,
Packit 63bb0d
									Options: target.LocalTargetOptions{
Packit 63bb0d
										ComposeId:    uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
										ImageBuildId: 0,
Packit 63bb0d
										Filename:     "disk.qcow2",
Packit 63bb0d
									},
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
							JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
							JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							Size:        2147483648,
Packit 63bb0d
							JobID:       uuid.MustParse("6ac04049-341a-4297-b50b-5424bec9f193"),
Packit 63bb0d
							QueueStatus: common.IBFinished,
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newComposesV0(tt.composes); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newComposesV0() = %#v, want %#v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newComposesFromV0(t *testing.T) {
Packit 63bb0d
	bp := blueprint.Blueprint{
Packit 63bb0d
		Name:        "tmux",
Packit 63bb0d
		Description: "tmux blueprint",
Packit 63bb0d
		Version:     "0.0.1",
Packit 63bb0d
		Packages: []blueprint.Package{
Packit 63bb0d
			{Name: "tmux", Version: "*"}},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name     string
Packit 63bb0d
		arch     distro.Arch
Packit 63bb0d
		composes composesV0
Packit 63bb0d
		want     map[uuid.UUID]Compose
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:     "empty",
Packit 63bb0d
			arch:     &test_distro.TestArch{},
Packit 63bb0d
			composes: composesV0{},
Packit 63bb0d
			want:     make(map[uuid.UUID]Compose),
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name: "two composes",
Packit 63bb0d
			arch: &test_distro.TestArch{},
Packit 63bb0d
			composes: composesV0{
Packit 63bb0d
				uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuilds: []imageBuildV0{
Packit 63bb0d
						{
Packit 63bb0d
							ID:        0,
Packit 63bb0d
							ImageType: "test_type",
Packit 63bb0d
							Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
							Targets: []*target.Target{
Packit 63bb0d
								{
Packit 63bb0d
									Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
									ImageName: "",
Packit 63bb0d
									Name:      "org.osbuild.local",
Packit 63bb0d
									Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
									Status:    common.IBWaiting,
Packit 63bb0d
									Options: target.LocalTargetOptions{
Packit 63bb0d
										ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
										ImageBuildId: 0,
Packit 63bb0d
										Filename:     "disk.qcow2",
Packit 63bb0d
									},
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
							JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
							JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							Size:        2147483648,
Packit 63bb0d
							JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
							QueueStatus: common.IBFinished,
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuilds: []imageBuildV0{
Packit 63bb0d
						{
Packit 63bb0d
							ID:        0,
Packit 63bb0d
							ImageType: "test_type",
Packit 63bb0d
							Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
							Targets: []*target.Target{
Packit 63bb0d
								{
Packit 63bb0d
									Uuid:      uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
									ImageName: "",
Packit 63bb0d
									Name:      "org.osbuild.local",
Packit 63bb0d
									Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
									Status:    common.IBWaiting,
Packit 63bb0d
									Options: target.LocalTargetOptions{
Packit 63bb0d
										ComposeId:    uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
										ImageBuildId: 0,
Packit 63bb0d
										Filename:     "disk.qcow2",
Packit 63bb0d
									},
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
							JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
							JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
							Size:        2147483648,
Packit 63bb0d
							JobID:       uuid.MustParse("6ac04049-341a-4297-b50b-5424bec9f193"),
Packit 63bb0d
							QueueStatus: common.IBFinished,
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
			want: map[uuid.UUID]Compose{
Packit 63bb0d
				uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuild: ImageBuild{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: &test_distro.TestImageType{},
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"): {
Packit 63bb0d
					Blueprint: &bp,
Packit 63bb0d
					ImageBuild: ImageBuild{
Packit 63bb0d
						ID:        0,
Packit 63bb0d
						ImageType: &test_distro.TestImageType{},
Packit 63bb0d
						Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
						Targets: []*target.Target{
Packit 63bb0d
							{
Packit 63bb0d
								Uuid:      uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
								ImageName: "",
Packit 63bb0d
								Name:      "org.osbuild.local",
Packit 63bb0d
								Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
								Status:    common.IBWaiting,
Packit 63bb0d
								Options: target.LocalTargetOptions{
Packit 63bb0d
									ComposeId:    uuid.MustParse("14c454d0-26f3-4a56-8ceb-a5673aaba686"),
Packit 63bb0d
									ImageBuildId: 0,
Packit 63bb0d
									Filename:     "disk.qcow2",
Packit 63bb0d
								},
Packit 63bb0d
							},
Packit 63bb0d
						},
Packit 63bb0d
						JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
						JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
						Size:        2147483648,
Packit 63bb0d
						JobID:       uuid.MustParse("6ac04049-341a-4297-b50b-5424bec9f193"),
Packit 63bb0d
						QueueStatus: common.IBFinished,
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			if got := newComposesFromV0(tt.composes, tt.arch, nil); !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newComposesFromV0() = %#v, want %#v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func Test_newImageBuildFromV0(t *testing.T) {
Packit 63bb0d
	tests := []struct {
Packit 63bb0d
		name  string
Packit 63bb0d
		arch  distro.Arch
Packit 63bb0d
		ib    imageBuildV0
Packit 63bb0d
		want  ImageBuild
Packit 63bb0d
		errOk bool
Packit 63bb0d
	}{
Packit 63bb0d
		{
Packit 63bb0d
			name:  "empty",
Packit 63bb0d
			arch:  &test_distro.TestArch{},
Packit 63bb0d
			errOk: true,
Packit 63bb0d
			ib:    imageBuildV0{},
Packit 63bb0d
			want:  ImageBuild{},
Packit 63bb0d
		},
Packit 63bb0d
		{
Packit 63bb0d
			name:  "qcow2 image build",
Packit 63bb0d
			arch:  &test_distro.TestArch{},
Packit 63bb0d
			errOk: false,
Packit 63bb0d
			ib: imageBuildV0{
Packit 63bb0d
				ID:        0,
Packit 63bb0d
				ImageType: "test_type",
Packit 63bb0d
				Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
				Targets: []*target.Target{
Packit 63bb0d
					{
Packit 63bb0d
						Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
						ImageName: "",
Packit 63bb0d
						Name:      "org.osbuild.local",
Packit 63bb0d
						Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
						Status:    common.IBWaiting,
Packit 63bb0d
						Options: target.LocalTargetOptions{
Packit 63bb0d
							ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
							ImageBuildId: 0,
Packit 63bb0d
							Filename:     "disk.qcow2",
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
				JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
				JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
				Size:        2147483648,
Packit 63bb0d
				JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
				QueueStatus: common.IBFinished,
Packit 63bb0d
			},
Packit 63bb0d
			want: ImageBuild{
Packit 63bb0d
				ID:        0,
Packit 63bb0d
				ImageType: &test_distro.TestImageType{},
Packit 63bb0d
				Manifest:  []byte("JSON MANIFEST GOES HERE"),
Packit 63bb0d
				Targets: []*target.Target{
Packit 63bb0d
					{
Packit 63bb0d
						Uuid:      uuid.MustParse("f53b49c0-d321-447e-8ab8-6e827891e3f0"),
Packit 63bb0d
						ImageName: "",
Packit 63bb0d
						Name:      "org.osbuild.local",
Packit 63bb0d
						Created:   MustParseTime("2020-08-12T09:21:44.427717205-07:00"),
Packit 63bb0d
						Status:    common.IBWaiting,
Packit 63bb0d
						Options: target.LocalTargetOptions{
Packit 63bb0d
							ComposeId:    uuid.MustParse("6b512b52-1e9d-4dac-869c-108fd4860a3e"),
Packit 63bb0d
							ImageBuildId: 0,
Packit 63bb0d
							Filename:     "disk.qcow2",
Packit 63bb0d
						},
Packit 63bb0d
					},
Packit 63bb0d
				},
Packit 63bb0d
				JobCreated:  MustParseTime("2020-08-12T09:21:50.07040195-07:00"),
Packit 63bb0d
				JobStarted:  MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
				JobFinished: MustParseTime("0001-01-01T00:00:00Z"),
Packit 63bb0d
				Size:        2147483648,
Packit 63bb0d
				JobID:       uuid.MustParse("22445cd3-7fa5-4dca-b7f8-4f9857b3e3a0"),
Packit 63bb0d
				QueueStatus: common.IBFinished,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	for _, tt := range tests {
Packit 63bb0d
		t.Run(tt.name, func(t *testing.T) {
Packit 63bb0d
			got, err := newImageBuildFromV0(tt.ib, tt.arch)
Packit 63bb0d
			if err != nil {
Packit 63bb0d
				if !tt.errOk {
Packit 63bb0d
					t.Errorf("newImageBuildFromV0() error = %v", err)
Packit 63bb0d
				}
Packit 63bb0d
			} else if !reflect.DeepEqual(got, tt.want) {
Packit 63bb0d
				t.Errorf("newImageBuildFromV0() = %#v, want %#v", got, tt.want)
Packit 63bb0d
			}
Packit 63bb0d
		})
Packit 63bb0d
	}
Packit 63bb0d
}