summaryrefslogtreecommitdiff
path: root/src/test/java/design/persistence
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/design/persistence')
-rw-r--r--src/test/java/design/persistence/CSVMasterDatabaseTest.java33
-rw-r--r--src/test/java/design/persistence/JSONLeagueDatabaseTest.java75
-rw-r--r--src/test/java/design/persistence/JSONPersonalDatabaseTest.java62
3 files changed, 170 insertions, 0 deletions
diff --git a/src/test/java/design/persistence/CSVMasterDatabaseTest.java b/src/test/java/design/persistence/CSVMasterDatabaseTest.java
new file mode 100644
index 0000000..4c78800
--- /dev/null
+++ b/src/test/java/design/persistence/CSVMasterDatabaseTest.java
@@ -0,0 +1,33 @@
+package design.persistence;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+/** Unit Tests for the CSV Master Database Singleton class.
+ * @author Willem Dalton
+ **/
+@Tag("Persistence-tier")
+public class CSVMasterDatabaseTest {
+
+ @Test
+ void testInstance()
+ {
+ CSVMasterDatabase instance = CSVMasterDatabase.instance();
+ assertNotNull(instance);
+ CSVMasterDatabase instance2 = CSVMasterDatabase.instance();
+ assertNotNull(instance2);
+ }
+
+ @Test
+ void testGetCourses()
+ {
+ CSVMasterDatabase instance = CSVMasterDatabase.instance();
+ String expectedResult = "Mountain View Links (Mobile, AL) | Holes: 18 | Total Par: 70 | Difficulty: 73.0";
+ assertEquals(1000, instance.getCourses().length);
+ assertNotNull(instance.getCourseList());
+ assertEquals(expectedResult, instance.getCourse(0).toString());
+ }
+}
diff --git a/src/test/java/design/persistence/JSONLeagueDatabaseTest.java b/src/test/java/design/persistence/JSONLeagueDatabaseTest.java
new file mode 100644
index 0000000..b27555c
--- /dev/null
+++ b/src/test/java/design/persistence/JSONLeagueDatabaseTest.java
@@ -0,0 +1,75 @@
+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.time.LocalDateTime;
+import java.util.ArrayList;
+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.Course;
+import design.model.Golfer;
+import design.model.Hole;
+import design.model.Match;
+
+/** 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 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);
+ Course testCourse = new Course(0, "Rolling Waves", 62, "Rochester, NY", 9, 20, new ArrayList<Hole>());
+ Match testMatch = new Match(testCourse, new Date(123), LocalDateTime.now(), 3);
+ testLeague.addMatchToSchedule(testMatch);
+ instance.updateLeague(testLeague);
+ assertEquals(testLeague, instance.getLeague(testLeague.getId()));
+ }
+}
diff --git a/src/test/java/design/persistence/JSONPersonalDatabaseTest.java b/src/test/java/design/persistence/JSONPersonalDatabaseTest.java
new file mode 100644
index 0000000..21cc366
--- /dev/null
+++ b/src/test/java/design/persistence/JSONPersonalDatabaseTest.java
@@ -0,0 +1,62 @@
+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 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.Golfer;
+
+/** Unit Tests for the JSON Personal Database Singleton
+ * @author Willem Dalton
+ **/
+@Tag("Persistence-tier")
+public class JSONPersonalDatabaseTest {
+ Path tempDB;
+
+ @BeforeEach
+ void clearDB() throws IOException
+ {
+ tempDB = Files.createTempFile("testdb", ".json");
+ Files.writeString(tempDB, "[]");
+ JSONPersonalDatabase.testInstance(tempDB.toString());
+ }
+
+ @Test
+ void testInstance()
+ {
+ JSONPersonalDatabase instance = JSONPersonalDatabase.instance(); // makes new instance
+ assertNotNull(instance);
+ JSONPersonalDatabase instance2 = JSONPersonalDatabase.instance(); // instance already exists
+ assertNotNull(instance2);
+ }
+
+ @Test
+ void testAddRemove() throws IOException
+ {
+ JSONPersonalDatabase instance = JSONPersonalDatabase.testInstance(tempDB.toString()); // makes new instance
+ Golfer testGolfer = new Golfer("Jamie Doe", "joe_cool", "12345");
+ instance.addGolfer(testGolfer);
+ assertEquals(testGolfer, instance.getGolfer("joe_cool"));
+ instance.removeGolfer(testGolfer);
+ assertEquals(null, instance.getGolfer("joe_cool"));
+ }
+
+ @Test
+ void testUpdateGolfer() throws IOException
+ {
+ JSONPersonalDatabase instance = JSONPersonalDatabase.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"));
+ }
+}