mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 21:12:04 -08:00
* GUI: added auto-fix for deck files on usage (if deck contains wrong card numbers then it will be fixed and saved automaticity);
This commit is contained in:
parent
9652d83aec
commit
c5d7a3e9f9
31 changed files with 644 additions and 567 deletions
|
|
@ -1,40 +1,39 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
|
||||
public class CodDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup(false)
|
||||
.addCard("Forest")
|
||||
.addCard("Razorverge Thicket")
|
||||
.addCard("Avacyn's Pilgrim")
|
||||
.addCard("War Priest of Thune");
|
||||
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 testImport() {
|
||||
CodDeckImporter importer = new CodDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.cod", errors);
|
||||
assertEquals("Deck Name", deck.getName());
|
||||
@Test
|
||||
public void testImport() {
|
||||
CodDeckImporter importer = new CodDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.cod", errors, false);
|
||||
assertEquals("Deck Name", deck.getName());
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Forest", 12)
|
||||
.addMain("Razorverge Thicket", 100)
|
||||
.addMain("Avacyn's Pilgrim", 1)
|
||||
.addSide("War Priest of Thune", 3)
|
||||
.verify(deck, 113, 3);
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Forest", 12)
|
||||
.addMain("Razorverge Thicket", 100)
|
||||
.addMain("Avacyn's Pilgrim", 1)
|
||||
.addSide("War Priest of Thune", 3)
|
||||
.verify(deck, 113, 3);
|
||||
|
||||
assertEquals("Could not find card: '@#$NOT A REAL CARD NAME@#$'\n", errors.toString());
|
||||
}
|
||||
assertEquals("Could not find card: '@#$NOT A REAL CARD NAME@#$'\n", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,52 +1,51 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
|
||||
public class DecDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
|
||||
@Test
|
||||
public void testImport() {
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DecDeckImporter importer = new DecDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.dec", errors);
|
||||
@Test
|
||||
public void testImport() {
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DecDeckImporter importer = new DecDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.dec", errors, false);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Masticore", 4)
|
||||
.addMain("Metalworker", 4)
|
||||
.addMain("Phyrexian Colossus", 1)
|
||||
.addMain("Crumbling Sanctuary", 1)
|
||||
.addMain("Grim Monolith", 4)
|
||||
.addMain("Mishra's Helix", 1)
|
||||
.addMain("Phyrexian Processor", 4)
|
||||
.addMain("Tangle Wire", 4)
|
||||
.addMain("Thran Dynamo", 4)
|
||||
.addMain("Voltaic Key", 4)
|
||||
.addMain("Tinker", 4)
|
||||
.addMain("Brainstorm", 4)
|
||||
.addMain("Crystal Vein", 4)
|
||||
.addMain("Island", 9)
|
||||
.addMain("Rishadan Port", 4)
|
||||
.addMain("Saprazzan Skerry", 4)
|
||||
.addSide("Annul", 4)
|
||||
.addSide("Chill", 4)
|
||||
.addSide("Miscalculation", 4)
|
||||
.addSide("Mishra's Helix", 1)
|
||||
.addSide("Rising Waters", 2)
|
||||
.verify(deck, 60, 15);
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Masticore", 4)
|
||||
.addMain("Metalworker", 4)
|
||||
.addMain("Phyrexian Colossus", 1)
|
||||
.addMain("Crumbling Sanctuary", 1)
|
||||
.addMain("Grim Monolith", 4)
|
||||
.addMain("Mishra's Helix", 1)
|
||||
.addMain("Phyrexian Processor", 4)
|
||||
.addMain("Tangle Wire", 4)
|
||||
.addMain("Thran Dynamo", 4)
|
||||
.addMain("Voltaic Key", 4)
|
||||
.addMain("Tinker", 4)
|
||||
.addMain("Brainstorm", 4)
|
||||
.addMain("Crystal Vein", 4)
|
||||
.addMain("Island", 9)
|
||||
.addMain("Rishadan Port", 4)
|
||||
.addMain("Saprazzan Skerry", 4)
|
||||
.addSide("Annul", 4)
|
||||
.addSide("Chill", 4)
|
||||
.addSide("Miscalculation", 4)
|
||||
.addSide("Mishra's Helix", 1)
|
||||
.addSide("Rising Waters", 2)
|
||||
.verify(deck, 60, 15);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package mage.cards.decks.importer;
|
|||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class DraftLogImporterTest {
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ public class DraftLogImporterTest {
|
|||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.draft", errors);
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.draft", errors, false);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Raging Ravine", 1)
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@ package mage.cards.decks.importer;
|
|||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class MtgaImporterTest {
|
||||
|
||||
|
|
@ -21,7 +19,7 @@ public class MtgaImporterTest {
|
|||
};
|
||||
StringBuilder errors = new StringBuilder();
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.mtga", errors);
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.mtga", errors, false);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Niv-Mizzet Reborn", 1)
|
||||
|
|
|
|||
|
|
@ -1,57 +1,56 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
|
||||
public class MtgjsonDeckImportTest {
|
||||
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
private static final FakeCardLookup LOOKUP = new FakeCardLookup();
|
||||
|
||||
@Test
|
||||
public void testImport() {
|
||||
StringBuilder errors = new StringBuilder();
|
||||
MtgjsonDeckImporter importer = new MtgjsonDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.json", errors);
|
||||
assertEquals("Arcane Tempo", deck.getName());
|
||||
@Test
|
||||
public void testImport() {
|
||||
StringBuilder errors = new StringBuilder();
|
||||
MtgjsonDeckImporter importer = new MtgjsonDeckImporter() {
|
||||
@Override
|
||||
public CardLookup getCardLookup() {
|
||||
return LOOKUP;
|
||||
}
|
||||
};
|
||||
DeckCardLists deck = importer.importDeck(
|
||||
"src/test/java/mage/cards/decks/importer/samples/testdeck.json", errors, false);
|
||||
assertEquals("Arcane Tempo", deck.getName());
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Goblin Electromancer", 4)
|
||||
.addMain("Crackling Drake", 4)
|
||||
.addMain("Murmuring Mystic", 2)
|
||||
.addMain("Arclight Phoenix", 1)
|
||||
.addMain("Niv-Mizzet, Parun", 2)
|
||||
.addMain("Chart a Course", 4)
|
||||
.addMain("Lava Coil", 4)
|
||||
.addMain("Beacon Bolt", 1)
|
||||
.addMain("Opt", 4)
|
||||
.addMain("Radical Idea", 4)
|
||||
.addMain("Shock", 4)
|
||||
.addMain("Dive Down", 2)
|
||||
.addMain("Blink of an Eye", 1)
|
||||
.addMain("The Mirari Conjecture", 1)
|
||||
.addMain("Sulfur Falls", 3)
|
||||
.addMain("Izzet Guildgate", 4)
|
||||
.addMain("Island", 8)
|
||||
.addMain("Mountain", 7)
|
||||
.addSide("The Mirari Conjecture", 1)
|
||||
.addSide("Beacon Bolt", 1)
|
||||
.addSide("Negate", 3)
|
||||
.addSide("Entrancing Melody", 3)
|
||||
.addSide("Fiery Cannonade", 3)
|
||||
.addSide("Shivan Fire", 2)
|
||||
.addSide("Disdainful Stroke", 2)
|
||||
.verify(deck, 60, 15);
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Goblin Electromancer", 4)
|
||||
.addMain("Crackling Drake", 4)
|
||||
.addMain("Murmuring Mystic", 2)
|
||||
.addMain("Arclight Phoenix", 1)
|
||||
.addMain("Niv-Mizzet, Parun", 2)
|
||||
.addMain("Chart a Course", 4)
|
||||
.addMain("Lava Coil", 4)
|
||||
.addMain("Beacon Bolt", 1)
|
||||
.addMain("Opt", 4)
|
||||
.addMain("Radical Idea", 4)
|
||||
.addMain("Shock", 4)
|
||||
.addMain("Dive Down", 2)
|
||||
.addMain("Blink of an Eye", 1)
|
||||
.addMain("The Mirari Conjecture", 1)
|
||||
.addMain("Sulfur Falls", 3)
|
||||
.addMain("Izzet Guildgate", 4)
|
||||
.addMain("Island", 8)
|
||||
.addMain("Mountain", 7)
|
||||
.addSide("The Mirari Conjecture", 1)
|
||||
.addSide("Beacon Bolt", 1)
|
||||
.addSide("Negate", 3)
|
||||
.addSide("Entrancing Melody", 3)
|
||||
.addSide("Fiery Cannonade", 3)
|
||||
.addSide("Shivan Fire", 2)
|
||||
.addSide("Disdainful Stroke", 2)
|
||||
.verify(deck, 60, 15);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,57 +1,51 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
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();
|
||||
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);
|
||||
@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, false);
|
||||
|
||||
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)
|
||||
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)
|
||||
.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);
|
||||
.verify(deck, 60, 15);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +1,32 @@
|
|||
package mage.cards.decks.importer;
|
||||
|
||||
import mage.cards.decks.DeckCardLists;
|
||||
import org.junit.Test;
|
||||
|
||||
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();
|
||||
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);
|
||||
@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, false);
|
||||
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Forest", 1)
|
||||
.addSide("Island", 2)
|
||||
.verify(deck, 1, 2);
|
||||
TestDeckChecker.checker()
|
||||
.addMain("Forest", 1)
|
||||
.addSide("Island", 2)
|
||||
.verify(deck, 1, 2);
|
||||
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
assertEquals("", errors.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue