mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
DeckRecognizer.Token to include whether request in card list had any set code
This commit adds in a new piece of information to Token in DeckRecognizer to mark whether original card request included or not a set code. This flag will be only used by actual CardToken and will be leveraged later on by "smart card optimisation option" to be added to DeckImport on desktop too. Majority of tests in DeckRecognizerTest have been updated to cross-check that no bug has been unintentionally introduced.
This commit is contained in:
@@ -83,23 +83,29 @@ public class DeckRecognizer {
|
|||||||
// only used for card tokens
|
// only used for card tokens
|
||||||
private PaperCard card = null;
|
private PaperCard card = null;
|
||||||
private DeckSection tokenSection = null;
|
private DeckSection tokenSection = null;
|
||||||
|
// Flag used to mark whether original card request had any specified set code
|
||||||
|
// This will be used to mark tokens that could be further processed by
|
||||||
|
// card art optimisation (if enabled)
|
||||||
|
private boolean cardRequestHasSetCode = true;
|
||||||
|
|
||||||
|
|
||||||
public static Token LegalCard(final PaperCard card, final int count,
|
public static Token LegalCard(final PaperCard card, final int count,
|
||||||
final DeckSection section) {
|
final DeckSection section, final boolean cardRequestHasSetCode) {
|
||||||
return new Token(TokenType.LEGAL_CARD, count, card, section);
|
return new Token(TokenType.LEGAL_CARD, count, card, section, cardRequestHasSetCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Token LimitedCard(final PaperCard card, final int count,
|
public static Token LimitedCard(final PaperCard card, final int count,
|
||||||
final DeckSection section, final LimitedCardType limitedType){
|
final DeckSection section, final LimitedCardType limitedType,
|
||||||
return new Token(TokenType.LIMITED_CARD, count, card, section, limitedType);
|
final boolean cardRequestHasSetCode){
|
||||||
|
return new Token(TokenType.LIMITED_CARD, count, card, section, limitedType, cardRequestHasSetCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Token NotAllowedCard(final PaperCard card, final int count) {
|
public static Token NotAllowedCard(final PaperCard card, final int count, final boolean cardRequestHasSetCode) {
|
||||||
return new Token(TokenType.CARD_FROM_NOT_ALLOWED_SET, count, card);
|
return new Token(TokenType.CARD_FROM_NOT_ALLOWED_SET, count, card, cardRequestHasSetCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Token CardInInvalidSet(final PaperCard card, final int count) {
|
public static Token CardInInvalidSet(final PaperCard card, final int count, final boolean cardRequestHasSetCode) {
|
||||||
return new Token(TokenType.CARD_FROM_INVALID_SET, count, card);
|
return new Token(TokenType.CARD_FROM_INVALID_SET, count, card, cardRequestHasSetCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
// WARNING MESSAGES
|
// WARNING MESSAGES
|
||||||
@@ -154,7 +160,7 @@ public class DeckRecognizer {
|
|||||||
return new Token(TokenType.DECK_SECTION_NAME, matchedSection.name());
|
return new Token(TokenType.DECK_SECTION_NAME, matchedSection.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Token(final TokenType type1, final int count, final PaperCard tokenCard) {
|
private Token(final TokenType type1, final int count, final PaperCard tokenCard, boolean cardRequestHasSetCode) {
|
||||||
this.number = count;
|
this.number = count;
|
||||||
this.type = type1;
|
this.type = type1;
|
||||||
this.text = String.format("%s [%s] #%s",
|
this.text = String.format("%s [%s] #%s",
|
||||||
@@ -162,18 +168,20 @@ public class DeckRecognizer {
|
|||||||
this.card = tokenCard;
|
this.card = tokenCard;
|
||||||
this.tokenSection = null;
|
this.tokenSection = null;
|
||||||
this.limitedCardType = null;
|
this.limitedCardType = null;
|
||||||
|
this.cardRequestHasSetCode = cardRequestHasSetCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Token(final TokenType type1, final int count, final PaperCard tokenCard,
|
private Token(final TokenType type1, final int count, final PaperCard tokenCard,
|
||||||
final DeckSection section) {
|
final DeckSection section, boolean cardRequestHasSetCode) {
|
||||||
this(type1, count, tokenCard);
|
this(type1, count, tokenCard, cardRequestHasSetCode);
|
||||||
this.tokenSection = section;
|
this.tokenSection = section;
|
||||||
this.limitedCardType = null;
|
this.limitedCardType = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Token(final TokenType type1, final int count, final PaperCard tokenCard,
|
private Token(final TokenType type1, final int count, final PaperCard tokenCard,
|
||||||
final DeckSection section, final LimitedCardType limitedCardType1) {
|
final DeckSection section, final LimitedCardType limitedCardType1,
|
||||||
this(type1, count, tokenCard);
|
boolean cardRequestHasSetCode) {
|
||||||
|
this(type1, count, tokenCard, cardRequestHasSetCode);
|
||||||
this.tokenSection = section;
|
this.tokenSection = section;
|
||||||
this.limitedCardType = limitedCardType1;
|
this.limitedCardType = limitedCardType1;
|
||||||
}
|
}
|
||||||
@@ -204,6 +212,10 @@ public class DeckRecognizer {
|
|||||||
return this.number;
|
return this.number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final boolean cardRequestHasNoCode() {
|
||||||
|
return !(this.cardRequestHasSetCode);
|
||||||
|
}
|
||||||
|
|
||||||
public final DeckSection getTokenSection() { return this.tokenSection; }
|
public final DeckSection getTokenSection() { return this.tokenSection; }
|
||||||
|
|
||||||
public void resetTokenSection(DeckSection referenceDeckSection) {
|
public void resetTokenSection(DeckSection referenceDeckSection) {
|
||||||
@@ -635,7 +647,8 @@ public class DeckRecognizer {
|
|||||||
PaperCard pc = data.getCardFromSet(cardName, edition, collectorNumber, artIndex, isFoil);
|
PaperCard pc = data.getCardFromSet(cardName, edition, collectorNumber, artIndex, isFoil);
|
||||||
if (pc != null)
|
if (pc != null)
|
||||||
// ok so the card has been found - let's see if there's any restriction on the set
|
// ok so the card has been found - let's see if there's any restriction on the set
|
||||||
return checkAndSetCardToken(pc, edition, cardCount, deckSecFromCardLine, currentDeckSection);
|
return checkAndSetCardToken(pc, edition, cardCount, deckSecFromCardLine,
|
||||||
|
currentDeckSection, true);
|
||||||
// UNKNOWN card as in the Counterspell|FEM case
|
// UNKNOWN card as in the Counterspell|FEM case
|
||||||
return Token.UnknownCard(cardName, setCode, cardCount);
|
return Token.UnknownCard(cardName, setCode, cardCount);
|
||||||
}
|
}
|
||||||
@@ -654,7 +667,8 @@ public class DeckRecognizer {
|
|||||||
|
|
||||||
if (pc != null) {
|
if (pc != null) {
|
||||||
CardEdition edition = StaticData.instance().getCardEdition(pc.getEdition());
|
CardEdition edition = StaticData.instance().getCardEdition(pc.getEdition());
|
||||||
return checkAndSetCardToken(pc, edition, cardCount, deckSecFromCardLine, currentDeckSection);
|
return checkAndSetCardToken(pc, edition, cardCount, deckSecFromCardLine,
|
||||||
|
currentDeckSection, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return unknownCardToken; // either null or unknown card
|
return unknownCardToken; // either null or unknown card
|
||||||
@@ -677,25 +691,26 @@ public class DeckRecognizer {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Token checkAndSetCardToken(PaperCard pc, CardEdition edition, int cardCount,
|
private Token checkAndSetCardToken(final PaperCard pc, final CardEdition edition, final int cardCount,
|
||||||
String deckSecFromCardLine, DeckSection referenceSection) {
|
final String deckSecFromCardLine, final DeckSection referenceSection,
|
||||||
|
final boolean cardRequestHasSetCode) {
|
||||||
// Note: Always Check Allowed Set First to avoid accidentally importing invalid cards
|
// Note: Always Check Allowed Set First to avoid accidentally importing invalid cards
|
||||||
// e.g. Banned Cards from not-allowed sets!
|
// e.g. Banned Cards from not-allowed sets!
|
||||||
if (IsIllegalInFormat(edition.getCode()))
|
if (IsIllegalInFormat(edition.getCode()))
|
||||||
// Mark as illegal card
|
// Mark as illegal card
|
||||||
return Token.NotAllowedCard(pc, cardCount);
|
return Token.NotAllowedCard(pc, cardCount, cardRequestHasSetCode);
|
||||||
|
|
||||||
if (isNotCompliantWithReleaseDateRestrictions(edition))
|
if (isNotCompliantWithReleaseDateRestrictions(edition))
|
||||||
return Token.CardInInvalidSet(pc, cardCount);
|
return Token.CardInInvalidSet(pc, cardCount, cardRequestHasSetCode);
|
||||||
|
|
||||||
DeckSection tokenSection = getTokenSection(deckSecFromCardLine, referenceSection, pc);
|
DeckSection tokenSection = getTokenSection(deckSecFromCardLine, referenceSection, pc);
|
||||||
if (isBannedInFormat(pc))
|
if (isBannedInFormat(pc))
|
||||||
return Token.LimitedCard(pc, cardCount, tokenSection, LimitedCardType.BANNED);
|
return Token.LimitedCard(pc, cardCount, tokenSection, LimitedCardType.BANNED, cardRequestHasSetCode);
|
||||||
|
|
||||||
if (isRestrictedInFormat(pc, cardCount))
|
if (isRestrictedInFormat(pc, cardCount))
|
||||||
return Token.LimitedCard(pc, cardCount, tokenSection, LimitedCardType.RESTRICTED);
|
return Token.LimitedCard(pc, cardCount, tokenSection, LimitedCardType.RESTRICTED, cardRequestHasSetCode);
|
||||||
|
|
||||||
return Token.LegalCard(pc, cardCount, tokenSection);
|
return Token.LegalCard(pc, cardCount, tokenSection, cardRequestHasSetCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This would save tons of time in parsing Input + would also allow to return UnsupportedCardTokens beforehand
|
// This would save tons of time in parsing Input + would also allow to return UnsupportedCardTokens beforehand
|
||||||
|
|||||||
@@ -1114,6 +1114,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "4x Power Sink TMP 78";
|
lineRequest = "4x Power Sink TMP 78";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1125,6 +1126,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
|
||||||
lineRequest = "4x TMP Power Sink 78";
|
lineRequest = "4x TMP Power Sink 78";
|
||||||
@@ -1138,6 +1140,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "4x TMP Power Sink";
|
lineRequest = "4x TMP Power Sink";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1150,6 +1153,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "4x Power Sink TMP";
|
lineRequest = "4x Power Sink TMP";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1162,6 +1166,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Power Sink TMP";
|
lineRequest = "Power Sink TMP";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1174,6 +1179,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "[TMP] Power Sink";
|
lineRequest = "[TMP] Power Sink";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1186,6 +1192,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Relax Set Preference
|
// Relax Set Preference
|
||||||
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||||
@@ -1200,6 +1207,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "VMA");
|
assertEquals(tokenCard.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "4x Power Sink+";
|
lineRequest = "4x Power Sink+";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1211,6 +1219,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "VMA");
|
assertEquals(tokenCard.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Power Sink+";
|
lineRequest = "Power Sink+";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1222,6 +1231,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "VMA");
|
assertEquals(tokenCard.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testSingleWordCardNameMatchesCorrectly(){
|
@Test void testSingleWordCardNameMatchesCorrectly(){
|
||||||
@@ -1236,6 +1246,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertEquals(tokenCard.getName(), "Counterspell");
|
assertEquals(tokenCard.getName(), "Counterspell");
|
||||||
assertEquals(tokenCard.getEdition(), "ICE");
|
assertEquals(tokenCard.getEdition(), "ICE");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Remove Set code
|
// Remove Set code
|
||||||
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||||
@@ -1248,6 +1259,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertEquals(tokenCard.getName(), "Counterspell");
|
assertEquals(tokenCard.getName(), "Counterspell");
|
||||||
assertEquals(tokenCard.getEdition(), "MH2");
|
assertEquals(tokenCard.getEdition(), "MH2");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1271,6 +1283,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "TMP");
|
assertEquals(tokenCard.getEdition(), "TMP");
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "78");
|
assertEquals(tokenCard.getCollectorNumber(), "78");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==================================
|
/*==================================
|
||||||
@@ -1402,6 +1415,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getEdition(), "MIR");
|
assertEquals(tokenCard.getEdition(), "MIR");
|
||||||
assertEquals(tokenCard.getArtIndex(), 3);
|
assertEquals(tokenCard.getArtIndex(), 3);
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "345");
|
assertEquals(tokenCard.getCollectorNumber(), "345");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCollectorNumberIsNotConfusedAsArtIndexInstead(){
|
@Test void testCollectorNumberIsNotConfusedAsArtIndexInstead(){
|
||||||
@@ -1418,6 +1432,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getEdition(), "MIR");
|
assertEquals(tokenCard.getEdition(), "MIR");
|
||||||
assertEquals(tokenCard.getArtIndex(), 1);
|
assertEquals(tokenCard.getArtIndex(), 1);
|
||||||
assertEquals(tokenCard.getCollectorNumber(), "3");
|
assertEquals(tokenCard.getCollectorNumber(), "3");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardRequestWithWrongCollectorNumberStillReturnsTheCardFromSetIfAny(){
|
@Test void testCardRequestWithWrongCollectorNumberStillReturnsTheCardFromSetIfAny(){
|
||||||
@@ -1433,6 +1448,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(card.getName(), "Jayemdae Tome");
|
assertEquals(card.getName(), "Jayemdae Tome");
|
||||||
assertEquals(card.getEdition(), "LEB");
|
assertEquals(card.getEdition(), "LEB");
|
||||||
assertEquals(card.getCollectorNumber(), "255");
|
assertEquals(card.getCollectorNumber(), "255");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// No Match - Unknown card
|
// No Match - Unknown card
|
||||||
requestLine = "3 Jayemdae Tome (TMP)"; // actually found in TappedOut Deck Export
|
requestLine = "3 Jayemdae Tome (TMP)"; // actually found in TappedOut Deck Export
|
||||||
@@ -1486,6 +1502,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(ancestralCard.getName(), "Ancestral Recall");
|
assertEquals(ancestralCard.getName(), "Ancestral Recall");
|
||||||
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||||
assertEquals(ancestralCard.getEdition(), "2ED");
|
assertEquals(ancestralCard.getEdition(), "2ED");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Counterspell editions
|
// Counterspell editions
|
||||||
lineRequest = "Counterspell";
|
lineRequest = "Counterspell";
|
||||||
@@ -1498,6 +1515,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(counterSpellCard.getName(), "Counterspell");
|
assertEquals(counterSpellCard.getName(), "Counterspell");
|
||||||
assertEquals(counterSpellCard.getEdition(), "MMQ");
|
assertEquals(counterSpellCard.getEdition(), "MMQ");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testInvalidCardRequestWhenReleaseDateConstraintsAreUp(){
|
@Test void testInvalidCardRequestWhenReleaseDateConstraintsAreUp(){
|
||||||
@@ -1515,12 +1533,14 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(counterSpellCard.getName(), "Counterspell");
|
assertEquals(counterSpellCard.getName(), "Counterspell");
|
||||||
assertEquals(counterSpellCard.getEdition(), "MH2");
|
assertEquals(counterSpellCard.getEdition(), "MH2");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setDateConstraint(1999, 10);
|
recognizer.setDateConstraint(1999, 10);
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
assertNotNull(cardToken);
|
assertNotNull(cardToken);
|
||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*======================================
|
/*======================================
|
||||||
@@ -1542,6 +1562,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard tc = cardToken.getCard();
|
PaperCard tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Counterspell");
|
assertEquals(tc.getName(), "Counterspell");
|
||||||
assertEquals(tc.getEdition(), "MH2");
|
assertEquals(tc.getEdition(), "MH2");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Setting Original Core
|
// Setting Original Core
|
||||||
recognizer.setArtPreference(CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS);
|
recognizer.setArtPreference(CardDb.CardArtPreference.ORIGINAL_ART_ALL_EDITIONS);
|
||||||
@@ -1555,6 +1576,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Counterspell");
|
assertEquals(tc.getName(), "Counterspell");
|
||||||
assertEquals(tc.getEdition(), "LEA");
|
assertEquals(tc.getEdition(), "LEA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardRequestVariesUponChangesInArtPreference(){
|
@Test void testCardRequestVariesUponChangesInArtPreference(){
|
||||||
@@ -1571,6 +1593,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "VMA");
|
assertEquals(tokenCard.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setArtPreference(CardDb.CardArtPreference.ORIGINAL_ART_CORE_EXPANSIONS_REPRINT_ONLY);
|
recognizer.setArtPreference(CardDb.CardArtPreference.ORIGINAL_ART_CORE_EXPANSIONS_REPRINT_ONLY);
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1582,6 +1605,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertTrue(tokenCard.isFoil());
|
assertTrue(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "LEA");
|
assertEquals(tokenCard.getEdition(), "LEA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Check that result is persistent - and consistent with change
|
// Check that result is persistent - and consistent with change
|
||||||
lineRequest = "Power Sink";
|
lineRequest = "Power Sink";
|
||||||
@@ -1594,6 +1618,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(tokenCard.getName(), "Power Sink");
|
assertEquals(tokenCard.getName(), "Power Sink");
|
||||||
assertFalse(tokenCard.isFoil());
|
assertFalse(tokenCard.isFoil());
|
||||||
assertEquals(tokenCard.getEdition(), "LEA");
|
assertEquals(tokenCard.getEdition(), "LEA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==============================
|
/*==============================
|
||||||
@@ -1612,6 +1637,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertNull(cardToken.getTokenSection());
|
assertNull(cardToken.getTokenSection());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Counterspell"; // It does not exist any Counterspell in Urza's block
|
lineRequest = "2x Counterspell"; // It does not exist any Counterspell in Urza's block
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1619,6 +1645,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertNull(cardToken.getTokenSection());
|
assertNull(cardToken.getTokenSection());
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testRequestingCardWithRestrictionsOnDeckFormat(){
|
@Test void testRequestingCardWithRestrictionsOnDeckFormat(){
|
||||||
@@ -1634,6 +1661,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(ancestralCard.getName(), "Ancestral Recall");
|
assertEquals(ancestralCard.getName(), "Ancestral Recall");
|
||||||
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
assertEquals(StaticData.instance().getCommonCards().getCardArtPreference(), CardDb.CardArtPreference.LATEST_ART_ALL_EDITIONS);
|
||||||
assertEquals(ancestralCard.getEdition(), "VMA");
|
assertEquals(ancestralCard.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1643,6 +1671,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardRequestUnderGameConstraints(){
|
@Test void testCardRequestUnderGameConstraints(){
|
||||||
@@ -1668,6 +1697,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Bloodstained Mire");
|
assertEquals(cardToken.getCard().getName(), "Bloodstained Mire");
|
||||||
assertEquals(cardToken.getCard().getEdition(), "ONS");
|
assertEquals(cardToken.getCard().getEdition(), "ONS");
|
||||||
assertEquals(cardToken.getText(), "Bloodstained Mire [ONS] #313");
|
assertEquals(cardToken.getText(), "Bloodstained Mire [ONS] #313");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
String noEditionCardRequest = "4 Bloodstained Mire";
|
String noEditionCardRequest = "4 Bloodstained Mire";
|
||||||
cardToken = recognizer.recogniseCardToken(noEditionCardRequest, null);
|
cardToken = recognizer.recogniseCardToken(noEditionCardRequest, null);
|
||||||
@@ -1681,6 +1711,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Bloodstained Mire");
|
assertEquals(cardToken.getCard().getName(), "Bloodstained Mire");
|
||||||
assertEquals(cardToken.getCard().getEdition(), "KTK");
|
assertEquals(cardToken.getCard().getEdition(), "KTK");
|
||||||
assertEquals(cardToken.getText(), "Bloodstained Mire [KTK] #230");
|
assertEquals(cardToken.getText(), "Bloodstained Mire [KTK] #230");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testGameFormatRestrictionsAlsoWithRestrictedCardList(){
|
@Test void testGameFormatRestrictionsAlsoWithRestrictedCardList(){
|
||||||
@@ -1712,6 +1743,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Ancestral Recall");
|
assertEquals(cardToken.getCard().getName(), "Ancestral Recall");
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VMA");
|
assertEquals(cardToken.getCard().getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
cardRequest = "4x Ancestral Recall";
|
cardRequest = "4x Ancestral Recall";
|
||||||
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
||||||
@@ -1723,6 +1755,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Ancestral Recall");
|
assertEquals(cardToken.getCard().getName(), "Ancestral Recall");
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VMA");
|
assertEquals(cardToken.getCard().getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testSettingPartialConstraintsOnGameFormatsAreStillApplied(){
|
@Test void testSettingPartialConstraintsOnGameFormatsAreStillApplied(){
|
||||||
@@ -1746,6 +1779,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
cardRequest = "4x Viashino Sandstalker";
|
cardRequest = "4x Viashino Sandstalker";
|
||||||
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
||||||
@@ -1757,6 +1791,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Requesting now what will be a Banned card later in this test
|
// Requesting now what will be a Banned card later in this test
|
||||||
cardRequest = "Squandered Resources";
|
cardRequest = "Squandered Resources";
|
||||||
@@ -1768,6 +1803,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Squandered Resources");
|
assertEquals(cardToken.getCard().getName(), "Squandered Resources");
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// == ALLOWED SETS ONLY
|
// == ALLOWED SETS ONLY
|
||||||
recognizer.setGameFormatConstraint(allowedSetCodes, null, null);
|
recognizer.setGameFormatConstraint(allowedSetCodes, null, null);
|
||||||
@@ -1781,6 +1817,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// == BANNED CARDS ONLY
|
// == BANNED CARDS ONLY
|
||||||
recognizer.setGameFormatConstraint(null, bannedCards, null);
|
recognizer.setGameFormatConstraint(null, bannedCards, null);
|
||||||
@@ -1794,6 +1831,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
assertEquals(cardToken.getCard().getEdition(), "MB1");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
cardRequest = "Squandered Resources";
|
cardRequest = "Squandered Resources";
|
||||||
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
cardToken = recognizer.recogniseCardToken(cardRequest, null);
|
||||||
@@ -1806,6 +1844,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Squandered Resources");
|
assertEquals(cardToken.getCard().getName(), "Squandered Resources");
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// ALLOWED SET CODES AND RESTRICTED
|
// ALLOWED SET CODES AND RESTRICTED
|
||||||
recognizer.setGameFormatConstraint(allowedSetCodes, null, restrictedCards);
|
recognizer.setGameFormatConstraint(allowedSetCodes, null, restrictedCards);
|
||||||
@@ -1820,6 +1859,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
assertEquals(cardToken.getCard().getName(), "Viashino Sandstalker");
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
assertEquals(cardToken.getCard().getEdition(), "VIS");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*======================================
|
/*======================================
|
||||||
@@ -1840,6 +1880,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard tc = cardToken.getCard();
|
PaperCard tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Lightning Dragon");
|
assertEquals(tc.getName(), "Lightning Dragon");
|
||||||
assertEquals(tc.getEdition(), "VMA");
|
assertEquals(tc.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setDateConstraint(2000, 0); // Jan 2000
|
recognizer.setDateConstraint(2000, 0); // Jan 2000
|
||||||
// Setting Fantasy Constructed Game Format: Urza's Block Format (no promo)
|
// Setting Fantasy Constructed Game Format: Urza's Block Format (no promo)
|
||||||
@@ -1855,6 +1896,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Lightning Dragon");
|
assertEquals(tc.getName(), "Lightning Dragon");
|
||||||
assertEquals(tc.getEdition(), "USG");
|
assertEquals(tc.getEdition(), "USG");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Relaxing Constraint on Set
|
// Relaxing Constraint on Set
|
||||||
lineRequest = "2x Lightning Dragon";
|
lineRequest = "2x Lightning Dragon";
|
||||||
@@ -1866,6 +1908,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Lightning Dragon");
|
assertEquals(tc.getName(), "Lightning Dragon");
|
||||||
assertEquals(tc.getEdition(), "USG"); // the latest available within set requested
|
assertEquals(tc.getEdition(), "USG"); // the latest available within set requested
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Now setting a tighter date constraint
|
// Now setting a tighter date constraint
|
||||||
recognizer.setDateConstraint(1998, 0); // Jan 1998
|
recognizer.setDateConstraint(1998, 0); // Jan 1998
|
||||||
@@ -1875,6 +1918,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Lightning Dragon";
|
lineRequest = "2x Lightning Dragon";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1883,6 +1927,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getText(), "Lightning Dragon [USG] #202");
|
assertEquals(cardToken.getText(), "Lightning Dragon [USG] #202");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Now relaxing date constraint but removing USG from allowed sets
|
// Now relaxing date constraint but removing USG from allowed sets
|
||||||
// VMA release date: 2014-06-16
|
// VMA release date: 2014-06-16
|
||||||
@@ -1895,6 +1940,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Lightning Dragon";
|
lineRequest = "2x Lightning Dragon";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1902,6 +1948,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET);
|
||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Now relaxing date constraint but removing USG from allowed sets
|
// Now relaxing date constraint but removing USG from allowed sets
|
||||||
// VMA release date: 2014-06-16
|
// VMA release date: 2014-06-16
|
||||||
@@ -1916,6 +1963,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Lightning Dragon");
|
assertEquals(tc.getName(), "Lightning Dragon");
|
||||||
assertEquals(tc.getEdition(), "VMA");
|
assertEquals(tc.getEdition(), "VMA");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardMatchWithDateANDdeckFormatConstraints(){
|
@Test void testCardMatchWithDateANDdeckFormatConstraints(){
|
||||||
@@ -1933,6 +1981,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard tc = cardToken.getCard();
|
PaperCard tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Flash");
|
assertEquals(tc.getName(), "Flash");
|
||||||
assertEquals(tc.getEdition(), "A25");
|
assertEquals(tc.getEdition(), "A25");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setDateConstraint(2012, 0); // Jan 2012
|
recognizer.setDateConstraint(2012, 0); // Jan 2012
|
||||||
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
||||||
@@ -1946,6 +1995,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Cancel";
|
lineRequest = "2x Cancel";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1956,6 +2006,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Cancel");
|
assertEquals(tc.getName(), "Cancel");
|
||||||
assertEquals(tc.getEdition(), "M12"); // the latest within date constraint
|
assertEquals(tc.getEdition(), "M12"); // the latest within date constraint
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Cancel|M21";
|
lineRequest = "2x Cancel|M21";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -1964,6 +2015,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 2);
|
assertEquals(cardToken.getQuantity(), 2);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getText(), "Cancel [M21] #46");
|
assertEquals(cardToken.getText(), "Cancel [M21] #46");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardMatchWithGameANDdeckFormatConstraints(){
|
@Test void testCardMatchWithGameANDdeckFormatConstraints(){
|
||||||
@@ -1981,6 +2033,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard tc = cardToken.getCard();
|
PaperCard tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Flash");
|
assertEquals(tc.getName(), "Flash");
|
||||||
assertEquals(tc.getEdition(), "A25");
|
assertEquals(tc.getEdition(), "A25");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setGameFormatConstraint(Arrays.asList("MIR", "VIS", "WTH"), null, null);
|
recognizer.setGameFormatConstraint(Arrays.asList("MIR", "VIS", "WTH"), null, null);
|
||||||
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
||||||
@@ -1993,6 +2046,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Femeref Knight";
|
lineRequest = "2x Femeref Knight";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2003,6 +2057,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Femeref Knight");
|
assertEquals(tc.getName(), "Femeref Knight");
|
||||||
assertEquals(tc.getEdition(), "MIR");
|
assertEquals(tc.getEdition(), "MIR");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "2x Incinerate";
|
lineRequest = "2x Incinerate";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2013,6 +2068,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
tc = cardToken.getCard();
|
tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Incinerate");
|
assertEquals(tc.getName(), "Incinerate");
|
||||||
assertEquals(tc.getEdition(), "MIR");
|
assertEquals(tc.getEdition(), "MIR");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Noble Elephant";
|
lineRequest = "Noble Elephant";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2024,6 +2080,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Incinerate|ICE";
|
lineRequest = "Incinerate|ICE";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2032,6 +2089,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getText(), "Incinerate [ICE] #194");
|
assertEquals(cardToken.getText(), "Incinerate [ICE] #194");
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test void testCardMatchWitDateANDgameANDdeckFormatConstraints(){
|
@Test void testCardMatchWitDateANDgameANDdeckFormatConstraints(){
|
||||||
@@ -2049,6 +2107,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard tc = cardToken.getCard();
|
PaperCard tc = cardToken.getCard();
|
||||||
assertEquals(tc.getName(), "Flash");
|
assertEquals(tc.getName(), "Flash");
|
||||||
assertEquals(tc.getEdition(), "A25");
|
assertEquals(tc.getEdition(), "A25");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setGameFormatConstraint(Arrays.asList("MIR", "VIS", "WTH"), null, null);
|
recognizer.setGameFormatConstraint(Arrays.asList("MIR", "VIS", "WTH"), null, null);
|
||||||
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
recognizer.setDeckFormatConstraint(DeckFormat.TinyLeaders);
|
||||||
@@ -2063,6 +2122,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Ardent Militia";
|
lineRequest = "Ardent Militia";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2073,6 +2133,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
assertEquals(cardToken.getTokenSection(), DeckSection.Main);
|
||||||
assertNotNull(cardToken.getLimitedCardType());
|
assertNotNull(cardToken.getLimitedCardType());
|
||||||
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
assertEquals(cardToken.getLimitedCardType(), DeckRecognizer.LimitedCardType.BANNED);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Buried Alive|UMA";
|
lineRequest = "Buried Alive|UMA";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2080,6 +2141,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET); // illegal in game format
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_NOT_ALLOWED_SET); // illegal in game format
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getText(), "Buried Alive [UMA] #88"); // within set constraints
|
assertEquals(cardToken.getText(), "Buried Alive [UMA] #88"); // within set constraints
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Buried Alive";
|
lineRequest = "Buried Alive";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2088,6 +2150,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getCard().getName(), "Buried Alive");
|
assertEquals(cardToken.getCard().getName(), "Buried Alive");
|
||||||
assertEquals(cardToken.getCard().getEdition(), "WTH"); // within set constraints
|
assertEquals(cardToken.getCard().getEdition(), "WTH"); // within set constraints
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
recognizer.setDateConstraint(1997, 2); // March '97 - before WTH
|
recognizer.setDateConstraint(1997, 2); // March '97 - before WTH
|
||||||
lineRequest = "Buried Alive";
|
lineRequest = "Buried Alive";
|
||||||
@@ -2096,6 +2159,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
assertEquals(cardToken.getType(), TokenType.CARD_FROM_INVALID_SET);
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
assertEquals(cardToken.getText(), "Buried Alive [WTH] #63");
|
assertEquals(cardToken.getText(), "Buried Alive [WTH] #63");
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==================================
|
/*==================================
|
||||||
@@ -2166,6 +2230,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(aspectOfHydraCard.getName(), "Aspect of Hydra");
|
assertEquals(aspectOfHydraCard.getName(), "Aspect of Hydra");
|
||||||
assertEquals(aspectOfHydraCard.getEdition(), "BNG");
|
assertEquals(aspectOfHydraCard.getEdition(), "BNG");
|
||||||
assertTrue(aspectOfHydraCard.isFoil());
|
assertTrue(aspectOfHydraCard.isFoil());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "18 Forest <254> [THB] (F)";
|
lineRequest = "18 Forest <254> [THB] (F)";
|
||||||
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
cardToken = recognizer.recogniseCardToken(lineRequest, null);
|
||||||
@@ -2177,6 +2242,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(forestCard.getName(), "Forest");
|
assertEquals(forestCard.getName(), "Forest");
|
||||||
assertEquals(forestCard.getEdition(), "THB");
|
assertEquals(forestCard.getEdition(), "THB");
|
||||||
assertTrue(forestCard.isFoil());
|
assertTrue(forestCard.isFoil());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
// === TappedOut Markdown Format
|
// === TappedOut Markdown Format
|
||||||
@@ -2258,6 +2324,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(acCard.getName(), "Amoeboid Changeling");
|
assertEquals(acCard.getName(), "Amoeboid Changeling");
|
||||||
assertEquals(acCard.getEdition(), "LRW");
|
assertEquals(acCard.getEdition(), "LRW");
|
||||||
assertEquals(acCard.getCollectorNumber(), "51");
|
assertEquals(acCard.getCollectorNumber(), "51");
|
||||||
|
assertFalse(xmageCardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
// === Deckstats Commander
|
// === Deckstats Commander
|
||||||
@@ -2276,6 +2343,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(soCard.getName(), "Sliver Overlord");
|
assertEquals(soCard.getName(), "Sliver Overlord");
|
||||||
assertEquals(soCard.getEdition(), "SLD");
|
assertEquals(soCard.getEdition(), "SLD");
|
||||||
assertEquals(soCard.getCollectorNumber(), "10");
|
assertEquals(soCard.getCollectorNumber(), "10");
|
||||||
|
assertTrue(deckStatsToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Check that deck section is made effective even if we're currently in Main
|
// Check that deck section is made effective even if we're currently in Main
|
||||||
deckStatsToken = recognizer.recognizeLine(deckstatsCommanderRequest, DeckSection.Main);
|
deckStatsToken = recognizer.recognizeLine(deckstatsCommanderRequest, DeckSection.Main);
|
||||||
@@ -2287,6 +2355,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertNotNull(deckStatsToken.getCard());
|
assertNotNull(deckStatsToken.getCard());
|
||||||
soCard = deckStatsToken.getCard();
|
soCard = deckStatsToken.getCard();
|
||||||
assertEquals(soCard.getName(), "Sliver Overlord");
|
assertEquals(soCard.getName(), "Sliver Overlord");
|
||||||
|
assertTrue(deckStatsToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
// === Double-Sided Cards
|
// === Double-Sided Cards
|
||||||
@@ -2306,6 +2375,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard leftSideCard = cardToken.getCard();
|
PaperCard leftSideCard = cardToken.getCard();
|
||||||
assertEquals(leftSideCard.getName(), leftSideRequest);
|
assertEquals(leftSideCard.getName(), leftSideRequest);
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Check Right side first
|
// Check Right side first
|
||||||
cardToken = recognizer.recogniseCardToken(rightSideRequest, null);
|
cardToken = recognizer.recogniseCardToken(rightSideRequest, null);
|
||||||
@@ -2316,6 +2386,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard rightSideCard = cardToken.getCard();
|
PaperCard rightSideCard = cardToken.getCard();
|
||||||
assertEquals(rightSideCard.getName(), leftSideRequest); // NOTE: this is not a blunder! Back side will result in front side name
|
assertEquals(rightSideCard.getName(), leftSideRequest); // NOTE: this is not a blunder! Back side will result in front side name
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
|
|
||||||
// Check double side
|
// Check double side
|
||||||
cardToken = recognizer.recogniseCardToken(doubleSideRequest, null);
|
cardToken = recognizer.recogniseCardToken(doubleSideRequest, null);
|
||||||
@@ -2326,6 +2397,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
PaperCard doubleSideCard = cardToken.getCard();
|
PaperCard doubleSideCard = cardToken.getCard();
|
||||||
assertEquals(doubleSideCard.getName(), leftSideRequest);
|
assertEquals(doubleSideCard.getName(), leftSideRequest);
|
||||||
assertEquals(cardToken.getQuantity(), 1);
|
assertEquals(cardToken.getQuantity(), 1);
|
||||||
|
assertTrue(cardToken.cardRequestHasNoCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*=================================
|
/*=================================
|
||||||
@@ -2928,6 +3000,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertNotNull(token.getCard());
|
assertNotNull(token.getCard());
|
||||||
assertNotNull(token.getTokenSection());
|
assertNotNull(token.getTokenSection());
|
||||||
assertEquals(token.getTokenSection(), DeckSection.Sideboard);
|
assertEquals(token.getTokenSection(), DeckSection.Sideboard);
|
||||||
|
assertTrue(token.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "SB:Ancestral Recall";
|
lineRequest = "SB:Ancestral Recall";
|
||||||
token = recognizer.recognizeLine(lineRequest, null);
|
token = recognizer.recognizeLine(lineRequest, null);
|
||||||
@@ -2937,6 +3010,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertNotNull(token.getCard());
|
assertNotNull(token.getCard());
|
||||||
assertNotNull(token.getTokenSection());
|
assertNotNull(token.getTokenSection());
|
||||||
assertEquals(token.getTokenSection(), DeckSection.Sideboard);
|
assertEquals(token.getTokenSection(), DeckSection.Sideboard);
|
||||||
|
assertTrue(token.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "Ancestral Recall";
|
lineRequest = "Ancestral Recall";
|
||||||
token = recognizer.recognizeLine(lineRequest, null);
|
token = recognizer.recognizeLine(lineRequest, null);
|
||||||
@@ -2944,6 +3018,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertEquals(token.getType(), TokenType.LEGAL_CARD);
|
assertEquals(token.getType(), TokenType.LEGAL_CARD);
|
||||||
assertEquals(token.getText(), "Ancestral Recall [VMA] #1");
|
assertEquals(token.getText(), "Ancestral Recall [VMA] #1");
|
||||||
assertNotNull(token.getCard());
|
assertNotNull(token.getCard());
|
||||||
|
assertTrue(token.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "* 4 [Counterspell](http://tappedout.nethttp://tappedout.net/mtg-card/counterspell/)";
|
lineRequest = "* 4 [Counterspell](http://tappedout.nethttp://tappedout.net/mtg-card/counterspell/)";
|
||||||
token = recognizer.recognizeLine(lineRequest, null);
|
token = recognizer.recognizeLine(lineRequest, null);
|
||||||
@@ -2952,6 +3027,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
assertNotNull(token.getText());
|
assertNotNull(token.getText());
|
||||||
assertNotNull(token.getCard());
|
assertNotNull(token.getCard());
|
||||||
assertEquals(token.getQuantity(), 4);
|
assertEquals(token.getQuantity(), 4);
|
||||||
|
assertTrue(token.cardRequestHasNoCode());
|
||||||
|
|
||||||
lineRequest = "### Instant (14)";
|
lineRequest = "### Instant (14)";
|
||||||
token = recognizer.recognizeLine(lineRequest, null);
|
token = recognizer.recognizeLine(lineRequest, null);
|
||||||
@@ -2993,6 +3069,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
|
|||||||
Token cardToken = tokens.get(2);
|
Token cardToken = tokens.get(2);
|
||||||
assertTrue(cardToken.isCardToken());
|
assertTrue(cardToken.isCardToken());
|
||||||
assertNotNull(cardToken.getCard());
|
assertNotNull(cardToken.getCard());
|
||||||
|
assertFalse(cardToken.cardRequestHasNoCode());
|
||||||
assertEquals(cardToken.getQuantity(), 4);
|
assertEquals(cardToken.getQuantity(), 4);
|
||||||
assertEquals(cardToken.getCard().getName(), "Incinerate");
|
assertEquals(cardToken.getCard().getName(), "Incinerate");
|
||||||
assertEquals(cardToken.getCard().getEdition(), "ICE");
|
assertEquals(cardToken.getCard().getEdition(), "ICE");
|
||||||
|
|||||||
Reference in New Issue
Block a user