Cleaned up decisions

This commit is contained in:
marcin.sciesinski
2021-03-17 05:16:17 -07:00
parent 3a76d33635
commit fe9bc890f6
8 changed files with 24 additions and 31 deletions

View File

@@ -116,19 +116,12 @@ public class EventSerializer {
eventElem.setAttribute("decisionType", decision.getDecisionType().name());
if (decision.getText() != null)
eventElem.setAttribute("text", decision.getText());
for (Map.Entry<String, Object> paramEntry : decision.getDecisionParameters().entrySet()) {
if (paramEntry.getValue() instanceof String) {
for (Map.Entry<String, String[]> paramEntry : decision.getDecisionParameters().entrySet()) {
for (String value : paramEntry.getValue()) {
Element decisionParam = doc.createElement("parameter");
decisionParam.setAttribute("name", paramEntry.getKey());
decisionParam.setAttribute("value", (String) paramEntry.getValue());
decisionParam.setAttribute("value", value);
eventElem.appendChild(decisionParam);
} else if (paramEntry.getValue() instanceof String[]) {
for (String value : (String[]) paramEntry.getValue()) {
Element decisionParam = doc.createElement("parameter");
decisionParam.setAttribute("name", paramEntry.getKey());
decisionParam.setAttribute("value", value);
eventElem.appendChild(decisionParam);
}
}
}
}

View File

@@ -7,7 +7,7 @@ public abstract class AbstractAwaitingDecision implements AwaitingDecision {
private int _id;
private String _text;
private AwaitingDecisionType _decisionType;
private Map<String, Object> _params = new HashMap<String, Object>();
private Map<String, String[]> _params = new HashMap<String, String[]>();
public AbstractAwaitingDecision(int id, String text, AwaitingDecisionType decisionType) {
_id = id;
@@ -16,7 +16,7 @@ public abstract class AbstractAwaitingDecision implements AwaitingDecision {
}
protected void setParam(String name, String value) {
_params.put(name, value);
setParam(name, new String[] {value});
}
protected void setParam(String name, String[] value) {
@@ -39,7 +39,7 @@ public abstract class AbstractAwaitingDecision implements AwaitingDecision {
}
@Override
public Map<String, Object> getDecisionParameters() {
public Map<String, String[]> getDecisionParameters() {
return _params;
}
}

View File

@@ -9,7 +9,7 @@ public interface AwaitingDecision {
public AwaitingDecisionType getDecisionType();
public Map<String, Object> getDecisionParameters();
public Map<String, String[]> getDecisionParameters();
public void decisionMade(String result) throws DecisionResultInvalidException;
}

View File

@@ -952,7 +952,7 @@ public class IndividualCardAtTest extends AbstractAtTest {
playerDecided(P2, getCardActionId(playShadowAction, "Play Cave"));
final AwaitingDecision discardGoblins = _userFeedback.getAwaitingDecision(P2);
assertEquals("3", discardGoblins.getDecisionParameters().get("min"));
assertEquals("3", discardGoblins.getDecisionParameters().get("min")[0]);
}
@Test

View File

@@ -586,7 +586,7 @@ public class NewCardsAtTest extends AbstractAtTest {
playerDecided(P1, "" + merry.getCardId());
playerDecided(P1, getCardActionId(P1, "Use Bilbo's Pipe"));
assertEquals("2", _userFeedback.getAwaitingDecision(P1).getDecisionParameters().get("max"));
assertEquals("2", _userFeedback.getAwaitingDecision(P1).getDecisionParameters().get("max")[0]);
}
@Test

View File

@@ -147,8 +147,8 @@ public class ToilAtTest extends AbstractAtTest {
AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType());
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min"));
assertEquals("1", (String) toilExertion.getDecisionParameters().get("max"));
assertEquals("0", toilExertion.getDecisionParameters().get("min")[0]);
assertEquals("1", toilExertion.getDecisionParameters().get("max")[0]);
validateContents(new String[]{"" + corpsOfHarad.getCardId()}, (String[]) toilExertion.getDecisionParameters().get("cardId"));
playerDecided(P2, "" + corpsOfHarad.getCardId());
@@ -186,8 +186,8 @@ public class ToilAtTest extends AbstractAtTest {
AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType());
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min"));
assertEquals("1", (String) toilExertion.getDecisionParameters().get("max"));
assertEquals("0", toilExertion.getDecisionParameters().get("min")[0]);
assertEquals("1", (String) toilExertion.getDecisionParameters().get("max")[0]);
validateContents(new String[]{"" + corpsOfHarad.getCardId()}, (String[]) toilExertion.getDecisionParameters().get("cardId"));
playerDecided(P2, "");
@@ -227,8 +227,8 @@ public class ToilAtTest extends AbstractAtTest {
AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType());
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min"));
assertEquals("2", (String) toilExertion.getDecisionParameters().get("max"));
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min")[0]);
assertEquals("2", (String) toilExertion.getDecisionParameters().get("max")[0]);
validateContents(new String[]{"" + corpsOfHarad1.getCardId(), "" + corpsOfHarad2.getCardId()}, (String[]) toilExertion.getDecisionParameters().get("cardId"));
playerDecided(P2, corpsOfHarad1.getCardId() + "," + corpsOfHarad2.getCardId());
@@ -269,8 +269,8 @@ public class ToilAtTest extends AbstractAtTest {
AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType());
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min"));
assertEquals("2", (String) toilExertion.getDecisionParameters().get("max"));
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min")[0]);
assertEquals("2", (String) toilExertion.getDecisionParameters().get("max")[0]);
validateContents(new String[]{"" + corpsOfHarad1.getCardId(), "" + corpsOfHarad2.getCardId()}, (String[]) toilExertion.getDecisionParameters().get("cardId"));
playerDecided(P2, "" + corpsOfHarad1.getCardId());
@@ -317,8 +317,8 @@ public class ToilAtTest extends AbstractAtTest {
AwaitingDecision toilExertion = _userFeedback.getAwaitingDecision(P2);
assertEquals(AwaitingDecisionType.CARD_SELECTION, toilExertion.getDecisionType());
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min"));
assertEquals("5", (String) toilExertion.getDecisionParameters().get("max"));
assertEquals("0", (String) toilExertion.getDecisionParameters().get("min")[0]);
assertEquals("5", (String) toilExertion.getDecisionParameters().get("max")[0]);
validateContents(new String[]{"" + corpsOfHarad1.getCardId(), "" + corpsOfHarad2.getCardId(), "" + corpsOfHarad3.getCardId(), "" + corpsOfHarad4.getCardId(), "" + corpsOfHarad5.getCardId()}, (String[]) toilExertion.getDecisionParameters().get("cardId"));
playerDecided(P2, corpsOfHarad1.getCardId() + "," + corpsOfHarad2.getCardId() + "," + corpsOfHarad3.getCardId() + "," + corpsOfHarad4.getCardId() + "," + corpsOfHarad5.getCardId());

View File

@@ -38,8 +38,8 @@ public class PlayCardFromDiscardAtTest extends AbstractAtTest {
playerDecided(P2, getCardActionId(P2, "Use They Are Coming"));
Map<String, Object> decisionParameters = _userFeedback.getAwaitingDecision(P2).getDecisionParameters();
String[] cardId = (String[]) decisionParameters.get("cardId");
Map<String, String[]> decisionParameters = _userFeedback.getAwaitingDecision(P2).getDecisionParameters();
String[] cardId = decisionParameters.get("cardId");
assertEquals(1, cardId.length);
assertEquals(String.valueOf(goblinSneakInDiscard.getCardId()), cardId[0]);
}

View File

@@ -167,15 +167,15 @@ public class GenericCardTestHelper extends AbstractAtTest {
public List<String> ShadowGetMultipleChoices() { return GetADParamAsList(P2, "results"); }
public List<String> FreepsGetADParamAsList(String paramName) { return GetADParamAsList(P1, paramName); }
public List<String> ShadowGetADParamAsList(String paramName) { return GetADParamAsList(P2, paramName); }
public List<String> GetADParamAsList(String playerID, String paramName) { return Arrays.asList((String[])GetAwaitingDecisionParam(playerID, paramName)); }
public List<String> GetADParamAsList(String playerID, String paramName) { return Arrays.asList(GetAwaitingDecisionParam(playerID, paramName)); }
public Object FreepsGetADParam(String paramName) { return GetAwaitingDecisionParam(P1, paramName); }
public Object ShadowGetADParam(String paramName) { return GetAwaitingDecisionParam(P2, paramName); }
public Object GetAwaitingDecisionParam(String playerID, String paramName) {
public String[] GetAwaitingDecisionParam(String playerID, String paramName) {
AwaitingDecision decision = _userFeedback.getAwaitingDecision(playerID);
return decision.getDecisionParameters().get(paramName);
}
public Map<String, Object> GetAwaitingDecisionParams(String playerID) {
public Map<String, String[]> GetAwaitingDecisionParams(String playerID) {
AwaitingDecision decision = _userFeedback.getAwaitingDecision(playerID);
return decision.getDecisionParameters();
}