aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/test/java/com/ufund
diff options
context:
space:
mode:
Diffstat (limited to 'ufund-api/src/test/java/com/ufund')
-rw-r--r--ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDaoTest.java108
1 files changed, 108 insertions, 0 deletions
diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDaoTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDaoTest.java
new file mode 100644
index 0000000..8aa6fe0
--- /dev/null
+++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDaoTest.java
@@ -0,0 +1,108 @@
+package com.ufund.api.ufundapi.persistence;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ufund.api.ufundapi.model.Need;
+import com.ufund.api.ufundapi.model.User;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+import com.ufund.api.ufundapi.model.Need.GoalType;
+
+@Tag("Persistence-tier")
+public class CupboardFileDaoTest {
+ CupboardFileDao cupboardFileDao;
+ Need[] testNeeds;
+ ObjectMapper mockObjectMapper;
+
+ @BeforeEach
+ public void setupCupboardFileDao() throws IOException {
+ mockObjectMapper = mock(ObjectMapper.class);
+ testNeeds = new Need[3];
+ testNeeds[0] = new Need("one", 0, 100, Need.GoalType.MONETARY);
+ testNeeds[1] = new Need("two", 1, 100, Need.GoalType.MONETARY);
+ testNeeds[2] = new Need("three", 2, 100, Need.GoalType.MONETARY);
+ // When the object mapper is supposed to read from the file
+ // the mock object mapper will return the hero array above
+ when(mockObjectMapper
+ .readValue(new File("doesnt_matter.txt"),Need[].class))
+ .thenReturn(testNeeds);
+ cupboardFileDao = new CupboardFileDao("doesnt_matter.txt",mockObjectMapper);
+ }
+
+ @Test
+ public void GetNeedsTest() throws IOException {
+ Need[] needs = cupboardFileDao.getNeeds();
+ assertEquals(needs.length,testNeeds.length);
+ assertEquals(needs[0].getName(), testNeeds[0].getName());
+ }
+
+ @Test
+ public void GetNeedTest() throws IOException {
+ Need need1 = cupboardFileDao.getNeed(0);
+
+ assertEquals(testNeeds[0], need1);
+ }
+
+ @Test
+ public void Fet() throws IOException {
+ String targetName1 = "one";
+ String targetName2 = "two";
+
+ Need need1 = cupboardFileDao.findNeeds(targetName1)[0];
+ Need need2 = cupboardFileDao.findNeeds(targetName2)[0];
+
+ assertEquals(testNeeds[0], need1);
+ assertEquals(testNeeds[1], need2);
+ }
+
+ @Test
+ public void CreateNeedTest() throws IOException {
+ Need newNeed = new Need("sea urchin hats", 3, 100, GoalType.PHYSICAL);
+
+
+ Need actualNeed = cupboardFileDao.createNeed(newNeed);
+
+ assertNotNull(actualNeed);
+
+ assertEquals(actualNeed.getName(), newNeed.getName());
+ }
+
+ @Test
+ public void DeleteNeedTest() throws IOException {
+ Need undeletedNeed = cupboardFileDao.getNeed(0);
+ assertNotNull(undeletedNeed);
+
+ boolean isDeleted = cupboardFileDao.deleteNeed(0);
+ assertTrue(isDeleted);
+
+ Need deletedNeed = cupboardFileDao.getNeed(0);
+ assertNull(deletedNeed);
+ }
+
+ @Test
+ public void UpdateNeedTest() throws IOException {
+ Need[] needs = cupboardFileDao.getNeeds();
+ Need unupdatedNeed = needs[needs.length - 1];
+ assertNotNull(unupdatedNeed);
+
+ Need updatedNeed = new Need("sequin sea urchin hats", 2, 100, GoalType.PHYSICAL);
+
+ Need actualNeed = cupboardFileDao.updateNeed(updatedNeed);
+ assertEquals(actualNeed, updatedNeed);
+ assertNotEquals(actualNeed, unupdatedNeed);
+ }
+
+}