From e273b10ecc0b8c839d38901306a57e1aa998fbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20Mozol=C3=A1k?= Date: Sun, 27 Mar 2022 18:55:19 +0200 Subject: [PATCH 1/2] Basic report tests --- .../secretservice/dao/ReportDaoTests.java | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/test/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoTests.java 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 00000000..f48772ea --- /dev/null +++ b/src/test/java/cz/fi/muni/pa165/seminar4/group7/secretservice/dao/ReportDaoTests.java @@ -0,0 +1,108 @@ +package cz.fi.muni.pa165.seminar4.group7.secretservice.dao; + +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); + } +} -- GitLab From f52089b9ab0328d731f701e06a8db4ef71fd0cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20Mozol=C3=A1k?= Date: Sun, 27 Mar 2022 19:18:42 +0200 Subject: [PATCH 2/2] Added report agent assignent test --- .../secretservice/entity/AgentAssignment.java | 6 ++++++ .../group7/secretservice/dao/ReportDaoTests.java | 13 +++++++++++++ 2 files changed, 19 insertions(+) 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 7f4a76ec..ceca055d 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 index f48772ea..2a70e030 100644 --- 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 @@ -1,5 +1,6 @@ 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; @@ -105,4 +106,16 @@ class ReportDaoTests { 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()); + } } -- GitLab