mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
add importer for o8d and some more decks to test.
This commit is contained in:
parent
5bf748e2b5
commit
aac3e3fdc1
17 changed files with 387 additions and 79 deletions
|
|
@ -8,14 +8,14 @@ import mage.cards.decks.DeckCardLists;
|
|||
|
||||
public class CodDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup()
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup(false)
|
||||
.addCard("Forest")
|
||||
.addCard("Razorverge Thicket")
|
||||
.addCard("Avacyn's Pilgrim")
|
||||
.addCard("War Priest of Thune");
|
||||
|
||||
@Test
|
||||
public void testImportCod() {
|
||||
public void testImport() {
|
||||
CodDeckImporter importer = new CodDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
|
|
@ -24,7 +24,7 @@ public class CodDeckImportTest {
|
|||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/testdeck.cod", errors);
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.cod", errors);
|
||||
assertEquals("Deck Name", deck.getName());
|
||||
|
||||
TestDeckChecker.checker()
|
||||
|
|
|
|||
|
|
@ -8,28 +8,7 @@ import mage.cards.decks.DeckCardLists;
|
|||
|
||||
public class DecDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup()
|
||||
.addCard("Masticore")
|
||||
.addCard("Metalworker")
|
||||
.addCard("Phyrexian Colossus")
|
||||
.addCard("Crumbling Sanctuary")
|
||||
.addCard("Grim Monolith")
|
||||
.addCard("Mishra's Helix")
|
||||
.addCard("Phyrexian Processor")
|
||||
.addCard("Tangle Wire")
|
||||
.addCard("Thran Dynamo")
|
||||
.addCard("Voltaic Key")
|
||||
.addCard("Tinker")
|
||||
.addCard("Brainstorm")
|
||||
.addCard("Crystal Vein")
|
||||
.addCard("Island")
|
||||
.addCard("Rishadan Port")
|
||||
.addCard("Saprazzan Skerry")
|
||||
.addCard("Annul")
|
||||
.addCard("Chill")
|
||||
.addCard("Miscalculation")
|
||||
.addCard("Mishra's Helix")
|
||||
.addCard("Rising Waters");
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
|
||||
@Test
|
||||
public void testImport() {
|
||||
|
|
@ -41,7 +20,7 @@ public class DecDeckImportTest {
|
|||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/testdeck.dec", errors);
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.dec", errors);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Masticore", 4)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,26 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import mage.cards.repository.CardCriteria;
|
||||
import mage.cards.repository.CardInfo;
|
||||
|
||||
public class FakeCardLookup extends CardLookup {
|
||||
|
||||
private final Map<String, CardInfo> lookup = new HashMap<>();
|
||||
private final boolean alwaysMatches;
|
||||
|
||||
public FakeCardLookup() {
|
||||
this(true);
|
||||
}
|
||||
|
||||
public FakeCardLookup(boolean alwaysMatches) {
|
||||
this.alwaysMatches = alwaysMatches;
|
||||
}
|
||||
|
||||
public FakeCardLookup addCard(String cardName) {
|
||||
lookup.put(cardName, new CardInfo() {{
|
||||
|
|
@ -18,12 +30,26 @@ public class FakeCardLookup extends CardLookup {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Optional<CardInfo> lookupCardInfo(String name) {
|
||||
CardInfo card = lookup.get(name);
|
||||
if (card == null) {
|
||||
System.out.println("Couldn't find: " + name);
|
||||
public Optional<CardInfo> lookupCardInfo(String cardName) {
|
||||
CardInfo card = lookup.get(cardName);
|
||||
if (card != null) {
|
||||
return Optional.of(card);
|
||||
}
|
||||
return Optional.ofNullable(card);
|
||||
|
||||
if (alwaysMatches) {
|
||||
return Optional.of(new CardInfo() {{
|
||||
name = cardName;
|
||||
}});
|
||||
}
|
||||
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CardInfo> lookupCardInfo(CardCriteria criteria) {
|
||||
return lookupCardInfo(criteria.getName())
|
||||
.map(Collections::singletonList)
|
||||
.orElse(Collections.emptyList());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import mage.cards.repository.CardCriteria;
|
||||
import mage.cards.repository.CardInfo;
|
||||
|
||||
public class MwsDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
|
||||
@Test
|
||||
public void testImport() {
|
||||
MWSDeckImporter importer = new MWSDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.mwDeck", errors);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Mutavault", 4)
|
||||
.addMain("Plains", 18)
|
||||
.addMain("Daring Skyjek", 2)
|
||||
.addMain("Azorius Arrester", 4)
|
||||
.addMain("Banisher Priest", 4)
|
||||
.addMain("Boros Elite", 4)
|
||||
.addMain("Dryad Militant", 4)
|
||||
.addMain("Imposing Sovereign", 4)
|
||||
.addMain("Precinct Captain", 4)
|
||||
.addMain("Soldier of the Pantheon", 4)
|
||||
.addMain("Spear of Heliod", 3)
|
||||
.addMain("Rootborn Defenses", 1)
|
||||
.addMain("Brave the Elements", 4)
|
||||
|
||||
.addSide("Wear/Tear", 1)
|
||||
.addSide("Glare of Heresy", 2)
|
||||
.addSide("Fiendslayer Paladin", 3)
|
||||
.addSide("Riot Control", 3)
|
||||
.addSide("Ajani, Caller of the Pride", 3)
|
||||
.addSide("Rootborn Defenses", 3)
|
||||
|
||||
.verify(deck, 60, 15);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
|
||||
public class O8dDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
|
||||
@Test
|
||||
public void testImport() {
|
||||
O8dDeckImporter importer = new O8dDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.o8d", errors);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Forest", 1)
|
||||
.addSide("Island", 2)
|
||||
.verify(deck, 1, 2);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
// Deck file for Magic Workstation (http://www.magicworkstation.com)
|
||||
// NAME : WW Human
|
||||
// CREATOR : meltiin (magic-ville.com)
|
||||
// FORMAT : Standard
|
||||
4 [M14] Mutavault
|
||||
18 [UNH] Plains
|
||||
2 [GTC] Daring Skyjek
|
||||
4 [RTR] Azorius Arrester
|
||||
4 [M14] Banisher Priest
|
||||
4 [GTC] Boros Elite
|
||||
4 [RTR] Dryad Militant
|
||||
4 [M14] Imposing Sovereign
|
||||
4 [RTR] Precinct Captain
|
||||
4 [THS] Soldier of the Pantheon
|
||||
3 [THS] Spear of Heliod
|
||||
1 [RTR] Rootborn Defenses
|
||||
4 [M14] Brave the Elements
|
||||
SB: 1 [DGM] Wear/Tear
|
||||
SB: 2 [THS] Glare of Heresy
|
||||
SB: 3 [M14] Fiendslayer Paladin
|
||||
SB: 3 [DGM] Riot Control
|
||||
SB: 3 [M14] Ajani, Caller of the Pride
|
||||
SB: 3 [RTR] Rootborn Defenses
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<deck>
|
||||
<section name="Main">
|
||||
<card qty="1">Forest</card>
|
||||
</section>
|
||||
<section name="Sideboard">
|
||||
<card qty="2">Island</card>
|
||||
</section>
|
||||
</deck>
|
||||
Loading…
Add table
Add a link
Reference in a new issue