Blame internal/blueprint/customizations_test.go

Packit 63bb0d
package blueprint
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"testing"
Packit Service 15f37d
Packit Service 15f37d
	"github.com/stretchr/testify/assert"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
func TestGetHostname(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	var expectedHostname = "Hostname"
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Hostname: &expectedHostname,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retHostname := TestCustomizations.GetHostname()
Packit 63bb0d
	assert.Equal(t, &expectedHostname, retHostname)
Packit 63bb0d
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetKernel(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedKernel := KernelCustomization{
Packit 63bb0d
		Append: "--test",
Packit Service 15f37d
		Name:   "kernel",
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Kernel: &expectedKernel,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retKernel := TestCustomizations.GetKernel()
Packit 63bb0d
Packit 63bb0d
	assert.Equal(t, &expectedKernel, retKernel)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestSSHKey(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedSSHKeys := []SSHKeyCustomization{
Packit 63bb0d
		SSHKeyCustomization{
Packit 63bb0d
			User: "test-user",
Packit 63bb0d
			Key:  "test-key",
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		SSHKey: expectedSSHKeys,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retUser := TestCustomizations.GetUsers()[0].Name
Packit 63bb0d
	retKey := *TestCustomizations.GetUsers()[0].Key
Packit 63bb0d
Packit 63bb0d
	assert.Equal(t, expectedSSHKeys[0].User, retUser)
Packit 63bb0d
	assert.Equal(t, expectedSSHKeys[0].Key, retKey)
Packit 63bb0d
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetUsers(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	Desc := "Test descritpion"
Packit 63bb0d
	Pass := "testpass"
Packit 63bb0d
	Key := "testkey"
Packit 63bb0d
	Home := "Home"
Packit 63bb0d
	Shell := "Shell"
Packit 63bb0d
	Groups := []string{
Packit 63bb0d
		"Group",
Packit 63bb0d
	}
Packit 63bb0d
	UID := 123
Packit 63bb0d
	GID := 321
Packit 63bb0d
Packit 63bb0d
	expectedUsers := []UserCustomization{
Packit 63bb0d
		UserCustomization{
Packit 63bb0d
			Name:        "John",
Packit 63bb0d
			Description: &Desc,
Packit 63bb0d
			Password:    &Pass,
Packit 63bb0d
			Key:         &Key,
Packit 63bb0d
			Home:        &Home,
Packit 63bb0d
			Shell:       &Shell,
Packit 63bb0d
			Groups:      Groups,
Packit 63bb0d
			UID:         &UID,
Packit 63bb0d
			GID:         &GID,
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		User: expectedUsers,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retUsers := TestCustomizations.GetUsers()
Packit 63bb0d
Packit 63bb0d
	assert.ElementsMatch(t, expectedUsers, retUsers)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetGroups(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	GID := 1234
Packit 63bb0d
	expectedGroups := []GroupCustomization{
Packit 63bb0d
		GroupCustomization{
Packit 63bb0d
			Name: "TestGroup",
Packit 63bb0d
			GID:  &GID,
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Group: expectedGroups,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retGroups := TestCustomizations.GetGroups()
Packit 63bb0d
Packit 63bb0d
	assert.ElementsMatch(t, expectedGroups, retGroups)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetTimezoneSettings(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedTimezone := "testZONE"
Packit 63bb0d
	expectedNTPServers := []string{
Packit 63bb0d
		"server",
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	expectedTimezoneCustomization := TimezoneCustomization{
Packit 63bb0d
		Timezone:   &expectedTimezone,
Packit 63bb0d
		NTPServers: expectedNTPServers,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Timezone: &expectedTimezoneCustomization,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retTimezone, retNTPServers := TestCustomizations.GetTimezoneSettings()
Packit 63bb0d
Packit 63bb0d
	assert.Equal(t, expectedTimezone, *retTimezone)
Packit 63bb0d
	assert.Equal(t, expectedNTPServers, retNTPServers)
Packit 63bb0d
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetPrimaryLocale(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedLanguages := []string{
Packit 63bb0d
		"enUS",
Packit 63bb0d
	}
Packit 63bb0d
	expectedKeyboard := "en"
Packit 63bb0d
Packit 63bb0d
	expectedLocaleCustomization := LocaleCustomization{
Packit 63bb0d
		Languages: expectedLanguages,
Packit 63bb0d
		Keyboard:  &expectedKeyboard,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Locale: &expectedLocaleCustomization,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retLanguage, retKeyboard := TestCustomizations.GetPrimaryLocale()
Packit 63bb0d
Packit 63bb0d
	assert.Equal(t, expectedLanguages[0], *retLanguage)
Packit 63bb0d
	assert.Equal(t, expectedKeyboard, *retKeyboard)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetFirewall(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedPorts := []string{"22", "9090"}
Packit 63bb0d
Packit 63bb0d
	expectedServices := FirewallServicesCustomization{
Packit 63bb0d
		Enabled:  []string{"cockpit", "osbuild-composer"},
Packit 63bb0d
		Disabled: []string{"TCP", "httpd"},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	expectedFirewall := FirewallCustomization{
Packit 63bb0d
		Ports:    expectedPorts,
Packit 63bb0d
		Services: &expectedServices,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Firewall: &expectedFirewall,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retFirewall := TestCustomizations.GetFirewall()
Packit 63bb0d
Packit 63bb0d
	assert.ElementsMatch(t, expectedFirewall.Ports, retFirewall.Ports)
Packit 63bb0d
	assert.ElementsMatch(t, expectedFirewall.Services.Enabled, retFirewall.Services.Enabled)
Packit 63bb0d
	assert.ElementsMatch(t, expectedFirewall.Services.Disabled, retFirewall.Services.Disabled)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestGetServices(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	expectedServices := ServicesCustomization{
Packit 63bb0d
		Enabled:  []string{"cockpit", "osbuild-composer"},
Packit 63bb0d
		Disabled: []string{"sshd", "ftp"},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Services: &expectedServices,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retServices := TestCustomizations.GetServices()
Packit 63bb0d
Packit 63bb0d
	assert.ElementsMatch(t, expectedServices.Enabled, retServices.Enabled)
Packit 63bb0d
	assert.ElementsMatch(t, expectedServices.Disabled, retServices.Disabled)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func TestError(t *testing.T) {
Packit 63bb0d
	expectedError := CustomizationError{
Packit 63bb0d
		Message: "test error",
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retError := expectedError.Error()
Packit 63bb0d
Packit 63bb0d
	assert.Equal(t, expectedError.Message, retError)
Packit 63bb0d
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
//This tests calling all the functions on a Blueprint with no Customizations
Packit 63bb0d
func TestNoCustomizationsInBlueprint(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	TestBP := Blueprint{}
Packit 63bb0d
Packit 63bb0d
	assert.Nil(t, TestBP.Customizations.GetHostname())
Packit 63bb0d
	assert.Nil(t, TestBP.Customizations.GetUsers())
Packit 63bb0d
	assert.Nil(t, TestBP.Customizations.GetGroups())
Packit Service 15f37d
	assert.Equal(t, &KernelCustomization{Name: "kernel"}, TestBP.Customizations.GetKernel())
Packit 63bb0d
	assert.Nil(t, TestBP.Customizations.GetFirewall())
Packit 63bb0d
	assert.Nil(t, TestBP.Customizations.GetServices())
Packit 63bb0d
Packit 63bb0d
	nilLanguage, nilKeyboard := TestBP.Customizations.GetPrimaryLocale()
Packit 63bb0d
	assert.Nil(t, nilLanguage)
Packit 63bb0d
	assert.Nil(t, nilKeyboard)
Packit 63bb0d
Packit 63bb0d
	nilTimezone, nilNTPServers := TestBP.Customizations.GetTimezoneSettings()
Packit 63bb0d
	assert.Nil(t, nilTimezone)
Packit 63bb0d
	assert.Nil(t, nilNTPServers)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
//This tests additional scenarios where GetPrimaryLocale() returns nil values
Packit 63bb0d
func TestNilGetPrimaryLocale(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	//Case empty Customization
Packit 63bb0d
	TestCustomizationsEmpty := Customizations{}
Packit 63bb0d
Packit 63bb0d
	retLanguage, retKeyboard := TestCustomizationsEmpty.GetPrimaryLocale()
Packit 63bb0d
Packit 63bb0d
	assert.Nil(t, retLanguage)
Packit 63bb0d
	assert.Nil(t, retKeyboard)
Packit 63bb0d
Packit 63bb0d
	//Case empty Languages
Packit 63bb0d
	expectedKeyboard := "en"
Packit 63bb0d
	expectedLocaleCustomization := LocaleCustomization{
Packit 63bb0d
		Keyboard: &expectedKeyboard,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	TestCustomizations := Customizations{
Packit 63bb0d
		Locale: &expectedLocaleCustomization,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	retLanguage, retKeyboard = TestCustomizations.GetPrimaryLocale()
Packit 63bb0d
Packit 63bb0d
	assert.Nil(t, retLanguage)
Packit 63bb0d
	assert.Equal(t, expectedKeyboard, *retKeyboard)
Packit 63bb0d
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
//This tests additional scenario where GetTimezoneSEtting() returns nil values
Packit 63bb0d
func TestNilGetTimezoneSettings(t *testing.T) {
Packit 63bb0d
Packit 63bb0d
	TestCustomizationsEmpty := Customizations{}
Packit 63bb0d
Packit 63bb0d
	retTimezone, retNTPServers := TestCustomizationsEmpty.GetTimezoneSettings()
Packit 63bb0d
Packit 63bb0d
	assert.Nil(t, retTimezone)
Packit 63bb0d
	assert.Nil(t, retNTPServers)
Packit 63bb0d
}