Adding support for deck name in Forge Deck Format

Signed-off-by: leriomaggio <valeriomaggio@gmail.com>
This commit is contained in:
leriomaggio
2021-09-07 00:35:08 +01:00
parent dabb40714e
commit 84763e5dbc
2 changed files with 9 additions and 1 deletions

View File

@@ -153,7 +153,7 @@ public class DeckRecognizer {
// Core Matching Patterns (initialised in Constructor) // Core Matching Patterns (initialised in Constructor)
public static final String REGRP_DECKNAME = "deckName"; public static final String REGRP_DECKNAME = "deckName";
public static final String REX_DECK_NAME = public static final String REX_DECK_NAME =
String.format("^(//\\s*)?(?<pre>(deck|name))(\\:|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s]+)\\s*(.*)$", String.format("^(//\\s*)?(?<pre>(deck|name))(\\:|=|\\s)\\s*(?<%s>[a-zA-Z0-9',\\/\\-\\s\\(\\)]+)\\s*(.*)$",
REGRP_DECKNAME); REGRP_DECKNAME);
public static final Pattern DECK_NAME_PATTERN = Pattern.compile(REX_DECK_NAME, Pattern.CASE_INSENSITIVE); public static final Pattern DECK_NAME_PATTERN = Pattern.compile(REX_DECK_NAME, Pattern.CASE_INSENSITIVE);

View File

@@ -168,6 +168,14 @@ public class DeckRecognizerTest extends ForgeCardMockTestCase {
assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Red Green Aggro"); assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Red Green Aggro");
assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Red Green Aggro"); assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Red Green Aggro");
// Forge deck format
matchingDeckName = "Name=Sliver Overlord (Commander)";
deckNameMatcher = deckNamePattern.matcher(matchingDeckName);
assertTrue(deckNameMatcher.matches());
assertTrue(DeckRecognizer.isDeckName(matchingDeckName));
assertEquals(deckNameMatcher.group(DeckRecognizer.REGRP_DECKNAME), "Sliver Overlord (Commander)");
assertEquals(DeckRecognizer.getDeckName(matchingDeckName), "Sliver Overlord (Commander)");
// Failing Cases // Failing Cases
matchingDeckName = ":Red Green Aggro"; matchingDeckName = ":Red Green Aggro";
deckNameMatcher = deckNamePattern.matcher(matchingDeckName); deckNameMatcher = deckNamePattern.matcher(matchingDeckName);