diff options
author | Manuel Bentele | 2021-02-25 15:00:38 +0100 |
---|---|---|
committer | Manuel Bentele | 2021-03-10 15:05:56 +0100 |
commit | be40e979e03e41ddcd831d9c330902f76908ca64 (patch) | |
tree | 0b5d66d2e01bfb7b96c76170db788b5f36fd8b2d /src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java | |
parent | [vmware] Stop creating 'null.present = "TRUE"' entries (diff) | |
download | master-sync-shared-be40e979e03e41ddcd831d9c330902f76908ca64.tar.gz master-sync-shared-be40e979e03e41ddcd831d9c330902f76908ca64.tar.xz master-sync-shared-be40e979e03e41ddcd831d9c330902f76908ca64.zip |
Refactor disk image representation and add unit tests
Diffstat (limited to 'src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java')
-rw-r--r-- | src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java b/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java new file mode 100644 index 0000000..00cf561 --- /dev/null +++ b/src/test/java/org/openslx/vm/disk/DiskImageVmdkTest.java @@ -0,0 +1,110 @@ +package org.openslx.vm.disk; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +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.vm.disk.DiskImage.ImageFormat; + +public class DiskImageVmdkTest +{ + @Test + @DisplayName( "Test detection of default VMDK disk image" ) + 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" ) ); + + assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); + assertEquals( true, image.isStandalone() ); + assertEquals( false, image.isSnapshot() ); + assertEquals( false, image.isCompressed() ); + assertEquals( imageVersion, image.getVersion() ); + assertNull( image.getDescription() ); + + // test special features of the VMDK disk image format + final DiskImageVmdk vmdkImage = DiskImageVmdk.class.cast( image ); + assertEquals( imageHwVersion, vmdkImage.getHwVersion() ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 0: single growable virtual disk)" ) + 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" ) ); + + assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); + assertEquals( true, image.isStandalone() ); + assertEquals( false, image.isSnapshot() ); + assertEquals( false, image.isCompressed() ); + assertEquals( imageVersion, image.getVersion() ); + assertNull( image.getDescription() ); + + // test special features of the VMDK disk image format + final DiskImageVmdk vmdkImage = DiskImageVmdk.class.cast( image ); + assertEquals( imageHwVersion, vmdkImage.getHwVersion() ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 1: growable virtual disk split into multiple files)" ) + public void testVmdkDiskImageType1() throws DiskImageException, IOException + { + Assertions.assertThrows( DiskImageException.class, () -> { + DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t1.vmdk" ) ); + } ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 2: preallocated virtual disk)" ) + public void testVmdkDiskImageType2() throws DiskImageException, IOException + { + Assertions.assertThrows( DiskImageException.class, () -> { + DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t2.vmdk" ) ); + } ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 3: preallocated virtual disk split into multiple files)" ) + public void testVmdkDiskImageType3() throws DiskImageException, IOException + { + Assertions.assertThrows( DiskImageException.class, () -> { + DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t3.vmdk" ) ); + } ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 4: preallocated ESX-type virtual disk)" ) + public void testVmdkDiskImageType4() throws DiskImageException, IOException + { + Assertions.assertThrows( DiskImageException.class, () -> { + DiskImage.newInstance( DiskImageTestResources.getDiskFile( "image_t4.vmdk" ) ); + } ); + } + + @Test + @DisplayName( "Test detection of VMDK disk image (type 5: compressed disk optimized for streaming)" ) + 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" ) ); + + assertEquals( ImageFormat.VMDK.toString(), image.getFormat().toString() ); + assertEquals( true, image.isStandalone() ); + assertEquals( false, image.isSnapshot() ); + assertEquals( true, image.isCompressed() ); + assertEquals( imageVersion, image.getVersion() ); + assertNull( image.getDescription() ); + + // test special features of the VMDK disk image format + final DiskImageVmdk vmdkImage = DiskImageVmdk.class.cast( image ); + assertEquals( imageHwVersion, vmdkImage.getHwVersion() ); + } +} |