Skip to content

Commit

Permalink
refactor: optimize duplicate test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
Tinyblargon committed Jun 21, 2024
1 parent 3f36f0e commit 88d683e
Showing 1 changed file with 36 additions and 61 deletions.
97 changes: 36 additions & 61 deletions proxmox/config_qemu_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,38 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
currentConfig: ConfigQemu{Agent: &QemuGuestAgent{}},
output: map[string]interface{}{"agent": "0"}}}},
{category: `CloudInit`, // Create CloudInit no need for update as update and create behave the same. will be changed in the future
create: []test{
createUpdate: []test{
{name: `CloudInit=nil`,
config: &ConfigQemu{},
output: map[string]interface{}{}},
{name: `CloudInit DNS NameServers`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("9.9.9.9")}}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("8.8.8.8")}}}},
output: map[string]interface{}{"nameserver": "9.9.9.9"}},
{name: `CloudInit DNS SearchDomain`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.com")}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.org")}}},
output: map[string]interface{}{"searchdomain": "example.com"}},
{name: `CloudInit PublicSSHkeys`,
config: &ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer(test_data_qemu.PublicKey_Decoded_Input())}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer([]crypto.PublicKey{"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+0roY6F4yzq5RfA6V2+8gOgKlLOg9RtB1uGyTYvOMU6wxWUXVZP44+XozNxXZK4/MfPjCZLomqv78RlAedIQbqU8l6J9fdrrsRt6NknusE36UqD4HGPLX3Wn7svjSyNRfrjlk5BrBQ26rglLGlRSeD/xWvQ+5jLzzdo5NczszGkE9IQtrmKye7Gq7NQeGkHb1h0yGH7nMQ48WJ6ZKv1JG+GzFb8n4Qoei3zK9zpWxF+0AzF5u/zzCRZ4yU7FtfHgGRBDPze8oe3nVe+aO8MBH2dy8G/BRMXBdjWrSkaT9ZyeaT0k9SMjsCr9DQzUtVSOeqZZokpNU1dVglI+HU0vN test-key"})}},
output: map[string]interface{}{"sshkeys": test_data_qemu.PublicKey_Encoded_Output()}},
{name: `CloudInit UpgradePackages`,
config: &ConfigQemu{CloudInit: &CloudInit{UpgradePackages: util.Pointer(false)}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{UpgradePackages: util.Pointer(true)}},
output: map[string]interface{}{"ciupgrade": 0}},
{name: `CloudInit Username`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("root")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("admin")}},
output: map[string]interface{}{"ciuser": "root"}},
{name: `CloudInit UserPassword`,
config: &ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Enter123!")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Abc123!")}},
output: map[string]interface{}{"cipassword": "Enter123!"}},
},
create: []test{
{name: `CloudInit Full`,
config: &ConfigQemu{CloudInit: &CloudInit{
Custom: &CloudInitCustom{
Expand Down Expand Up @@ -248,17 +276,10 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
Storage: "local-zfs",
FilePath: "ci-meta.yml"}}}},
output: map[string]interface{}{"cicustom": "meta=local-zfs:ci-meta.yml"}},
{name: `CloudInit DNS NameServers`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("9.9.9.9")}}}},
output: map[string]interface{}{"nameserver": "9.9.9.9"}},
{name: `CloudInit DNS NameServers empty`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{}}}},
output: map[string]interface{}{}},
{name: `CloudInit DNS SearchDomain`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.com")}}},
output: map[string]interface{}{"searchdomain": "example.com"}},
{name: `CloudInit DNS SearchDomain empty`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("")}}},
output: map[string]interface{}{}},
Expand All @@ -273,28 +294,13 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
output: map[string]interface{}{
"ipconfig1": "ip=dhcp,ip6=dhcp",
"ipconfig30": "ip=10.20.4.7/22"}},
{name: `CloudInit PublicSSHkeys`,
config: &ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer(test_data_qemu.PublicKey_Decoded_Input())}},
output: map[string]interface{}{"sshkeys": test_data_qemu.PublicKey_Encoded_Output()}},
{name: `CloudInit PublicSSHkeys empty`,
config: &ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer([]crypto.PublicKey{})}},
output: map[string]interface{}{}},
{name: `CloudInit UpgradePackages`,
config: &ConfigQemu{CloudInit: &CloudInit{UpgradePackages: util.Pointer(false)}},
output: map[string]interface{}{"ciupgrade": 0}},
{name: `CloudInit UserPassword`,
config: &ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Enter123!")}},
output: map[string]interface{}{"cipassword": "Enter123!"}},
{name: `CloudInit Username`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("root")}},
output: map[string]interface{}{"ciuser": "root"}},
{name: `CloudInit Username empty`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("")}},
output: map[string]interface{}{}}},
update: []test{
{name: `CloudInit=nil`,
config: &ConfigQemu{},
output: map[string]interface{}{}},
{name: `CloudInit Custom clear`,
config: &ConfigQemu{CloudInit: &CloudInit{Custom: &CloudInitCustom{
Meta: &CloudInitSnippet{},
Expand Down Expand Up @@ -331,22 +337,12 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
FilePath: "new.yml"}}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{Custom: cloudInitCustom()}},
output: map[string]interface{}{"cicustom": "meta=newStorage:new.yml,network=local-lvm:ci-network.yml,user=folder:ci-user.yml,vendor=local:snippets/ci-custom.yml"}},
{name: `CloudInit DNS NameServers`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("9.9.9.9")}}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("8.8.8.8")}}}},
output: map[string]interface{}{"nameserver": "9.9.9.9"}},
{name: `CloudInit DNS NameServers empty`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{}}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{
NameServers: &[]netip.Addr{parseIP("8.8.8.8")}}}},
output: map[string]interface{}{"delete": "nameserver"}},
{name: `CloudInit DNS SearchDomain`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.com")}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.org")}}},
output: map[string]interface{}{"searchdomain": "example.com"}},
{name: `CloudInit DNS SearchDomain empty`,
config: &ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("")}}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{DNS: &GuestDNS{SearchDomain: util.Pointer("example.org")}}},
Expand Down Expand Up @@ -566,26 +562,10 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
"ipconfig12": "ip=192.168.56.30/24,gw=192.168.56.1,ip6=2001:0db8:abcd::/48",
"ipconfig13": "ip=192.168.56.30/24,gw=192.168.56.1,ip6=auto",
"delete": "ipconfig14"}},
{name: `CloudInit PublicSSHkeys`,
config: &ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer(test_data_qemu.PublicKey_Decoded_Input())}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer([]crypto.PublicKey{"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+0roY6F4yzq5RfA6V2+8gOgKlLOg9RtB1uGyTYvOMU6wxWUXVZP44+XozNxXZK4/MfPjCZLomqv78RlAedIQbqU8l6J9fdrrsRt6NknusE36UqD4HGPLX3Wn7svjSyNRfrjlk5BrBQ26rglLGlRSeD/xWvQ+5jLzzdo5NczszGkE9IQtrmKye7Gq7NQeGkHb1h0yGH7nMQ48WJ6ZKv1JG+GzFb8n4Qoei3zK9zpWxF+0AzF5u/zzCRZ4yU7FtfHgGRBDPze8oe3nVe+aO8MBH2dy8G/BRMXBdjWrSkaT9ZyeaT0k9SMjsCr9DQzUtVSOeqZZokpNU1dVglI+HU0vN test-key"})}},
output: map[string]interface{}{"sshkeys": test_data_qemu.PublicKey_Encoded_Output()}},
{name: `CloudInit PublicSSHkeys empty`,
config: &ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer([]crypto.PublicKey{})}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{PublicSSHkeys: util.Pointer([]crypto.PublicKey{"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+0roY6F4yzq5RfA6V2+8gOgKlLOg9RtB1uGyTYvOMU6wxWUXVZP44+XozNxXZK4/MfPjCZLomqv78RlAedIQbqU8l6J9fdrrsRt6NknusE36UqD4HGPLX3Wn7svjSyNRfrjlk5BrBQ26rglLGlRSeD/xWvQ+5jLzzdo5NczszGkE9IQtrmKye7Gq7NQeGkHb1h0yGH7nMQ48WJ6ZKv1JG+GzFb8n4Qoei3zK9zpWxF+0AzF5u/zzCRZ4yU7FtfHgGRBDPze8oe3nVe+aO8MBH2dy8G/BRMXBdjWrSkaT9ZyeaT0k9SMjsCr9DQzUtVSOeqZZokpNU1dVglI+HU0vN test-key"})}},
output: map[string]interface{}{"delete": "sshkeys"}},
{name: `CloudInit UpgradePackages`,
config: &ConfigQemu{CloudInit: &CloudInit{UpgradePackages: util.Pointer(false)}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{UpgradePackages: util.Pointer(true)}},
output: map[string]interface{}{"ciupgrade": 0}},
{name: `CloudInit UserPassword`,
config: &ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Enter123!")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Abc123!")}},
output: map[string]interface{}{"cipassword": "Enter123!"}},
{name: `CloudInit Username`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("root")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("admin")}},
output: map[string]interface{}{"ciuser": "root"}},
{name: `CloudInit Username empty`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("admin")}},
Expand Down Expand Up @@ -3147,20 +3127,15 @@ func Test_ConfigQemu_mapToApiValues(t *testing.T) {
config: &ConfigQemu{Iso: &IsoFile{Storage: "NewStorage", File: "file.iso"}},
output: map[string]interface{}{"ide2": "NewStorage:iso/file.iso,media=cdrom"}}}},
{category: `Tags`,
create: []test{
createUpdate: []test{
{name: `Tags Empty`,
config: &ConfigQemu{Tags: util.Pointer([]Tag{})},
output: map[string]interface{}{"tags": string("")}},
currentConfig: ConfigQemu{Tags: util.Pointer([]Tag{"tag5", "tag6"})},
config: &ConfigQemu{Tags: util.Pointer([]Tag{})},
output: map[string]interface{}{"tags": string("")}},
{name: `Tags Full`,
config: &ConfigQemu{Tags: util.Pointer([]Tag{"tag1", "tag2"})},
output: map[string]interface{}{"tags": string("tag1;tag2")}}},
update: []test{
{name: `Update Tags Empty`,
config: &ConfigQemu{Tags: util.Pointer([]Tag{})},
output: map[string]interface{}{"tags": string("")}},
{name: `Update Tags Full`,
config: &ConfigQemu{Tags: util.Pointer([]Tag{"tag1", "tag2"})},
output: map[string]interface{}{"tags": string("tag1;tag2")}}}},
currentConfig: ConfigQemu{Tags: util.Pointer([]Tag{"tag5", "tag6"})},
config: &ConfigQemu{Tags: util.Pointer([]Tag{"tag1", "tag2"})},
output: map[string]interface{}{"tags": string("tag1;tag2")}}}},
{category: `TPM`,
create: []test{
{name: `TPM`,
Expand Down

0 comments on commit 88d683e

Please sign in to comment.