mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
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:
@@ -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(){
|
||||
|
||||
Reference in New Issue
Block a user