Recognise new Dungeon DeckSection Placeholder, and improved support to .dec files

.Dec files have collector nr//art-index as separated by a Pipe.
RegExps with collector numbers have been extended to further support decks in this format (with simply copy & paste the listing).
Tests updated/added to verify the new regexp & behaviour.
This commit is contained in:
leriomaggio
2021-10-23 21:45:04 +02:00
parent ed19bf0a22
commit 9f97b34a3a
2 changed files with 30 additions and 6 deletions

View File

@@ -225,8 +225,8 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
}
@Test void testMatchDeckSectionNames(){
String[] dckSections = new String[] {"Main", "main", "Mainboard",
"Sideboard", "Side", "Schemes", "Avatar", "avatar", "Commander", "Conspiracy", "card", "Planes"};
String[] dckSections = new String[] {"Main", "main", "Mainboard", "Sideboard", "Side", "Schemes", "Avatar",
"avatar", "Commander", "Conspiracy", "card", "Planes", "Dungeon"};
for (String section : dckSections)
assertTrue(DeckRecognizer.isDeckSectionName(section), "Unrecognised Deck Section: " + section);
@@ -240,7 +240,7 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
for (String entry: deckSectionEntriesFoundInMDExportFromTappedOut)
assertTrue(DeckRecognizer.isDeckSectionName(entry), "Fail on "+entry);
String[] deckSectionEntriesFoundInDCKFormat = new String[] {"[Main]", "[Sideboard]"};
String[] deckSectionEntriesFoundInDCKFormat = new String[] {"[Main]", "[Sideboard]", "[Dungeon]"};
for (String entry: deckSectionEntriesFoundInDCKFormat)
assertTrue(DeckRecognizer.isDeckSectionName(entry), "Fail on "+entry);
}
@@ -906,6 +906,22 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
assertEquals(matcher.group(DeckRecognizer.REGRP_CARD), "Power Sink "); // TRIM
assertEquals(matcher.group(DeckRecognizer.REGRP_SET), "TMP");
assertEquals(matcher.group(DeckRecognizer.REGRP_COLLNR), "78");
validRequest = "Power Sink (TMP)|78"; // Pipe to separate collector number (as in .Dec files)
matcher = DeckRecognizer.CARD_SET_COLLNO_PATTERN.matcher(validRequest);
assertTrue(matcher.matches());
assertNull(matcher.group(DeckRecognizer.REGRP_CARDNO));
assertEquals(matcher.group(DeckRecognizer.REGRP_CARD), "Power Sink "); // TRIM
assertEquals(matcher.group(DeckRecognizer.REGRP_SET), "TMP");
assertEquals(matcher.group(DeckRecognizer.REGRP_COLLNR), "78");
validRequest = "Power Sink|TMP|78"; // .Dec file export entry format
matcher = DeckRecognizer.CARD_SET_COLLNO_PATTERN.matcher(validRequest);
assertTrue(matcher.matches());
assertNull(matcher.group(DeckRecognizer.REGRP_CARDNO));
assertEquals(matcher.group(DeckRecognizer.REGRP_CARD), "Power Sink"); // TRIM
assertEquals(matcher.group(DeckRecognizer.REGRP_SET), "TMP");
assertEquals(matcher.group(DeckRecognizer.REGRP_COLLNR), "78");
}
@Test void testInvalidMatchFullCardSetRequest(){
@@ -997,6 +1013,14 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
assertEquals(matcher.group(DeckRecognizer.REGRP_CARD), "Power Sink");
assertEquals(matcher.group(DeckRecognizer.REGRP_SET), "TMP");
assertEquals(matcher.group(DeckRecognizer.REGRP_COLLNR), "78");
validRequest = "(TMP} Power Sink|78"; // Pipe to separate collector number as in .Dec format
matcher = DeckRecognizer.SET_CARD_COLLNO_PATTERN.matcher(validRequest);
assertTrue(matcher.matches());
assertNull(matcher.group(DeckRecognizer.REGRP_CARDNO));
assertEquals(matcher.group(DeckRecognizer.REGRP_CARD), "Power Sink");
assertEquals(matcher.group(DeckRecognizer.REGRP_SET), "TMP");
assertEquals(matcher.group(DeckRecognizer.REGRP_COLLNR), "78");
}
@Test void testInvalidMatchFullSetCardRequest(){