черновик сравнения задач.

This commit is contained in:
2023-10-24 23:19:13 +03:00
parent e45cf5659d
commit 37c7bbda44
3 changed files with 66 additions and 10 deletions

View File

@@ -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;
}
}