Tests: added logs on wrong usage of choice commands in non-strict mode

This commit is contained in:
Oleg Agafonov 2023-03-25 14:45:50 +04:00
parent 6568f75b98
commit c96805a307

View file

@ -2014,9 +2014,10 @@ public class TestPlayer implements Player {
assertAliasSupportInChoices(false); assertAliasSupportInChoices(false);
if (!choices.isEmpty()) { if (!choices.isEmpty()) {
String possibleChoice = choices.get(0);
// skip choices // skip choices
if (choices.get(0).equals(CHOICE_SKIP)) { if (possibleChoice.equals(CHOICE_SKIP)) {
choices.remove(0); choices.remove(0);
return true; return true;
} }
@ -2024,9 +2025,8 @@ public class TestPlayer implements Player {
if (choice.setChoiceByAnswers(choices, true)) { if (choice.setChoiceByAnswers(choices, true)) {
return true; return true;
} }
// TODO: enable fail checks and fix tests
//Assert.fail("Wrong choice"); assertWrongChoiceUsage(possibleChoice);
LOGGER.warn("Wrong choice");
} }
String choicesInfo; String choicesInfo;
@ -2058,9 +2058,7 @@ public class TestPlayer implements Player {
index++; index++;
} }
// TODO: enable fail checks and fix tests assertWrongChoiceUsage(choice);
//Assert.fail("wrong choice");
LOGGER.warn("Wrong choice");
} }
this.chooseStrictModeFailed("choice", game, String.join("\n", rEffects.values())); this.chooseStrictModeFailed("choice", game, String.join("\n", rEffects.values()));
@ -2268,11 +2266,9 @@ public class TestPlayer implements Player {
} }
// TODO: enable fail checks and fix tests // TODO: enable fail checks and fix tests
/*
if (!target.getTargetName().equals("starting player")) { if (!target.getTargetName().equals("starting player")) {
Assert.fail("Wrong choice"); assertWrongChoiceUsage(choices.size() > 0 ? choices.get(0) : "empty list");
} }
*/
} }
this.chooseStrictModeFailed("choice", game, getInfo(game.getObject(source)) + ";\n" + getInfo(target)); this.chooseStrictModeFailed("choice", game, getInfo(game.getObject(source)) + ";\n" + getInfo(target));
@ -2667,15 +2663,16 @@ public class TestPlayer implements Player {
public TriggeredAbility chooseTriggeredAbility(List<TriggeredAbility> abilities, Game game) { public TriggeredAbility chooseTriggeredAbility(List<TriggeredAbility> abilities, Game game) {
assertAliasSupportInChoices(false); assertAliasSupportInChoices(false);
if (!choices.isEmpty()) { if (!choices.isEmpty()) {
String choice = choices.get(0);
for (TriggeredAbility ability : abilities) { for (TriggeredAbility ability : abilities) {
if (ability.toString().startsWith(choices.get(0))) { if (ability.toString().startsWith(choice)) {
choices.remove(0); choices.remove(0);
return ability; return ability;
} }
} }
// TODO: enable fail checks and fix tests
//Assert.fail("Wrong choice"); assertWrongChoiceUsage(choice);
LOGGER.warn("Wrong choice");
} }
this.chooseStrictModeFailed("choice", game, this.chooseStrictModeFailed("choice", game,
@ -2696,17 +2693,18 @@ public class TestPlayer implements Player {
} }
assertAliasSupportInChoices(false); assertAliasSupportInChoices(false);
if (!choices.isEmpty()) { if (!choices.isEmpty()) {
if (choices.get(0).equals("No")) { String choice = choices.get(0);
if (choice.equals("No")) {
choices.remove(0); choices.remove(0);
return false; return false;
} }
if (choices.get(0).equals("Yes")) { if (choice.equals("Yes")) {
choices.remove(0); choices.remove(0);
return true; return true;
} }
// TODO: enable fail checks and fix tests
//Assert.fail("Wrong choice"); assertWrongChoiceUsage(choice);
LOGGER.warn("Wrong choice");
} }
this.chooseStrictModeFailed("choice", game, getInfo(source, game) this.chooseStrictModeFailed("choice", game, getInfo(source, game)
@ -4016,9 +4014,8 @@ public class TestPlayer implements Player {
return true; return true;
} }
} }
// TODO: enable fail checks and fix tests
//Assert.fail("Wrong choice"); assertWrongChoiceUsage(choices.size() > 0 ? choices.get(0) : "empty list");
LOGGER.warn("Wrong choice");
} }
this.chooseStrictModeFailed("choice", game, getInfo(target)); this.chooseStrictModeFailed("choice", game, getInfo(target));
@ -4382,16 +4379,15 @@ public class TestPlayer implements Player {
} }
if (!choices.isEmpty()) { if (!choices.isEmpty()) {
String choice = choices.get(0);
for (SpellAbility ability : useable.values()) { for (SpellAbility ability : useable.values()) {
if (ability.toString().startsWith(choices.get(0))) { if (ability.toString().startsWith(choice)) {
choices.remove(0); choices.remove(0);
return ability; return ability;
} }
} }
// TODO: enable fail checks and fix tests assertWrongChoiceUsage(choice);
//Assert.fail("Wrong choice");
LOGGER.warn("Wrong choice");
} }
String allInfo = useable.values().stream().map(Object::toString).collect(Collectors.joining("\n")); String allInfo = useable.values().stream().map(Object::toString).collect(Collectors.joining("\n"));
@ -4425,4 +4421,12 @@ public class TestPlayer implements Player {
// non-strict mode allows computer assisted choices (for old tests compatibility only) // non-strict mode allows computer assisted choices (for old tests compatibility only)
return !this.strictChooseMode; return !this.strictChooseMode;
} }
private void assertWrongChoiceUsage(String choice) {
// TODO: enable fail checks and fix tests, it's a part of setStrictChooseMode's implementation to all tests
//Assert.fail("Wrong choice command: " + choice);
LOGGER.warn("Wrong choice command: " + choice);
new Exception("WARNING, test must be fixed to use correct choice commands instead [" + choice + "]").printStackTrace();
}
} }