промежуточный. немного изменил отображение задач сапфора. сравнение в процессе

This commit is contained in:
2024-02-23 21:34:01 +03:00
parent 6a7feb96e7
commit 0092b708d3
10 changed files with 189 additions and 148 deletions

View File

@@ -1,5 +1,4 @@
package TestingSystem.SAPFOR.Json;
import Common.UI.UI;
import GlobalData.Tasks.TaskState;
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
import TestingSystem.SAPFOR.SapforTask.MatchState;
@@ -34,14 +33,16 @@ public class SapforPackage_json implements Serializable {
//-
public PackageSummary root = null;
public PackageSummary comparison_root = null;
//--
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
//----
//---------
public void DropComparison() {
// UI.Info("DROP COMPARISON");
// UI.Info("DROP COMPARISON");
comparison_root = null;
comparisonSortedTasks.clear();
for (SapforTask task : allTasks.values())
@@ -49,49 +50,22 @@ public class SapforPackage_json implements Serializable {
}
public void SortTasks() {
sortedTasks.clear();
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
sortedTasks.put(state, configuration_tasks);
//--
Vector<SapforTask> stateTasks = new Vector<>();
for (SapforTask task : tasks) {
if (task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else {
groups_tasks = new LinkedHashMap<>();
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
Vector<SapforTask> tasks_ = null;
if (groups_tasks.containsKey(task.group_description)) {
tasks_ = groups_tasks.get(task.group_description);
} else {
tasks_ = new Vector<>();
groups_tasks.put(task.group_description, tasks_);
}
tasks_.add(task);
}
}
//--
}
//--
for (TaskState state : TaskState.values()) {
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = sortedTasks.get(state);
for (int configuration_id : configuration_tasks.keySet()) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
for (String group : groups_tasks.keySet()) {
Vector<SapforTask> tasks_ = groups_tasks.get(group);
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
}
if (task.state.equals(state))
stateTasks.add(task);
}
if (!stateTasks.isEmpty())
sortedTasks.put(state, stateTasks);
}
}
public void SortTasksForComparison() {
comparisonSortedTasks.clear();
//раскидать задачи по состояниям, конфигам, группам
for (MatchState matchState : MatchState.values()) {
System.out.println("match_state="+matchState.toString());
System.out.println("match_state=" + matchState.toString());
LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
comparisonSortedTasks.put(matchState, state_tasks);
//--
@@ -100,25 +74,25 @@ public class SapforPackage_json implements Serializable {
state_tasks.put(state, configuration_tasks);
//--
for (SapforTask task : tasks) {
// if (matchState.equals(MatchState.Unknown)) {
if (task.match.equals(matchState) && task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else {
groups_tasks = new LinkedHashMap<>();
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
Vector<SapforTask> tasks = null;
if (groups_tasks.containsKey(task.group_description)) {
tasks = groups_tasks.get(task.group_description);
} else {
tasks = new Vector<>();
groups_tasks.put(task.group_description, tasks);
}
tasks.add(task);
// if (matchState.equals(MatchState.Unknown)) {
if (task.match.equals(matchState) && task.state.equals(state)) {
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
} else {
groups_tasks = new LinkedHashMap<>();
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
}
// }
Vector<SapforTask> tasks = null;
if (groups_tasks.containsKey(task.group_description)) {
tasks = groups_tasks.get(task.group_description);
} else {
tasks = new Vector<>();
groups_tasks.put(task.group_description, tasks);
}
tasks.add(task);
}
// }
}
}
//--
@@ -138,49 +112,6 @@ public class SapforPackage_json implements Serializable {
}
}
}
//---------------------------------------------------->>
public void buildTree(SapforPackage package_in) {
root = new PackageSummary();
//---
for (TaskState state : sortedTasks.keySet()) {
//--
StateSummary stateSummary = new StateSummary(state);
//--
LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
for (int configuration_id : tasksByConfigurations.keySet()) {
//--
DefaultMutableTreeNode configurationNode = null;
//--
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = tasksByConfigurations.get(configuration_id);
for (String group : groups_tasks.keySet()) {
//--
GroupSummary groupSummary = new GroupSummary(group);
//--
for (SapforTask task : groups_tasks.get(group)) {
//--
stateSummary.count++;
root.count++;
//--
if (configurationNode == null) {
configurationNode = new ConfigurationSummary(configuration_id, task);
}
//--
groupSummary.add(task.getVersionsTree(
Paths.get(package_in.getLocalWorkspace().getAbsolutePath(),
String.valueOf(task.set_id),
String.valueOf(configuration_id)).toFile())
);
}
if (configurationNode != null)
configurationNode.add(groupSummary);
}
stateSummary.add(configurationNode);
}
if (stateSummary.count > 0) {
root.add(stateSummary);
}
}
}
public void buildComparisonTree(SapforPackage package_in) {
comparison_root = new PackageSummary();
for (MatchState match_state : comparisonSortedTasks.keySet()) {
@@ -234,4 +165,29 @@ public class SapforPackage_json implements Serializable {
}
}
}
//--
// public
public void buildTree(SapforPackage package_in) {
root = new PackageSummary();
root.count = package_in.package_json.allTasks.size();
//--
for (TaskState state : sortedTasks.keySet()) {
StateSummary stateSummary = new StateSummary(state);
Vector<SapforTask> tasks = sortedTasks.get(state);
//-
if (state.equals(TaskState.DoneWithErrors))
root.errors_count += tasks.size();
//-
for (SapforTask task : tasks) {
DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
package_in.getLocalWorkspace().getAbsolutePath(),
String.valueOf(task.set_id),
String.valueOf(task.sapfor_configuration_id)
).toFile());
stateSummary.add(taskNode);
stateSummary.count++;
}
root.add(stateSummary);
}
}
}

View File

@@ -0,0 +1,7 @@
package TestingSystem.SAPFOR.Json;
public enum SapforVersionMatchState {
Unknown,
Match, //версия совпадает
FilesQuantityMissmatch, //количество выходных файлов в версии не совпадает
CodeMissmatch //код файлов не совпадает.
}

View File

@@ -36,6 +36,7 @@ public class SapforVersion_json implements Serializable {
//--
public SapforTask task = null; //родная задача. Нужна для построения дерева версий.
public db_project_info project = null;
public SapforVersionMatchState matchState = SapforVersionMatchState.Unknown;
//--
public SapforVersion_json(String version_in, String description_in) {
version = version_in;

View File

@@ -1,6 +1,5 @@
package TestingSystem.SAPFOR.SapforTask;
import Common.Constants;
import Common.Current;
import Common.Database.DBObject;
import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
@@ -58,7 +57,7 @@ public class SapforTask extends DBObject {
// MatchState.Unknown;
//-----------
public String getUniqueKey() {
return sapfor_configuration_id + "_" + group_description + "_" + test_description;
return group_description + "_" + test_description + "_" +sapfor_configuration_id;
}
public String getSummary() {
Vector<String> lines = new Vector<>();
@@ -85,19 +84,19 @@ public class SapforTask extends DBObject {
root = child;
parent = child;
} else {
if (!child.state.equals(SapforVersionState.Empty)) {
// if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(child);
parent = child;
}
// }
}
//-
}
if (parent != null) {
for (SapforVersion_json version_json : variants) {
version_json.task = this;
if (!child.state.equals(SapforVersionState.Empty)) {
// if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(new VersionSummary(version_json, version_json.init(configurationRoot)));
}
// }
}
}
//--
@@ -196,4 +195,35 @@ public class SapforTask extends DBObject {
public Date getChangeDate() {
return new Date(ChangeDate);
}
@Override
public String toString() {
return
"группа "+Utils.Brackets(group_description)+" тест "+Utils.Brackets(test_description)+" конфигурация "+Utils.Brackets(sapfor_configuration_id);
// getUniqueKey();
}
public String getPassesInfo(){
String res = "";
String [] data = codes.split(" ");
Vector<String> strings = new Vector<>();
for (String code_s: data){
PassCode_2021 code = PassCode_2021.valueOf(code_s);
strings.add(Utils.Brackets(code.getDescription()));
}
return String.join("", strings);
}
//---
public DefaultMutableTreeNode getNode(File configurationRoot) {
DefaultMutableTreeNode res = new DefaultMutableTreeNode(this);
DefaultMutableTreeNode flags_info = new DefaultMutableTreeNode("флаги: "+this.flags);
DefaultMutableTreeNode passes_info = new DefaultMutableTreeNode("проходы: "+getPassesInfo());
//-
int total_versions_count = versions.size()+variants.size();
DefaultMutableTreeNode versions_info = new DefaultMutableTreeNode("версии: "+total_versions_count);
versions_info.add(getVersionsTree(configurationRoot));
//--
res.add(flags_info);
res.add(passes_info);
res.add(versions_info);
return res;
}
}

View File

@@ -2,16 +2,15 @@ package TestingSystem.SAPFOR.SapforTasksPackage.UI;
import Common.UI.UI;
public class PackageSummary extends SapforPackageTreeNode {
public int count = 0;
public int errors_count=0;
@Override
public String getImageKey() {
// System.out.println("PACKAGE_SUMMARY "+ this.count);
return "UnknownStateSummary";
// return null;
}
public PackageSummary() {
}
@Override
public String toString() {
return "всего задач : " + count;
return "всего задач : " + count+", с ошибками : "+errors_count;
}
}

View File

@@ -4,11 +4,8 @@ import javax.swing.tree.DefaultMutableTreeNode;
import java.util.Objects;
public abstract class SapforPackageTreeNode extends DefaultMutableTreeNode {
public ImageIcon getIcon() {
// System.out.println(getImageKey());
ImageIcon res = new ImageIcon(Objects.requireNonNull(getClass().getResource("/icons/versions/" + getImageKey() + ".png")));
// System.out.println(res);
return (getImageKey() != null) ? res : null;
}
public abstract String getImageKey();
}