From 966cbd842fac0996742f33c85c60221c9e461930 Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Fri, 23 Apr 2021 16:44:18 +0200 Subject: Refactors and abstracts version information in config logic and disk image --- .../org/openslx/virtualization/VersionTest.java | 98 ++++++++++++++++++++++ .../VirtualizationConfigurationQemuTest.java | 35 +------- .../org/openslx/vm/disk/DiskImageQcow2Test.java | 27 +++--- .../java/org/openslx/vm/disk/DiskImageVdiTest.java | 7 +- .../org/openslx/vm/disk/DiskImageVmdkTest.java | 13 +-- 5 files changed, 126 insertions(+), 54 deletions(-) create mode 100644 src/test/java/org/openslx/virtualization/VersionTest.java (limited to 'src/test') diff --git a/src/test/java/org/openslx/virtualization/VersionTest.java b/src/test/java/org/openslx/virtualization/VersionTest.java new file mode 100644 index 0000000..c1ad21b --- /dev/null +++ b/src/test/java/org/openslx/virtualization/VersionTest.java @@ -0,0 +1,98 @@ +package org.openslx.virtualization; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class VersionTest +{ + @Test + @DisplayName( "Test that version is supported in list of versions" ) + public void testVersionIsSupported() + { + final Version version = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + final List versions = Collections.unmodifiableList( Arrays.asList( + new Version( Short.valueOf( "2" ) ), + new Version( Short.valueOf( "4" ), Short.valueOf( "3" ) ), + new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ), + new Version( Short.valueOf( "1" ), Short.valueOf( "3" ) ) ) ); + + assertTrue( version.isSupported( versions ) ); + } + + @Test + @DisplayName( "Test that version is not supported in list of versions" ) + public void testVersionIsNotSupported() + { + final Version version = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + final List versions = Collections.unmodifiableList( Arrays.asList( + new Version( Short.valueOf( "2" ) ), + new Version( Short.valueOf( "4" ), Short.valueOf( "3" ) ), + new Version( Short.valueOf( "6" ), Short.valueOf( "9" ) ), + new Version( Short.valueOf( "1" ), Short.valueOf( "3" ) ) ) ); + + assertFalse( version.isSupported( versions ) ); + } + + @Test + @DisplayName( "Test that versions are equal" ) + public void testVersionEquals() + { + final Version versionOne = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + final Version versionTwo = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + + assertTrue( versionOne.equals( versionTwo ) ); + assertTrue( versionTwo.equals( versionOne ) ); + } + + @Test + @DisplayName( "Test that versions are not equal" ) + public void testVersionNotEquals() + { + final Version versionOne = new Version( Short.valueOf( "3" ), Short.valueOf( "2" ) ); + final Version versionTwo = new Version( Short.valueOf( "3" ), Short.valueOf( "3" ) ); + + assertFalse( versionOne.equals( versionTwo ) ); + assertFalse( versionTwo.equals( versionOne ) ); + } + + @Test + @DisplayName( "Test that version is smaller than" ) + public void testVersionSmallerThan() + { + final Version versionOne = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + final Version versionTwo = new Version( Short.valueOf( "3" ), Short.valueOf( "2" ) ); + + assertEquals( -1, versionOne.compareTo( versionTwo ) ); + assertEquals( 1, versionTwo.compareTo( versionOne ) ); + } + + @Test + @DisplayName( "Test that version is larger than" ) + public void testVersionLargerThan() + { + final Version versionOne = new Version( Short.valueOf( "3" ), Short.valueOf( "3" ) ); + final Version versionTwo = new Version( Short.valueOf( "3" ), Short.valueOf( "2" ) ); + + assertEquals( 1, versionOne.compareTo( versionTwo ) ); + assertEquals( -1, versionTwo.compareTo( versionOne ) ); + } + + @Test + @DisplayName( "Test that versions are equal (compareTo)" ) + public void testVersionEqualCompareTo() + { + final Version versionOne = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + final Version versionTwo = new Version( Short.valueOf( "2" ), Short.valueOf( "3" ) ); + + assertEquals( 0, versionOne.compareTo( versionTwo ) ); + assertEquals( 0, versionTwo.compareTo( versionOne ) ); + } +} diff --git a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java index fe82a53..0412002 100644 --- a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java +++ b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemuTest.java @@ -107,7 +107,7 @@ public class VirtualizationConfigurationQemuTest final Domain vmLibvirtDomainConfig = VirtualizationConfigurationQemuTest .getPrivateDomainFromQemuMetaData( vmConfig ); - final List supportedImageFormats = vmConfig.getSupportedImageFormats(); + final List supportedImageFormats = vmConfig.getVirtualizer().getSupportedImageFormats(); assertNotNull( supportedImageFormats ); assertEquals( 3, supportedImageFormats.size() ); @@ -150,9 +150,7 @@ public class VirtualizationConfigurationQemuTest final Domain vmLibvirtDomainConfig = VirtualizationConfigurationQemuTest .getPrivateDomainFromQemuMetaData( vmConfig ); - final int numberOfDeletedElements = 1; - - final String unfilteredXmlConfig = new String( vmConfig.getDefinitionArray(), StandardCharsets.UTF_8 ); + final String unfilteredXmlConfig = new String( vmConfig.getConfigurationAsByteArray(), StandardCharsets.UTF_8 ); final String originalXmlConfig = FileUtils.readFileToString( file, StandardCharsets.UTF_8 ); assertNotNull( unfilteredXmlConfig ); @@ -160,34 +158,7 @@ public class VirtualizationConfigurationQemuTest final int lengthUnfilteredXmlConfig = unfilteredXmlConfig.split( System.lineSeparator() ).length; final int lengthOriginalXmlConfig = originalXmlConfig.split( System.lineSeparator() ).length; - assertEquals( lengthOriginalXmlConfig, lengthUnfilteredXmlConfig + numberOfDeletedElements ); - - assertDoesNotThrow( () -> vmLibvirtDomainConfig.validateXml() ); - } - - @Test - @DisplayName( "Test output of filtered VM configuration" ) - public void testQemuMetaDataGetFilteredDefinitionArray() - throws VirtualizationConfigurationException, IOException, NoSuchFieldException, SecurityException, - IllegalArgumentException, IllegalAccessException - { - File file = LibvirtXmlTestResources.getLibvirtXmlFile( "qemu-kvm_default-archlinux-vm.xml" ); - VirtualizationConfigurationQemu vmConfig = new VirtualizationConfigurationQemu( null, file ); - - final Domain vmLibvirtDomainConfig = VirtualizationConfigurationQemuTest - .getPrivateDomainFromQemuMetaData( vmConfig ); - - final int numberOfDeletedElements = 2; - - final String filteredXmlConfig = new String( vmConfig.getFilteredDefinitionArray(), StandardCharsets.UTF_8 ); - final String originalXmlConfig = FileUtils.readFileToString( file, StandardCharsets.UTF_8 ); - - assertNotNull( filteredXmlConfig ); - - final int lengthFilteredXmlConfig = filteredXmlConfig.split( System.lineSeparator() ).length; - final int lengthOriginalXmlConfig = originalXmlConfig.split( System.lineSeparator() ).length; - - assertEquals( lengthOriginalXmlConfig, lengthFilteredXmlConfig + numberOfDeletedElements ); + assertEquals( lengthOriginalXmlConfig, lengthUnfilteredXmlConfig ); assertDoesNotThrow( () -> vmLibvirtDomainConfig.validateXml() ); } diff --git a/src/test/java/org/openslx/vm/disk/DiskImageQcow2Test.java b/src/test/java/org/openslx/vm/disk/DiskImageQcow2Test.java index 530cd60..7804d7d 100644 --- a/src/test/java/org/openslx/vm/disk/DiskImageQcow2Test.java +++ b/src/test/java/org/openslx/vm/disk/DiskImageQcow2Test.java @@ -7,6 +7,7 @@ import java.io.IOException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.openslx.virtualization.Version; import org.openslx.vm.disk.DiskImage.ImageFormat; public class DiskImageQcow2Test @@ -16,7 +17,7 @@ public class DiskImageQcow2Test public void testQcow2DiskImage() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image-default.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -32,7 +33,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-16384_cp-on_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -48,7 +49,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-16384_cp-on_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -64,7 +65,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-16384_cp-off_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -80,7 +81,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-16384_cp-off_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -96,7 +97,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-65536_cp-on_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -112,7 +113,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-65536_cp-on_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -128,7 +129,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-65536_cp-off_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -144,7 +145,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-65536_cp-off_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -160,7 +161,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-2097152_cp-on_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -176,7 +177,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-2097152_cp-on_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -192,7 +193,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-2097152_cp-off_l2-on.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -208,7 +209,7 @@ public class DiskImageQcow2Test { final DiskImage image = DiskImage .newInstance( DiskImageTestResources.getDiskFile( "image_cs-2097152_cp-off_l2-off.qcow2" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); assertEquals( ImageFormat.QCOW2.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); diff --git a/src/test/java/org/openslx/vm/disk/DiskImageVdiTest.java b/src/test/java/org/openslx/vm/disk/DiskImageVdiTest.java index 492c6aa..85112cc 100644 --- a/src/test/java/org/openslx/vm/disk/DiskImageVdiTest.java +++ b/src/test/java/org/openslx/vm/disk/DiskImageVdiTest.java @@ -7,6 +7,7 @@ import java.io.IOException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.openslx.virtualization.Version; import org.openslx.vm.disk.DiskImage.ImageFormat; public class DiskImageVdiTest @@ -16,7 +17,7 @@ public class DiskImageVdiTest public void testVdiDiskImage() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image-default.vdi" ) ); - final int imageVersion = DiskImageUtils.versionFromMajorMinor( Short.valueOf( "1" ), Short.valueOf( "1" ) ); + final Version imageVersion = new Version( Short.valueOf( "1" ), Short.valueOf( "1" ) ); assertEquals( ImageFormat.VDI.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -25,13 +26,13 @@ public class DiskImageVdiTest assertEquals( imageVersion, image.getVersion() ); assertNotNull( image.getDescription() ); } - + @Test @DisplayName( "Test detection of VDI disk image snapshot" ) public void testVdiDiskImageSnapshot() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image-default_snapshot.vdi" ) ); - final int imageVersion = DiskImageUtils.versionFromMajorMinor( Short.valueOf( "1" ), Short.valueOf( "1" ) ); + final Version imageVersion = new Version( Short.valueOf( "1" ), Short.valueOf( "1" ) ); assertEquals( ImageFormat.VDI.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); diff --git a/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java b/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java index 00cf561..4c8be82 100644 --- a/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java +++ b/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java @@ -8,6 +8,7 @@ import java.io.IOException; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.openslx.virtualization.Version; import org.openslx.vm.disk.DiskImage.ImageFormat; public class DiskImageVmdkTest @@ -17,8 +18,8 @@ public class DiskImageVmdkTest public void testVmdkDiskImage() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image-default.vmdk" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "1" ) ); - final int imageHwVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "18" ) ); + final Version imageVersion = new Version( Short.valueOf( "1" ) ); + final Version imageHwVersion = new Version( Short.valueOf( "18" ) ); assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -37,8 +38,8 @@ public class DiskImageVmdkTest public void testVmdkDiskImageType0() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t0.vmdk" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "1" ) ); - final int imageHwVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "18" ) ); + final Version imageVersion = new Version( Short.valueOf( "1" ) ); + final Version imageHwVersion = new Version( Short.valueOf( "18" ) ); assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); @@ -93,8 +94,8 @@ public class DiskImageVmdkTest public void testVmdkDiskImageType5() throws DiskImageException, IOException { final DiskImage image = DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t5.vmdk" ) ); - final int imageVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "3" ) ); - final int imageHwVersion = DiskImageUtils.versionFromMajor( Short.valueOf( "18" ) ); + final Version imageVersion = new Version( Short.valueOf( "3" ) ); + final Version imageHwVersion = new Version( Short.valueOf( "18" ) ); assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); assertEquals( true, image.isStandalone() ); -- cgit v1.2.3-55-g7522