diff --git a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java index 7f4a76eca82d8a6b1ab1e6ccad46e4c72da59592..ceca055d331419addb6f218777d5a407e7228741 100644 --- a/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java +++ b/src/main/java/cz/fi/muni/pa165/seminar4/group7/secretservice/entity/AgentAssignment.java @@ -31,6 +31,7 @@ public class AgentAssignment { @OneToOne @JoinColumn(name = "report_id") + @Setter(AccessLevel.NONE) private Report report; @ManyToOne @@ -44,6 +45,11 @@ public class AgentAssignment { @Setter(AccessLevel.NONE) private Set performanceEvaluations = new HashSet<>(); + public void setReport(Report report) { + this.report = report; + report.setAgentAssignment(this); + } + public void addPerformanceEvaluation(PerformanceEvaluation performanceEvaluation) { performanceEvaluations.add(performanceEvaluation); } diff --git a/src/test/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoTests.java b/src/test/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoTests.java new file mode 100644 index 0000000000000000000000000000000000000000..2a70e03039e2a820cae3966f44ad076e91482fa8 --- /dev/null +++ b/src/test/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoTests.java @@ -0,0 +1,121 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; + +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.AgentAssignment; +import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Report; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import javax.transaction.Transactional; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * @author Milan Mozolak + */ +@SpringBootTest +@Transactional +class ReportDaoTests { + + @Autowired + private ReportDao reportDao; + + @BeforeEach + private void reset() { + reportDao.deleteAll(); + } + + private Report createNewReport() { + return new Report().setReport("Test"); + } + + @Test + void create() { + assertThat(reportDao.findAll()).isEmpty(); + var report = createNewReport(); + + reportDao.save(report); + assertThat(reportDao.findAll()).hasSize(1); + } + + @Test + void findByIdExisting() { + var report = createNewReport(); + reportDao.save(report); + + var find = reportDao.findById(report.getId()); + assertThat(find).isPresent(); + } + + @Test + void findByIdNonExisting() { + assertThat(reportDao.findAll()).isEmpty(); + + var find = reportDao.findById(1L); + assertThat(find).isEmpty(); + } + + @Test + void findAll() { + for (int i = 1; i < 10; i++) { + reportDao.save(createNewReport()); + assertThat(reportDao.findAll()).hasSize(i); + } + } + + @Test + void update() { + var r1 = createNewReport(); + reportDao.save(r1); + var r2 = reportDao.findById(r1.getId()); + assertThat(r2).isNotEmpty(); + assertEquals(r1.getReport(), r2.get().getReport()); + + r1.setReport("Report 2"); + reportDao.save(r1); + + var r3 = reportDao.findById(r1.getId()); + assertThat(r3).isNotEmpty(); + assertEquals(r1.getReport(), r3.get().getReport()); + assertEquals(r1.getReport(), r2.get().getReport()); + } + + @Test + void delete() { + var report = createNewReport(); + + reportDao.save(report); + assertThat(reportDao.findAll()).hasSize(1); + + reportDao.delete(report); + assertThat(reportDao.findAll()).isEmpty(); + } + + @Test + void createDuplicate() { + var report = createNewReport(); + reportDao.save(report); + assertThat(reportDao.findAll()).hasSize(1); + + var report2 = reportDao.findById(report.getId()); + assertThat(report2).isPresent(); + reportDao.save(report2.get()); + + assertEquals(report.getId(), report2.get().getId()); + assertThat(reportDao.findAll()).hasSize(1); + } + + @Test + void agentAssignment() { + var assignment = new AgentAssignment(); + var report = createNewReport(); + assignment.setReport(report); + reportDao.save(report); + + var report2 = reportDao.findById(report.getId()); + assertThat(report2).isPresent(); + assertEquals(assignment, report2.get().getAgentAssignment()); + } +}