diff options
Diffstat (limited to 'test/eu/equalparts/cardbase/CardbaseTest.java')
-rw-r--r-- | test/eu/equalparts/cardbase/CardbaseTest.java | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/test/eu/equalparts/cardbase/CardbaseTest.java b/test/eu/equalparts/cardbase/CardbaseTest.java index 48a0bb4..82b05ba 100644 --- a/test/eu/equalparts/cardbase/CardbaseTest.java +++ b/test/eu/equalparts/cardbase/CardbaseTest.java @@ -3,6 +3,7 @@ package eu.equalparts.cardbase; import static org.junit.Assert.*; import java.io.File; +import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.util.Map; @@ -13,6 +14,7 @@ import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.rules.TemporaryFolder; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; @@ -21,8 +23,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import eu.equalparts.cardbase.Cardbase; import eu.equalparts.cardbase.cards.Card; -import eu.equalparts.cardbase.testutils.TestFile; -import eu.equalparts.cardbase.testutils.TestUtils; /** * TODO deck functionality needs to be built into these. @@ -38,6 +38,9 @@ public class CardbaseTest { @Rule public final ExpectedException exception = ExpectedException.none(); + @Rule + public final TemporaryFolder tempFolder = new TemporaryFolder(); + @BeforeClass public static void setUpBeforeClass() throws Exception { ObjectMapper mapper = new ObjectMapper(); @@ -63,7 +66,7 @@ public class CardbaseTest { @Test public void fileCardbaseIsInitialised() throws Exception { - uut = new Cardbase(new File(getClass().getResource("/testbase.cb").toURI())); + uut = new Cardbase(new File(getClass().getResource("/testbase.cb").getFile())); assertEquals("Card collection contains the wrong number of card entries.", 6, uut.getCards().size()); @@ -102,20 +105,33 @@ public class CardbaseTest { @Test public void loadFileDoesNotExist() throws Exception { + File notAFile = tempFolder.newFile(); + tempFolder.delete(); + exception.expect(IOException.class); - uut = new Cardbase(new File("not a file")); + uut = new Cardbase(notAFile); } @Test public void loadFileHasWrongStructure() throws Exception { + File wrongStructure = tempFolder.newFile("wrongStructure.json"); + try (FileWriter writer = new FileWriter(wrongStructure)) { + writer.write("{\"field1\":\"content\",\"field2\":50,\"list\":[10,20,30]}"); + } + exception.expect(JsonMappingException.class); - uut = new Cardbase(new File(getClass().getResource("/testcards.json").toURI())); + uut = new Cardbase(wrongStructure); } @Test public void loadFileIsNotJson() throws Exception { + File notJson = tempFolder.newFile("wrongStructure.json"); + try (FileWriter writer = new FileWriter(notJson)) { + writer.write("This is a file which does not contain valid JSON."); + } + exception.expect(JsonParseException.class); - uut = new Cardbase(new File(getClass().getResource("/notjson.txt").toURI())); + uut = new Cardbase(notJson); } /*********************************************************************************** @@ -123,20 +139,19 @@ public class CardbaseTest { ***********************************************************************************/ @Test public void cardbaseIsSaved() throws Exception { - try (TestFile testFile = TestUtils.createValidTestFile("savetest.cb")) { - uut.writeCollection(testFile); - uut = new Cardbase(testFile); - assertEquals("Cardbase should contain no cards.", 0, uut.getCards().size()); + File testFile = tempFolder.newFile("saveTest.cb"); + uut.writeCollection(testFile); + uut = new Cardbase(testFile); + assertEquals("Cardbase should contain no cards.", 0, uut.getCards().size()); - uut.addCard(testCard); + uut.addCard(testCard); - uut.writeCollection(testFile); - uut = new Cardbase(testFile); - assertEquals("Cardbase should contain one card.", 1, uut.getCards().size()); - Card card = uut.getCard("M15", "281"); - assertNotNull("Cardbase should contain a Shivan Dragon.", card); - assertEquals("Cardbase should contain only one Shivan Dragon", new Integer(1), card.count); - } + uut.writeCollection(testFile); + uut = new Cardbase(testFile); + assertEquals("Cardbase should contain one card.", 1, uut.getCards().size()); + Card card = uut.getCard("M15", "281"); + assertNotNull("Cardbase should contain a Shivan Dragon.", card); + assertEquals("Cardbase should contain only one Shivan Dragon.", new Integer(1), card.count); } /* @@ -144,11 +159,10 @@ public class CardbaseTest { */ @Test public void saveFileCannotBeWrittenTo() throws Exception { - try (TestFile testFile = TestUtils.createValidTestFile("savetest.cb")) { - testFile.setWritable(false); - exception.expect(IOException.class); - uut.writeCollection(testFile); - } + File testFile = tempFolder.newFile("saveTest.cb"); + testFile.setWritable(false); + exception.expect(IOException.class); + uut.writeCollection(testFile); } @Test @@ -267,7 +281,7 @@ public class CardbaseTest { @Test public void correctCardCollectionIsReturnedByGetter() throws Exception { - uut = new Cardbase(new File(getClass().getResource("/testbase.cb").toURI())); + uut = new Cardbase(new File(getClass().getResource("/testbase.cb").getFile())); Map<Integer, Card> cards = new ObjectMapper().readValue(getClass().getResourceAsStream("/testbase.cb"), new TypeReference<Map<Integer, Card>>() {}); assertTrue("Not all cards were returned by the getter.", uut.getCards().containsAll(cards.values())); |