|
Packit |
63bb0d |
package blueprint
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
import (
|
|
Packit |
63bb0d |
"testing"
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
"github.com/stretchr/testify/assert"
|
|
Packit |
63bb0d |
"github.com/stretchr/testify/require"
|
|
Packit |
63bb0d |
)
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func TestDeepCopy(t *testing.T) {
|
|
Packit |
63bb0d |
bpOrig := Blueprint{
|
|
Packit |
63bb0d |
Name: "deepcopy-test",
|
|
Packit |
63bb0d |
Description: "Testing DeepCopy function",
|
|
Packit |
63bb0d |
Version: "0.0.1",
|
|
Packit |
63bb0d |
Packages: []Package{
|
|
Packit |
63bb0d |
{Name: "dep-package1", Version: "*"}},
|
|
Packit |
63bb0d |
Modules: []Package{
|
|
Packit |
63bb0d |
{Name: "dep-package2", Version: "*"}},
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
bpCopy := bpOrig.DeepCopy()
|
|
Packit |
63bb0d |
require.Equalf(t, bpOrig, bpCopy, "Blueprints.DeepCopy is different from original.")
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
// Modify the copy
|
|
Packit |
63bb0d |
bpCopy.Packages[0].Version = "1.2.3"
|
|
Packit |
63bb0d |
require.Equalf(t, bpOrig.Packages[0].Version, "*", "Blueprint.DeepCopy failed, original modified")
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
// Modify the original
|
|
Packit |
63bb0d |
bpOrig.Packages[0].Version = "42.0"
|
|
Packit |
63bb0d |
require.Equalf(t, bpCopy.Packages[0].Version, "1.2.3", "Blueprint.DeepCopy failed, copy modified.")
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func TestBlueprintInitialize(t *testing.T) {
|
|
Packit |
63bb0d |
cases := []struct {
|
|
Packit |
63bb0d |
NewBlueprint Blueprint
|
|
Packit |
63bb0d |
ExpectedError bool
|
|
Packit |
63bb0d |
}{
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-1", Description: "Empty version", Version: ""}, false},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-2", Description: "Invalid version 1", Version: "0"}, true},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-2", Description: "Invalid version 2", Version: "0.0"}, true},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-3", Description: "Invalid version 3", Version: "0.0.0.0"}, true},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-4", Description: "Invalid version 4", Version: "0.a.0"}, true},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-5", Description: "Invalid version 5", Version: "foo"}, true},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-7", Description: "Zero version", Version: "0.0.0"}, false},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-8", Description: "X.Y.Z version", Version: "2.1.3"}, false},
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
for _, c := range cases {
|
|
Packit |
63bb0d |
bp := c.NewBlueprint
|
|
Packit |
63bb0d |
err := bp.Initialize()
|
|
Packit |
63bb0d |
assert.Equalf(t, (err != nil), c.ExpectedError, "Initialize(%#v) returnted an unexpected error: %#v", c.NewBlueprint, err)
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func TestBumpVersion(t *testing.T) {
|
|
Packit |
63bb0d |
cases := []struct {
|
|
Packit |
63bb0d |
NewBlueprint Blueprint
|
|
Packit |
63bb0d |
OldVersion string
|
|
Packit |
63bb0d |
ExpectedVersion string
|
|
Packit |
63bb0d |
}{
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-1", Description: "Empty version", Version: "0.0.1"}, "", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-2", Description: "Invalid version 1", Version: "0.0.1"}, "0", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-3", Description: "Invalid version 2", Version: "0.0.1"}, "0.0.0.0", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-4", Description: "Invalid version 3", Version: "0.0.1"}, "0.a.0", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-5", Description: "Invalid version 4", Version: "0.0.1"}, "foo", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-6", Description: "Invalid version 5", Version: "0.0.1"}, "0.0", "0.0.1"},
|
|
Packit |
63bb0d |
{Blueprint{Name: "bp-test-8", Description: "Same version", Version: "4.2.0"}, "4.2.0", "4.2.1"},
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
for _, c := range cases {
|
|
Packit |
63bb0d |
bp := c.NewBlueprint
|
|
Packit |
63bb0d |
err := bp.Initialize()
|
|
Packit |
63bb0d |
require.NoError(t, err)
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
bp.BumpVersion(c.OldVersion)
|
|
Packit |
63bb0d |
assert.Equalf(t, c.ExpectedVersion, bp.Version, "BumpVersion(%#v) is expected to return %#v, but instead returned %#v.", c.OldVersion, c.ExpectedVersion, bp.Version)
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
func TestGetPackages(t *testing.T) {
|
|
Packit |
63bb0d |
|
|
Packit |
63bb0d |
bp := Blueprint{
|
|
Packit |
63bb0d |
Name: "packages-test",
|
|
Packit |
63bb0d |
Description: "Testing GetPackages function",
|
|
Packit |
63bb0d |
Version: "0.0.1",
|
|
Packit |
63bb0d |
Packages: []Package{
|
|
Packit |
63bb0d |
{Name: "tmux", Version: "1.2"}},
|
|
Packit |
63bb0d |
Modules: []Package{
|
|
Packit |
63bb0d |
{Name: "openssh-server", Version: "*"}},
|
|
Packit |
63bb0d |
Groups: []Group{
|
|
Packit |
63bb0d |
{Name: "anaconda-tools"}},
|
|
Packit |
63bb0d |
}
|
|
Packit |
63bb0d |
Received_packages := bp.GetPackages()
|
|
Packit Service |
bcdfb1 |
assert.ElementsMatch(t, []string{"tmux-1.2", "openssh-server", "@anaconda-tools", "kernel"}, Received_packages)
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
|
|
Packit Service |
bcdfb1 |
func TestKernelNameCustomization(t *testing.T) {
|
|
Packit Service |
bcdfb1 |
kernels := []string{"kernel", "kernel-debug", "kernel-rt"}
|
|
Packit Service |
bcdfb1 |
|
|
Packit Service |
bcdfb1 |
for _, k := range kernels {
|
|
Packit Service |
bcdfb1 |
// kernel in customizations
|
|
Packit Service |
bcdfb1 |
bp := Blueprint{
|
|
Packit Service |
bcdfb1 |
Name: "kernel-test",
|
|
Packit Service |
bcdfb1 |
Description: "Testing GetPackages function with custom Kernel",
|
|
Packit Service |
bcdfb1 |
Version: "0.0.1",
|
|
Packit Service |
bcdfb1 |
Packages: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "tmux", Version: "1.2"}},
|
|
Packit Service |
bcdfb1 |
Modules: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "openssh-server", Version: "*"}},
|
|
Packit Service |
bcdfb1 |
Groups: []Group{
|
|
Packit Service |
bcdfb1 |
{Name: "anaconda-tools"}},
|
|
Packit Service |
bcdfb1 |
Customizations: &Customizations{
|
|
Packit Service |
bcdfb1 |
Kernel: &KernelCustomization{
|
|
Packit Service |
bcdfb1 |
Name: k,
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
Received_packages := bp.GetPackages()
|
|
Packit Service |
bcdfb1 |
assert.ElementsMatch(t, []string{"tmux-1.2", "openssh-server", "@anaconda-tools", k}, Received_packages)
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
|
|
Packit Service |
bcdfb1 |
for _, k := range kernels {
|
|
Packit Service |
bcdfb1 |
// kernel in packages
|
|
Packit Service |
bcdfb1 |
bp := Blueprint{
|
|
Packit Service |
bcdfb1 |
Name: "kernel-test",
|
|
Packit Service |
bcdfb1 |
Description: "Testing GetPackages function with custom Kernel",
|
|
Packit Service |
bcdfb1 |
Version: "0.0.1",
|
|
Packit Service |
bcdfb1 |
Packages: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "tmux", Version: "1.2"},
|
|
Packit Service |
bcdfb1 |
{Name: k},
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
Modules: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "openssh-server", Version: "*"}},
|
|
Packit Service |
bcdfb1 |
Groups: []Group{
|
|
Packit Service |
bcdfb1 |
{Name: "anaconda-tools"}},
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
Received_packages := bp.GetPackages()
|
|
Packit Service |
bcdfb1 |
|
|
Packit Service |
bcdfb1 |
// adds default kernel as well
|
|
Packit Service |
bcdfb1 |
assert.ElementsMatch(t, []string{"tmux-1.2", k, "openssh-server", "@anaconda-tools", "kernel"}, Received_packages)
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
|
|
Packit Service |
bcdfb1 |
for _, bk := range kernels {
|
|
Packit Service |
bcdfb1 |
for _, ck := range kernels {
|
|
Packit Service |
bcdfb1 |
// all combos of both kernels
|
|
Packit Service |
bcdfb1 |
bp := Blueprint{
|
|
Packit Service |
bcdfb1 |
Name: "kernel-test",
|
|
Packit Service |
bcdfb1 |
Description: "Testing GetPackages function with custom Kernel",
|
|
Packit Service |
bcdfb1 |
Version: "0.0.1",
|
|
Packit Service |
bcdfb1 |
Packages: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "tmux", Version: "1.2"},
|
|
Packit Service |
bcdfb1 |
{Name: bk},
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
Modules: []Package{
|
|
Packit Service |
bcdfb1 |
{Name: "openssh-server", Version: "*"}},
|
|
Packit Service |
bcdfb1 |
Groups: []Group{
|
|
Packit Service |
bcdfb1 |
{Name: "anaconda-tools"}},
|
|
Packit Service |
bcdfb1 |
Customizations: &Customizations{
|
|
Packit Service |
bcdfb1 |
Kernel: &KernelCustomization{
|
|
Packit Service |
bcdfb1 |
Name: ck,
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
},
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
Received_packages := bp.GetPackages()
|
|
Packit Service |
bcdfb1 |
// both kernels are included, even if they're the same
|
|
Packit Service |
bcdfb1 |
assert.ElementsMatch(t, []string{"tmux-1.2", bk, "openssh-server", "@anaconda-tools", ck}, Received_packages)
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit Service |
bcdfb1 |
}
|
|
Packit |
63bb0d |
}
|