Commit cd9fce97 authored by Pakulin's avatar Pakulin
Browse files

Merged macro process with the branch that supports handling of "test_data" subfolder

parent f7ef5da9
Loading
Loading
Loading
Loading
+29 −6
Original line number Original line Diff line number Diff line
@@ -166,18 +166,41 @@ public class TestMacroProcessor {
		macroString = macroString.replace("${module}", moduleName);
		macroString = macroString.replace("${module}", moduleName);
		StringBuilder xsdFileList = new StringBuilder();
		StringBuilder xsdFileList = new StringBuilder();
		xsdFileList.append("{ ");
		xsdFileList.append("{ ");
		File[] listXSDFiles = inputFile.getParentFile().listFiles(new FilenameFilter() {
		File[] listXSDFiles = null;
		File parentFile = inputFile.getParentFile();
		File testData = new File(parentFile, "test_data");
		boolean fromTestData = false;
		// First try to load XSD files from "test_data" subfolder
		if (testData.exists() && testData.isDirectory()) {
			listXSDFiles = testData.listFiles(new FilenameFilter() {
				public boolean accept(File dir, String name) {
					return name.toLowerCase().endsWith(".xsd");
				}
				
			});			
		} 
		if (listXSDFiles == null || listXSDFiles.length == 0) {
			// No XSD files in "test_data" subfolder. Fallback to the main folder
			listXSDFiles = parentFile.listFiles(new FilenameFilter() {
				public boolean accept(File dir, String name) {
				public boolean accept(File dir, String name) {
					return name.toLowerCase().endsWith(".xsd");
					return name.toLowerCase().endsWith(".xsd");
				}
				}
			});
			});
		} else {
			fromTestData = true;
		}
		
		boolean firstFile = true;
		boolean firstFile = true;
		for (File xsdFile : listXSDFiles) {
		for (File xsdFile : listXSDFiles) {
			if (!firstFile) {
			if (!firstFile) {
				xsdFileList.append(", ");
				xsdFileList.append(", ");
			}
			}
			firstFile = false;
			firstFile = false;
			xsdFileList.append("\"").append(xsdFile.getName()).append("\"");
			xsdFileList.append("\"");
			if (fromTestData) {
				xsdFileList.append("test_data").append('/');
			}
			xsdFileList.append(xsdFile.getName()).append("\"");
		}
		}
		xsdFileList.append(" }");
		xsdFileList.append(" }");
		macroString = macroString.replace("${xsdFileList}", xsdFileList);
		macroString = macroString.replace("${xsdFileList}", xsdFileList);