diff options
-rw-r--r-- | test/eu/equalparts/cardbase/cli/CardbaseCLITest.java | 192 | ||||
-rw-r--r-- | test/shivandragon.json | 2 |
2 files changed, 84 insertions, 110 deletions
diff --git a/test/eu/equalparts/cardbase/cli/CardbaseCLITest.java b/test/eu/equalparts/cardbase/cli/CardbaseCLITest.java index 0223bfc..4524da2 100644 --- a/test/eu/equalparts/cardbase/cli/CardbaseCLITest.java +++ b/test/eu/equalparts/cardbase/cli/CardbaseCLITest.java @@ -5,7 +5,6 @@ import static org.junit.Assert.*; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.PrintStream; -import java.util.HashMap; import java.util.Scanner; import org.junit.After; @@ -17,13 +16,6 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import eu.equalparts.cardbase.cards.Card; -import eu.equalparts.cardbase.cards.FullCardSet; -import eu.equalparts.cardbase.utils.MTGUniverse; - /** * These tests do some unusual things, but I think they are reasonable. * @@ -526,7 +518,8 @@ public class CardbaseCLITest { assertEquals("LEA : Limited Edition Alpha\n" + "LEB : Limited Edition Beta\n" + "ARN : Arabian Nights\n" - + "M15 : Magic 2015 Core Set" + EOL, testOutput.toString()); + + "M15 : Magic 2015 Core Set\n" + + "FRF : Fate Reforged" + EOL, testOutput.toString()); } /* @@ -536,7 +529,7 @@ public class CardbaseCLITest { public void fallbackListIsPrintedIfListCannotBeFound() throws Exception { File noListLocation = tempFolder.newFolder(); tempFolder.delete(); - uut.mtgUniverse = new MTGUniverse("file:" + noListLocation.getCanonicalPath() + "/"); + uut = new CardbaseCLI(noListLocation.getAbsolutePath()); try { System.setOut(new PrintStream(testOutput)); @@ -545,10 +538,7 @@ public class CardbaseCLITest { System.setOut(console); } - try (Scanner scanner = new Scanner(getClass().getResourceAsStream("expectedFallbackList"))) { - String expectedOutput = scanner.useDelimiter("\\Z").next(); - assertEquals(expectedOutput + EOL, testOutput.toString()); - } + assertEquals(getFileContents("expectedFallbackList") + EOL, testOutput.toString()); } /*********************************************************************************** @@ -556,8 +546,6 @@ public class CardbaseCLITest { ***********************************************************************************/ @Test public void correctSetIsSelected() throws Exception { - uut.mtgUniverse = new MTGUniverse(getClass().getResource("").toString()); - try { System.setOut(new PrintStream(testOutput)); uut.interpretInput("set M15"); @@ -566,16 +554,13 @@ public class CardbaseCLITest { } assertEquals("Selected set: Magic 2015 Core Set." + EOL, testOutput.toString()); - assertEquals(uut.selectedSet.code, "M15"); } /* * Edge cases */ @Test - public void invalidSetIsProvided() throws Exception { - uut.mtgUniverse = new MTGUniverse(getClass().getResource("").toString()); - + public void invalidSetIsProvided() throws Exception { try { System.setOut(new PrintStream(testOutput)); uut.interpretInput("set not_a_set"); @@ -585,7 +570,6 @@ public class CardbaseCLITest { assertEquals("\"not_a_set\" does not correspond to any set (use \"sets\" to see all valid set codes)." + EOL, testOutput.toString()); - assertNull(uut.selectedSet); } /*********************************************************************************** @@ -593,9 +577,8 @@ public class CardbaseCLITest { ***********************************************************************************/ @Test public void glanceIsPrintedWithOneCard() throws Exception { - Card testCard = new ObjectMapper().readValue(getClass().getResourceAsStream("/shivandragon.json"), Card.class); - testCard.count = 1; - uut.cardbase.addCard(testCard); + uut.interpretInput("set M15"); + uut.interpretInput("281"); try { System.setOut(new PrintStream(testOutput)); @@ -638,9 +621,8 @@ public class CardbaseCLITest { ***********************************************************************************/ @Test public void perusalIsPrintedWithOneCard() throws Exception { - Card testCard = new ObjectMapper().readValue(getClass().getResourceAsStream("/shivandragon.json"), Card.class); - testCard.count = 1; - uut.cardbase.addCard(testCard); + uut.interpretInput("set M15"); + uut.interpretInput("281"); try { System.setOut(new PrintStream(testOutput)); @@ -649,9 +631,7 @@ public class CardbaseCLITest { System.setOut(console); } - try (Scanner scanner = new Scanner(getClass().getResourceAsStream("singleCardPerusal"))) { - assertEquals(scanner.useDelimiter("\\Z").next() + EOL, testOutput.toString()); - } + assertEquals(getFileContents("singleCardPerusal") + EOL, testOutput.toString()); } @Test @@ -668,7 +648,7 @@ public class CardbaseCLITest { @Test public void perusalIsPrintedWithManyCards() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); try { System.setOut(new PrintStream(testOutput)); @@ -677,18 +657,13 @@ public class CardbaseCLITest { System.setOut(console); } - try (Scanner scanner = new Scanner(getClass().getResourceAsStream("multipleCardsPerusal"))) { - assertEquals(scanner.useDelimiter("\\Z").next() + EOL, testOutput.toString()); - } + assertEquals(getFileContents("multipleCardsPerusal") + EOL, testOutput.toString()); } @Test public void specificPerusalWithValidArgumentIsPrinted() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to peruse from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); try { System.setOut(new PrintStream(testOutput)); @@ -697,9 +672,7 @@ public class CardbaseCLITest { System.setOut(console); } - try (Scanner scanner = new Scanner(getClass().getResourceAsStream("specificCardPerusal"))) { - assertEquals(scanner.useDelimiter("\\Z").next() + EOL, testOutput.toString()); - } + assertEquals(getFileContents("specificCardPerusal") + EOL, testOutput.toString()); } /* @@ -707,11 +680,7 @@ public class CardbaseCLITest { */ @Test public void specificPerusalWithInvalidArgument() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to peruse from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut.interpretInput("set FRF"); try { System.setOut(new PrintStream(testOutput)); @@ -725,9 +694,6 @@ public class CardbaseCLITest { @Test public void specificPerusalWithNoSelectedSet() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - uut.selectedSet = null; - try { System.setOut(new PrintStream(testOutput)); uut.interpretInput("peruse 100"); @@ -743,67 +709,82 @@ public class CardbaseCLITest { ***********************************************************************************/ @Test public void removeValidAmountOfExistingCard() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 129 3"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 129"); + } finally { + System.setOut(console); + } - assertEquals("Wrong number of cards was removed.", uut.cardbase.getCard("FRF", "129").count, new Integer(6)); + assertTrue("Perusal indicates wrong number of cards: " + testOutput.toString(), testOutput.toString().startsWith("5 Formless Nurturing (FRF, 129)\n")); } @Test public void removeExceedingAmountOfExistingCard() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 128 3"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 128"); + } finally { + System.setOut(console); + } - assertNull("Card was not removed successfully.", uut.cardbase.getCard("FRF", "128")); + assertEquals("Card not in cardbase." + EOL, testOutput.toString()); } @Test public void removeExactAmountOfExistingCard() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 128 1"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 128"); + } finally { + System.setOut(console); + } - assertNull("Card was not removed successfully.", uut.cardbase.getCard("FRF", "128")); + assertEquals("Card not in cardbase." + EOL, testOutput.toString()); } @Test public void removeSingleExistingCardWithoutAmount() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 128"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 128"); + } finally { + System.setOut(console); + } - assertNull("Card was not removed successfully.", uut.cardbase.getCard("FRF", "128")); + assertEquals("Card not in cardbase." + EOL, testOutput.toString()); } @Test public void removeMultipleExistingCardsWithoutAmount() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 129"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 129"); + } finally { + System.setOut(console); + } - assertEquals("Wrong number of cards was removed.", uut.cardbase.getCard("FRF", "129").count, new Integer(7)); + assertTrue("Perusal indicates wrong number of cards: " + testOutput.toString(), testOutput.toString().startsWith("7 Formless Nurturing (FRF, 129)\n")); } /* @@ -811,10 +792,7 @@ public class CardbaseCLITest { */ @Test public void removeNonExistentCardWithoutAmount() throws Exception { - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut.interpretInput("set FRF"); try { System.setOut(new PrintStream(testOutput)); @@ -828,10 +806,7 @@ public class CardbaseCLITest { @Test public void removeNonExistentCardWithAmount() throws Exception { - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut.interpretInput("set FRF"); try { System.setOut(new PrintStream(testOutput)); @@ -845,36 +820,38 @@ public class CardbaseCLITest { @Test public void removeZeroOfExistingCard() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); uut.interpretInput("remove 129 0"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 129"); + } finally { + System.setOut(console); + } - assertEquals("Card amount should not have changed.", uut.cardbase.getCard("FRF", "129").count, new Integer(8)); + assertTrue("Card amount should not have changed: " + testOutput.toString(), testOutput.toString().startsWith("8 Formless Nurturing (FRF, 129)\n")); } @Test public void removeNegativeAmountOfExistingCard() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.code = "FRF"; - uut.selectedSet = fcs; - + uut = new CardbaseCLI(TEST_REMOTE, getClass().getResource("/testbase.cb").getFile()); + uut.interpretInput("set FRF"); + uut.interpretInput("remove 129 -10"); + try { + System.setOut(new PrintStream(testOutput)); + uut.interpretInput("peruse 129"); + } finally { + System.setOut(console); + } - System.out.println(uut.cardbase.getCard("FRF", "129")); - assertEquals("Card amount should not have changed.", uut.cardbase.getCard("FRF", "129").count, new Integer(8)); + assertTrue("Card amount should not have changed: " + testOutput.toString(), testOutput.toString().startsWith("8 Formless Nurturing (FRF, 129)\n")); } @Test public void removeWithNoSetSelected() throws Exception { - uut = new CardbaseCLI(getClass().getResource("/testbase.cb").getFile()); - uut.selectedSet = null; - try { System.setOut(new PrintStream(testOutput)); uut.interpretInput("remove 100"); @@ -909,10 +886,7 @@ public class CardbaseCLITest { @Test public void invalidCommandWithSelectedSet() throws Exception { // dummy set just so the uut knows the set to remove from - FullCardSet fcs = new FullCardSet(); - fcs.name = "Fate Reforged"; - fcs.cards = new HashMap<String, Card>(); - uut.selectedSet = fcs; + uut.interpretInput("set FRF"); try { System.setOut(new PrintStream(testOutput)); diff --git a/test/shivandragon.json b/test/shivandragon.json index f846d35..345d4b1 100644 --- a/test/shivandragon.json +++ b/test/shivandragon.json @@ -1 +1 @@ -{"name":"Shivan Dragon","layout":"normal","manaCost":"{4}{R}{R}","cmc":6,"type":"Creature — Dragon","rarity":"Rare","text":"Flying (This creature can't be blocked except by creatures with flying or reach.)\n{R}: Shivan Dragon gets +1/+0 until end of turn.","flavor":"The undisputed master of the mountains of Shiv.","artist":"Donato Giancola","number":"281","power":"5","toughness":"5","loyalty":null,"multiverseid":383172,"imageName":"shivan dragon","watermark":null,"setCode":"M15","imageCode":"m15","count":1} +{"name":"Shivan Dragon","layout":"normal","manaCost":"{4}{R}{R}","cmc":6,"type":"Creature — Dragon","rarity":"Rare","text":"Flying (This creature can't be blocked except by creatures with flying or reach.)\n{R}: Shivan Dragon gets +1/+0 until end of turn.","flavor":"The undisputed master of the mountains of Shiv.","artist":"Donato Giancola","number":"281","power":"5","toughness":"5","loyalty":null,"multiverseid":383172,"imageName":"shivan dragon","watermark":null,"setCode":"M15","imageCode":"m15","count":1}
\ No newline at end of file |