рефакторинг конфигураций тестирования сапфор. кнфигурация сделана как пара - набор тестов+ наборы настроек. наборы настроек стали отдельным объектом

This commit is contained in:
2024-09-28 21:47:17 +03:00
parent 4547fd10bd
commit b89283fc91
50 changed files with 338 additions and 590 deletions

View File

@@ -1,6 +1,11 @@
package TestingSystem.SAPFOR.SapforSettings;
import Common.Database.DBObject;
import Common.Global;
import Common.Utils.TextLog;
import Common.Utils.Utils;
import TestingSystem.Common.Settings.Settings;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommand;
import Visual_DVM_2021.Passes.PassCode_2021;
import java.util.Vector;
public class SapforSettings extends Settings {
@@ -25,7 +30,7 @@ public class SapforSettings extends Settings {
if (KEEP_SPF_DIRECTIVES > 0)
res.add("-keepSPF");
//--
flags= String.join(" ", res);
flags = String.join(" ", res);
}
//--
@Override
@@ -41,5 +46,52 @@ public class SapforSettings extends Settings {
public SapforSettings(SapforSettings sapforSettings) {
this.SynchronizeFields(sapforSettings);
}
public SapforSettings(){}
public SapforSettings() {
}
public Vector<PassCode_2021> getCodes() {
Vector<PassCode_2021> res = new Vector<>();
for (SapforSettingsCommand command : Global.testingServer.db.sapforSettingsCommands.Data.values())
if (command.sapforsettings_id == id) res.add(command.passCode);
return res;
}
@Override
public boolean validate(TextLog Log) {
boolean res = true;
Vector<PassCode_2021> codes = getCodes();
if (codes.size() == 0) {
Log.Writeln_("Настройки:" + id + " не содержат ни одного прохода.");
return false;
}
//-
int first = 0;
int last = codes.size() - 1;
Vector<PassCode_2021> matches = new Vector<>();
for (int i = 0; i < codes.size(); ++i) {
PassCode_2021 code = codes.get(i);
if (code.isSapforStart()) {
if (i > first) {
Log.Writeln_("Неверные настройки:" + id + ": проход" +
Utils.Brackets(code.getDescription()) +
" может быть только первым!");
res=false;
}
}
if (code.isSapforTerminal()) {
if (i < last) {
Log.Writeln_("Неверные настройки:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" может быть только последним!");
res= false;
}
}
if (matches.contains(code)) {
Log.Writeln_("Неверные настройки:" + id + ": проход " +
Utils.Brackets(code.getDescription()) +
" запрещено применять более одного раза!");
res=false;
} else matches.add(code);
}
//-
return res;
}
}