summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWillemDalton <willemhdalton@gmail.com>2025-11-14 13:36:42 -0500
committerWillemDalton <willemhdalton@gmail.com>2025-11-14 13:36:42 -0500
commitc052f5cb104ff5d4599161cf5fad95545c3be957 (patch)
treee5fa1abbf7bdc00511535561bc814f0203dd8068 /src
parentd2b35ee84843dc74afce87c3fb8b7e5a53cd56a7 (diff)
downloaddesignproject-design-6-c052f5cb104ff5d4599161cf5fad95545c3be957.tar.gz
designproject-design-6-c052f5cb104ff5d4599161cf5fad95545c3be957.tar.bz2
designproject-design-6-c052f5cb104ff5d4599161cf5fad95545c3be957.zip
progress on league database testing
Diffstat (limited to '')
-rw-r--r--src/main/java/design/persistence/JSONLeagueDatabase.java6
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java1
-rw-r--r--src/test/java/design/persistence/JSONLeagueDatabaseTest.java67
-rw-r--r--src/test/java/design/persistence/JSONPersonalDatabaseTest.java1
4 files changed, 74 insertions, 1 deletions
diff --git a/src/main/java/design/persistence/JSONLeagueDatabase.java b/src/main/java/design/persistence/JSONLeagueDatabase.java
index 8a55065..42fa000 100644
--- a/src/main/java/design/persistence/JSONLeagueDatabase.java
+++ b/src/main/java/design/persistence/JSONLeagueDatabase.java
@@ -30,6 +30,12 @@ public class JSONLeagueDatabase implements LeagueDatabase {
return INSTANCE;
}
+ // static instance strictly for testing, to not add data to leaguedb.json
+ static JSONLeagueDatabase testInstance(String filename) {
+ INSTANCE = new JSONLeagueDatabase(filename);
+ return INSTANCE;
+ }
+
private final Map<Integer, League> cache;
private final ObjectMapper mapper;
private final File file;
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index ed83ef6..7f55f78 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -29,6 +29,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
return INSTANCE;
}
+ // static instance strictly for testing, to not add data to personaldb.json
static JSONPersonalDatabase testInstance(String filename) {
INSTANCE = new JSONPersonalDatabase(filename);
return INSTANCE;
diff --git a/src/test/java/design/persistence/JSONLeagueDatabaseTest.java b/src/test/java/design/persistence/JSONLeagueDatabaseTest.java
new file mode 100644
index 0000000..1dcdbb1
--- /dev/null
+++ b/src/test/java/design/persistence/JSONLeagueDatabaseTest.java
@@ -0,0 +1,67 @@
+package design.persistence;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Date;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+import design.model.League;
+import design.model.StrokeLeague;
+import design.model.Golfer;
+
+/** Unit Tests for the JSON Personal Database Singleton
+ * @author Willem Dalton
+ **/
+@Tag("Persistence-tier")
+public class JSONLeagueDatabaseTest {
+ Path tempDB;
+
+ @BeforeEach
+ void clearDB() throws IOException
+ {
+ tempDB = Files.createTempFile("testleaguedb", ".json");
+ Files.writeString(tempDB, "[]");
+ JSONLeagueDatabase.testInstance(tempDB.toString());
+ }
+
+ @Test
+ void testInstance()
+ {
+ JSONLeagueDatabase instance = JSONLeagueDatabase.instance(); // makes new instance
+ assertNotNull(instance);
+ JSONLeagueDatabase instance2 = JSONLeagueDatabase.instance(); // instance already exists
+ assertNotNull(instance2);
+ }
+
+ @Test
+ void testAddRemove() throws IOException
+ {
+ JSONLeagueDatabase instance = JSONLeagueDatabase.testInstance(tempDB.toString()); // makes new instance
+ Golfer testOwner = new Golfer("Jamie Doe", "joe_cool", "12345");
+ League testLeague = new StrokeLeague("The A Team", new Date(1234), new Date(123), new Date(12345), testOwner);
+ instance.addLeague(testLeague);
+ assertEquals(1, instance.getLeagues().length);
+ assertEquals(testLeague, instance.getLeagues()[0]);
+ instance.removeLeague(testLeague);
+ assertEquals(0, instance.getLeagues().length);
+ }
+
+ // @Test
+ // void testUpdateGolfer() throws IOException
+ // {
+ // JSONLeagueDatabase instance = JSONLeagueDatabase.testInstance(tempDB.toString()); // makes new instance
+ // Golfer testGolfer = new Golfer("Jamie Doe", "joe_cool", "12345");
+ // instance.addGolfer(testGolfer);
+ // testGolfer.setUsername("joe_super_cool");
+ // instance.updateGolfer(testGolfer);
+ // assertEquals(testGolfer, instance.getGolfer("joe_super_cool"));
+ // }
+}
diff --git a/src/test/java/design/persistence/JSONPersonalDatabaseTest.java b/src/test/java/design/persistence/JSONPersonalDatabaseTest.java
index 55270c4..21cc366 100644
--- a/src/test/java/design/persistence/JSONPersonalDatabaseTest.java
+++ b/src/test/java/design/persistence/JSONPersonalDatabaseTest.java
@@ -1,7 +1,6 @@
package design.persistence;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.nio.file.Files;