diff options
author | Manuel Bentele | 2022-02-04 12:19:44 +0100 |
---|---|---|
committer | Manuel Bentele | 2022-02-04 12:19:44 +0100 |
commit | 255c829b598a7a3151489e7121c56b219e530777 (patch) | |
tree | 2bd704054b6b3663b3bd9abbcc4604dace7da176 /src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java | |
parent | Fix resource path for virtualizer config tests on Windows platforms (diff) | |
download | master-sync-shared-255c829b598a7a3151489e7121c56b219e530777.tar.gz master-sync-shared-255c829b598a7a3151489e7121c56b219e530777.tar.xz master-sync-shared-255c829b598a7a3151489e7121c56b219e530777.zip |
Force Unix line endings for Libvirt XML files (even on Windows platforms)
Diffstat (limited to 'src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java')
-rw-r--r-- | src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java | 71 |
1 files changed, 47 insertions, 24 deletions
diff --git a/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java b/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java index 1159d74..4f82097 100644 --- a/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java +++ b/src/test/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicTestUtils.java @@ -1,5 +1,6 @@ package org.openslx.virtualization.configuration.logic; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; import java.io.BufferedReader; @@ -7,6 +8,7 @@ import java.io.File; import java.io.IOException; import java.io.StringReader; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -17,6 +19,7 @@ import java.util.stream.Collectors; import org.apache.commons.io.FileUtils; import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.virtualization.configuration.VirtualizationConfiguration; +import org.xmlunit.assertj.XmlAssert; public class ConfigurationLogicTestUtils { @@ -68,23 +71,9 @@ public class ConfigurationLogicTestUtils return content; } - public static boolean isContentEqual( String expectedContent, String actualContent ) + public static void assertXmlEqual( String expectedXml, String actualXml ) throws AssertionError { - final BufferedReader bfrContent1 = new BufferedReader( new StringReader( expectedContent ) ); - final BufferedReader bfrContent2 = new BufferedReader( new StringReader( actualContent ) ); - final List<String> linesContent1 = bfrContent1.lines().collect( Collectors.toList() ); - final List<String> linesContent2 = bfrContent2.lines().collect( Collectors.toList() ); - - Collections.sort( linesContent1 ); - Collections.sort( linesContent2 ); - - boolean ret = linesContent1.equals( linesContent2 ); - if ( !ret ) { - System.out.println( "----- UNEXPECTED OUTPUT: -------------\n" ); - System.out.println( actualContent ); - System.out.println( "--------------------------------------\n" ); - } - return ret; + XmlAssert.assertThat( expectedXml ).and( actualXml ).ignoreComments().areIdentical(); } public static String removeSourceFilePaths( String content ) @@ -105,21 +94,55 @@ public class ConfigurationLogicTestUtils return matcherUuidContent.replaceAll( "" ); } - public static boolean isLibvirtContentEqual( String content1, String content2 ) + public static void assertXmlLibvirtEqual( String expectedXml, String actualXml ) throws AssertionError { // replace all source file paths with the empty String - final String filteredContent1 = ConfigurationLogicTestUtils.removeSourceFilePaths( content1 ); - final String filteredContent2 = ConfigurationLogicTestUtils.removeSourceFilePaths( content2 ); + final String filteredXml1 = ConfigurationLogicTestUtils.removeSourceFilePaths( expectedXml ); + final String filteredXml2 = ConfigurationLogicTestUtils.removeSourceFilePaths( actualXml ); - return ConfigurationLogicTestUtils.isContentEqual( filteredContent1, filteredContent2 ); + ConfigurationLogicTestUtils.assertXmlEqual( filteredXml1, filteredXml2 ); } - public static boolean isVirtualBoxContentEqual( String content1, String content2 ) + public static void assertXmlVirtualBoxEqual( String expectedXml, String actualXml ) throws AssertionError { // replace all UUIDs with the empty String - final String filteredContent1 = ConfigurationLogicTestUtils.removeUuid( content1 ); - final String filteredContent2 = ConfigurationLogicTestUtils.removeUuid( content2 ); + final String filteredXml1 = ConfigurationLogicTestUtils.removeUuid( expectedXml ); + final String filteredXml2 = ConfigurationLogicTestUtils.removeUuid( actualXml ); + + ConfigurationLogicTestUtils.assertXmlEqual( filteredXml1, filteredXml2 ); + } + + public static void assertVmxVmwareEqual( String expectedVmx, String actualVmx ) throws AssertionError + { + final BufferedReader bfrVmx1 = new BufferedReader( new StringReader( expectedVmx ) ); + final BufferedReader bfrVmx2 = new BufferedReader( new StringReader( actualVmx ) ); + final List<String> linesVmx1 = bfrVmx1.lines().collect( Collectors.toList() ); + final List<String> linesVmx2 = bfrVmx2.lines().collect( Collectors.toList() ); + + // check output size first + if ( linesVmx1.size() != linesVmx2.size() ) { + // create list of items that are expected but missing in the actual output + final List<String> missingItems; + final String missingItemsDesc; + + if ( linesVmx1.size() > linesVmx2.size() ) { + missingItemsDesc = "The following items are expected but missing in the actual output"; + missingItems = new ArrayList<String>( linesVmx1 ); + missingItems.removeAll( linesVmx2 ); + } else { + missingItemsDesc = "The following items are not expected but occuring in the actual output"; + missingItems = new ArrayList<String>( linesVmx2 ); + missingItems.removeAll( linesVmx1 ); + } + + throw new AssertionError( String.format( + "VMX output size is not satisfied: Expected %d lines, but output has %d lines!\n" + + "%s:\n" + + "%s", + linesVmx1.size(), linesVmx2.size(), missingItemsDesc, missingItems ) ); + } - return ConfigurationLogicTestUtils.isContentEqual( filteredContent1, filteredContent2 ); + // check the content of the output line by line + assertEquals( linesVmx1, linesVmx2 ); } } |