черновик сравнения задач.
This commit is contained in:
@@ -6,7 +6,10 @@ import GlobalData.Tasks.TaskState;
|
||||
import SapforTestingSystem.Json.SapforVersion_json;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public class SapforTask extends DBObject {
|
||||
@@ -81,10 +84,48 @@ public class SapforTask extends DBObject {
|
||||
}
|
||||
return String.join("→", versionsLines);
|
||||
}
|
||||
public static boolean compareVersionsFiles(SapforVersion_json version1, SapforVersion_json version2, List<String> files) throws Exception {
|
||||
for (String fileName : files) {
|
||||
File file1 = new File(version1.version, fileName);
|
||||
if (!file1.exists()) return false;
|
||||
File file2 = new File(version2.version, fileName);
|
||||
if (!file2.exists()) return false;
|
||||
String text1 = FileUtils.readFileToString(file1, Charset.defaultCharset());
|
||||
String text2 = FileUtils.readFileToString(file2, Charset.defaultCharset());
|
||||
if (!text1.equals(text2))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//должны совпасть им теста, флаги, и коды
|
||||
public boolean isComparable(SapforTask task) throws Exception {
|
||||
return test_description.equalsIgnoreCase(task.test_description) &&
|
||||
flags.equalsIgnoreCase(task.flags) &&
|
||||
codes.equalsIgnoreCase(task.codes);
|
||||
}
|
||||
public boolean Compare(SapforTask task, Vector<String> comparisonLog) throws Exception {
|
||||
//1. сравнить списки файлов. без учета порядка.
|
||||
if (files.size() != task.files.size())
|
||||
return false;
|
||||
for (String file1 : files) {
|
||||
if (!task.files.contains(file1)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//2. сравнить состояния.
|
||||
if (!state.equals(task.state))
|
||||
return false;
|
||||
//3. сравнить цепочки версий (?)
|
||||
if (!getVersionsChain().equalsIgnoreCase(task.getVersionsChain()))
|
||||
return false;
|
||||
//4. сравнить версии. уже знаем что порядок преобразований идентичен и набор файлов одинаков.
|
||||
// первая всегда исходная. поэтому не берется.
|
||||
for (int i = 1; i < versions.size(); ++i) {
|
||||
SapforVersion_json version1 = versions.get(i);
|
||||
SapforVersion_json version2 = task.versions.get(i);
|
||||
//--
|
||||
if (!compareVersionsFiles(version1, version2, files)) return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user