рефакторинг конфигураций тестирования сапфор. кнфигурация сделана как пара - набор тестов+ наборы настроек. наборы настроек стали отдельным объектом
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user