diff options
author | Manuel Bentele | 2021-05-19 09:01:38 +0200 |
---|---|---|
committer | Manuel Bentele | 2021-05-19 09:01:38 +0200 |
commit | adc19701eafcd18a746a57dc0a610a614e1d80cf (patch) | |
tree | df9f27c6172684909ed1c5ffede2a46243322a8d /src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java | |
parent | Remove needless reference to internal/private Maven repository (diff) | |
parent | Implements XML schema validation for VirtualBox configurations (diff) | |
download | master-sync-shared-adc19701eafcd18a746a57dc0a610a614e1d80cf.tar.gz master-sync-shared-adc19701eafcd18a746a57dc0a610a614e1d80cf.tar.xz master-sync-shared-adc19701eafcd18a746a57dc0a610a614e1d80cf.zip |
Merge branch 'feature/qemu-integration'
Diffstat (limited to 'src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java')
-rw-r--r-- | src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java new file mode 100644 index 0000000..597fffb --- /dev/null +++ b/src/test/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBoxTest.java @@ -0,0 +1,143 @@ +package org.openslx.virtualization.configuration; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.params.provider.Arguments.arguments; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Stream; + +import org.apache.log4j.Level; +import org.apache.log4j.LogManager; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import org.openslx.virtualization.Version; +import org.openslx.vm.disk.DiskImage.ImageFormat; + +public class VirtualizationConfigurationVirtualBoxTest +{ + @BeforeAll + public static void setUp() + { + // disable logging with log4j + LogManager.getRootLogger().setLevel( Level.OFF ); + } + + @ParameterizedTest + @DisplayName( "Test version from VM configuration" ) + @MethodSource( "configAndVersionProvider" ) + public void testVirtualizationConfigurationVirtualBoxGetConfigurationVersion( String name, String configFileName, + Version configVersion ) + throws IOException, VirtualizationConfigurationException + { + final File configFile = VirtualizationConfigurationTestResources.getVirtualBoxXmlFile( configFileName ); + final VirtualizationConfigurationVirtualBox vmConfig = new VirtualizationConfigurationVirtualBox( null, + configFile ); + + assertEquals( configVersion, vmConfig.getConfigurationVersion() ); + } + + @ParameterizedTest + @DisplayName( "Test display name from VM configuration" ) + @MethodSource( "configAndVersionProvider" ) + public void testVirtualizationConfigurationVirtualBoxGetDisplayName( String name, String configFileName, + Version configVersion ) + throws IOException, VirtualizationConfigurationException + { + final File configFile = VirtualizationConfigurationTestResources.getVirtualBoxXmlFile( configFileName ); + final VirtualizationConfigurationVirtualBox vmConfig = new VirtualizationConfigurationVirtualBox( null, + configFile ); + + final String displayName = vmConfig.getDisplayName(); + + assertEquals( VirtualizationConfigurationVirtualBoxTest.getVmName( name, configVersion ), displayName ); + } + + @ParameterizedTest + @DisplayName( "Test machine snapshot state from VM configuration" ) + @MethodSource( "configAndVersionProvider" ) + public void testVirtualizationConfigurationVirtualBoxIsMachineSnapshot( String name, String configFileName, + Version configVersion ) + throws IOException, VirtualizationConfigurationException + { + final File configFile = VirtualizationConfigurationTestResources.getVirtualBoxXmlFile( configFileName ); + final VirtualizationConfigurationVirtualBox vmConfig = new VirtualizationConfigurationVirtualBox( null, + configFile ); + + final boolean isVmSnapshot = vmConfig.isMachineSnapshot(); + + assertFalse( isVmSnapshot ); + } + + @ParameterizedTest + @DisplayName( "Test supported image formats from VM configuration" ) + @MethodSource( "configAndVersionProvider" ) + public void testVirtualizationConfigurationVirtualBoxGetSupportedImageFormats( String name, String configFileName, + Version configVersion ) + throws IOException, VirtualizationConfigurationException + { + final File configFile = VirtualizationConfigurationTestResources.getVirtualBoxXmlFile( configFileName ); + final VirtualizationConfigurationVirtualBox vmConfig = new VirtualizationConfigurationVirtualBox( null, + configFile ); + + final List<ImageFormat> supportedImageFormats = vmConfig.getVirtualizer().getSupportedImageFormats(); + + assertNotNull( supportedImageFormats ); + assertEquals( 1, supportedImageFormats.size() ); + assertTrue( supportedImageFormats.containsAll( Arrays.asList( ImageFormat.VDI ) ) ); + } + + @ParameterizedTest + @DisplayName( "Test output of HDDs from VM configuration" ) + @MethodSource( "configAndVersionProvider" ) + public void testVirtualizationConfigurationVirtualBoxGetHdds( String name, String configFileName, + Version configVersion ) + throws IOException, VirtualizationConfigurationException + { + final File configFile = VirtualizationConfigurationTestResources.getVirtualBoxXmlFile( configFileName ); + final VirtualizationConfigurationVirtualBox vmConfig = new VirtualizationConfigurationVirtualBox( null, + configFile ); + + final List<VirtualizationConfiguration.HardDisk> hdds = vmConfig.getHdds(); + + final String imageFileName = VirtualizationConfigurationVirtualBoxTest.getVmName( name, configVersion ) + ".vdi"; + + assertNotNull( hdds ); + assertEquals( 1, hdds.size() ); + assertEquals( imageFileName, hdds.get( 0 ).diskImage ); + } + + static String getVmName( String name, Version version ) + { + return name + "_" + version.toString().replace( '.', '-' ); + } + + static Stream<Arguments> configAndVersionProvider() + { + return Stream.of( + arguments( "ubuntu", "virtualbox_default-ubuntu_v1-15.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "15" ) ) ), + arguments( "ubuntu", "virtualbox_default-ubuntu_v1-16.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "16" ) ) ), + arguments( "ubuntu", "virtualbox_default-ubuntu_v1-17.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "17" ) ) ), + arguments( "ubuntu", "virtualbox_default-ubuntu_v1-18.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "18" ) ) ), + arguments( "windows-7", "virtualbox_default-windows-7_v1-15.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "15" ) ) ), + arguments( "windows-7", "virtualbox_default-windows-7_v1-16.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "16" ) ) ), + arguments( "windows-7", "virtualbox_default-windows-7_v1-17.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "17" ) ) ), + arguments( "windows-7", "virtualbox_default-windows-7_v1-18.vbox", + new Version( Short.valueOf( "1" ), Short.valueOf( "18" ) ) ) ); + } +} |