diff options
Diffstat (limited to 'ufund-api/src/test/java/com/ufund/api')
| -rw-r--r-- | ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDaoTest.java | 108 | 
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); +	} + +}  | 
