1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
package org.openslx.virtualization.configuration.logic;
import static org.junit.jupiter.api.Assertions.fail;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import org.apache.commons.io.FileUtils;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.virtualization.configuration.VirtualizationConfiguration;
public class ConfigurationLogicTestUtils
{
// @formatter:off
public static final List<OperatingSystem> STUB_OS_LIST = Collections.unmodifiableList( Arrays.asList(
new OperatingSystem( 1, "Windows 7 (64 Bit)", null, "AMD64", 196608, 256 ),
new OperatingSystem( 2, "Windows 8 (32 Bit)", null, "x86", 4096, 32 ),
new OperatingSystem( 3, "Windows 8 (64 Bit)", null, "AMD64", 131072, 256 ),
new OperatingSystem( 4, "Ubuntu (32 Bit)", null, "x86", 0, 0 ),
new OperatingSystem( 5, "Ubuntu (64 Bit)", null, "AMD64", 0, 0 ),
new OperatingSystem( 6, "OpenSUSE (32 Bit)", null, "x86", 0, 0 ),
new OperatingSystem( 7, "OpenSUSE (64 Bit)", null, "AMD64", 0, 0 ),
new OperatingSystem( 8, "Other Linux (32 Bit)", null, "x86", 0, 0 ),
new OperatingSystem( 9, "Other Linux (64 Bit)", null, "AMD64", 0, 0 ),
new OperatingSystem( 10, "Windows 7 (32 Bit)", null, "x86", 4096, 32 ),
new OperatingSystem( 11, "Windows 2000 Professional", null, "x86", 4096, 4 ) ) );
// @formatter:on
private static final String REGEX_UUID = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";
private static final String REGEX_SOURCE_FILE_PATHS = "(<source.*file=\")(.*)(\".*>)";
public static VirtualizationConfiguration newVirtualizationConfigurationInstance( File configFile )
{
VirtualizationConfiguration config = null;
try {
config = VirtualizationConfiguration.getInstance( ConfigurationLogicTestUtils.STUB_OS_LIST, configFile );
} catch ( IOException e ) {
fail( "Virtualization configuration file '" + configFile.getName() + "' can not be processed!" );
}
if ( config == null ) {
fail( "Virtualization configuration can not be created from file '" + configFile.getName() + "'" );
}
return config;
}
public static String readFileToString( File file )
{
String content = null;
try {
content = FileUtils.readFileToString( file, StandardCharsets.UTF_8 );
} catch ( IOException e ) {
fail( "Could not read content of file '" + file.getName() + "'" );
}
return content;
}
public static boolean isContentEqual( String expectedContent, String actualContent )
{
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;
}
public static String removeSourceFilePaths( String content )
{
final Pattern patternSourceFilePaths = Pattern.compile( ConfigurationLogicTestUtils.REGEX_SOURCE_FILE_PATHS );
final Matcher matcherSourceFilePathsContent = patternSourceFilePaths.matcher( content );
// replace all source file paths with the empty String
return matcherSourceFilePathsContent.replaceAll( "$1$3" );
}
public static String removeUuid( String content )
{
final Pattern patternUuid = Pattern.compile( ConfigurationLogicTestUtils.REGEX_UUID );
final Matcher matcherUuidContent = patternUuid.matcher( content );
// replace all UUIDs with the empty String
return matcherUuidContent.replaceAll( "" );
}
public static boolean isLibvirtContentEqual( String content1, String content2 )
{
// replace all source file paths with the empty String
final String filteredContent1 = ConfigurationLogicTestUtils.removeSourceFilePaths( content1 );
final String filteredContent2 = ConfigurationLogicTestUtils.removeSourceFilePaths( content2 );
return ConfigurationLogicTestUtils.isContentEqual( filteredContent1, filteredContent2 );
}
public static boolean isVirtualBoxContentEqual( String content1, String content2 )
{
// replace all UUIDs with the empty String
final String filteredContent1 = ConfigurationLogicTestUtils.removeUuid( content1 );
final String filteredContent2 = ConfigurationLogicTestUtils.removeUuid( content2 );
return ConfigurationLogicTestUtils.isContentEqual( filteredContent1, filteredContent2 );
}
}
|