Blame internal/blueprint/customizations_test.go

Packit 63bb0d
package blueprint
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"github.com/stretchr/testify/assert"
Packit 63bb0d
	"testing"
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 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 63bb0d
	assert.Nil(t, 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
}