|
43 | 43 | import org.hamcrest.MatcherAssert; |
44 | 44 | import org.hibernate.internal.SessionImpl; |
45 | 45 | import org.hibernate.query.spi.QueryImplementor; |
| 46 | +import org.hamcrest.MatcherAssert; |
| 47 | +import org.joda.time.DateTime; |
46 | 48 | import org.junit.Assert; |
47 | 49 | import org.junit.Rule; |
48 | 50 | import org.junit.Test; |
@@ -1552,6 +1554,56 @@ public void testCreateCaseWithoutUuid() { |
1552 | 1554 | MatcherAssert.assertThat(savedCaze.getEpiData().getExposures().get(0).getUuid(), not(isEmptyOrNullString())); |
1553 | 1555 | } |
1554 | 1556 |
|
| 1557 | + @Test |
| 1558 | + public void testGetDuplicatesWithReportDateThreshold() { |
| 1559 | + RDCF rdcf = creator.createRDCF(); |
| 1560 | + |
| 1561 | + //case and person matching for asserts |
| 1562 | + PersonDto person = creator.createPerson("Fname", "Lname", (p) -> { |
| 1563 | + p.setBirthdateDD(12); |
| 1564 | + p.setBirthdateMM(3); |
| 1565 | + p.setBirthdateYYYY(1968); |
| 1566 | + }); |
| 1567 | + |
| 1568 | + Date now = new Date(); |
| 1569 | + |
| 1570 | + CaseDataDto caze = creator.createCase(creator.createUser(rdcf, UserRole.SURVEILLANCE_OFFICER).toReference(), rdcf, (c) -> { |
| 1571 | + c.setPerson(person.toReference()); |
| 1572 | + c.setExternalID("test-ext-id"); |
| 1573 | + c.setExternalToken("test-ext-token"); |
| 1574 | + c.setDisease(Disease.CORONAVIRUS); |
| 1575 | + c.setDistrict(rdcf.district); |
| 1576 | + c.setReportDate(now); |
| 1577 | + }); |
| 1578 | + |
| 1579 | + // second case matching the first one except for the reporting date |
| 1580 | + PersonDto person2 = creator.createPerson("Fname", "Lname", (p) -> { |
| 1581 | + p.setBirthdateDD(12); |
| 1582 | + p.setBirthdateMM(3); |
| 1583 | + p.setBirthdateYYYY(1968); |
| 1584 | + }); |
| 1585 | + creator.createCase(creator.createUser(rdcf, UserRole.SURVEILLANCE_OFFICER).toReference(), rdcf, (c) -> { |
| 1586 | + c.setPerson(person2.toReference()); |
| 1587 | + c.setDisease(Disease.CORONAVIRUS); |
| 1588 | + c.setReportDate(new DateTime(now).minusDays(1).toDate()); |
| 1589 | + }); |
| 1590 | + |
| 1591 | + |
| 1592 | + CasePersonDto casePerson = new CasePersonDto(); |
| 1593 | + PersonDto duplicatePerson = PersonDto.build(); |
| 1594 | + CaseDataDto duplicateCaze = CaseDataDto.build(duplicatePerson.toReference(), Disease.CORONAVIRUS); |
| 1595 | + duplicateCaze.setDistrict(rdcf.district); |
| 1596 | + duplicateCaze.setReportDate(new Date()); |
| 1597 | + |
| 1598 | + casePerson.setCaze(duplicateCaze); |
| 1599 | + casePerson.setPerson(duplicatePerson); |
| 1600 | + |
| 1601 | + List<CasePersonDto> duplicates = getCaseFacade().getDuplicates(casePerson, 2); |
| 1602 | + MatcherAssert.assertThat(duplicates, hasSize(2)); |
| 1603 | + } |
| 1604 | + |
| 1605 | + |
| 1606 | + |
1555 | 1607 | // @Test |
1556 | 1608 | // public void testGetSimilarCases() { |
1557 | 1609 | // RDCFEntities rdcf = creator.createRDCFEntities("Region", "District", "Community", "Facility"); |
|
0 commit comments