diff --git a/src/test/java/cz/muni/fi/pv168/project/db/categorytime/CategoryTimeDaoTest.java b/src/test/java/cz/muni/fi/pv168/project/db/categorytime/CategoryTimeDaoTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f87b3a7e60234154c985ce2b98ff586ff5df3d33 --- /dev/null +++ b/src/test/java/cz/muni/fi/pv168/project/db/categorytime/CategoryTimeDaoTest.java @@ -0,0 +1,93 @@ +package cz.muni.fi.pv168.project.db.categorytime; + +import cz.muni.fi.pv168.project.data.category.Category; +import cz.muni.fi.pv168.project.data.category.CategoryTime; +import cz.muni.fi.pv168.project.db.category.CategoryDao; +import cz.muni.fi.pv168.project.db.category.CategoryManager; +import org.apache.derby.jdbc.EmbeddedDataSource; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.awt.Color; +import java.sql.SQLException; +import java.time.LocalDate; +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; + +class CategoryTimeDaoTest { + + private static EmbeddedDataSource dataSource; + private static CategoryManager categoryManager; + private CategoryTimeDao categoryTimeDao; + private CategoryTimeManager categoryTimeManager; + private CategoryDao categoryDao; + + @BeforeAll + static void initTestDataSource() throws SQLException { + dataSource = new EmbeddedDataSource(); + dataSource.setDatabaseName("memory:todo-test"); + dataSource.setCreateDatabase("create"); + } + + @BeforeEach + void createCategoryTimeDao() throws SQLException { + categoryDao = new CategoryDao(dataSource, categoryTimeDao); + categoryManager = new CategoryManager(dataSource); + + categoryTimeDao = new CategoryTimeDao(dataSource); + categoryTimeManager = new CategoryTimeManager(dataSource); + } + + @AfterEach + void CategoryTimeDaoCleanUp() { + categoryTimeManager.dropTable(); + categoryManager.dropTable(); + } + + @Test + void getAllEntitiesForTask_ExistingTaskWithEntities_ReturnsAllEntities() { + var category = new Category("Work", Color.GREEN); + categoryDao.add(category); + + var categoryTimes = Arrays.asList( + new CategoryTime(LocalDate.EPOCH, 10L, category.getId()), + new CategoryTime(LocalDate.EPOCH, 5L, category.getId()), + new CategoryTime(LocalDate.EPOCH, 999L, category.getId())); + for (var categoryTime : + categoryTimes) { + categoryTimeDao.addEntityFor(category.getId(), categoryTime); + } + assertThat(categoryTimeDao.getAllEntitiesFor(category.getId())).isEqualTo(categoryTimes); + } + + @Test + void getAllEntitiesFor() { + } + + @Test + void deleteAllEntitiesFor() { + } + + @Test + void deleteAllEntitiesForTask() { + } + + @Test + void addEntityFor() { + } + + @Test + void update() { + } + + @Test + void delete() { + } + + @Test + void fetch() { + } +} \ No newline at end of file