Skip to content

Commit

Permalink
Added validate method to call the various validation checks
Browse files Browse the repository at this point in the history
  • Loading branch information
muthusubra committed Oct 1, 2024
1 parent 12c28f5 commit 5eb259a
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package uk.gov.justice.laa.crime.evidence.dto;

import lombok.Builder;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Builder
public class EvidenceDTO {
/**
* This is a basic DTO with the required fields for validation. When we migrate the remaining logic
* we can update this DTO with any additional fields we need
*/
private LocalDateTime incomeEvidenceReceivedDate;
private LocalDateTime applicationReceivedDate;
private String incomeExtraEvidence;
private String incomeExtraEvidenceText;
private LocalDateTime evidenceDueDate;
private LocalDateTime firstReminderDate;
private LocalDateTime secondReminderDate;
private LocalDateTime existingEvidenceDueDate;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import uk.gov.justice.laa.crime.evidence.dto.EvidenceDTO;
import uk.gov.justice.laa.crime.evidence.staticdata.enums.OtherEvidenceTypes;
import uk.gov.justice.laa.crime.util.DateUtil;

Expand All @@ -14,6 +15,17 @@
@RequiredArgsConstructor
public class IncomeEvidenceValidationService {

public void validate(EvidenceDTO evidenceDTO){
checkExtraEvidenceDescription(evidenceDTO.getIncomeExtraEvidence(),
evidenceDTO.getIncomeExtraEvidenceText());
checkEvidenceReceivedDate(DateUtil.toDate(evidenceDTO.getIncomeEvidenceReceivedDate()),
DateUtil.toDate(evidenceDTO.getApplicationReceivedDate()));
checkEvidenceDueDates(DateUtil.toDate(evidenceDTO.getEvidenceDueDate()),
DateUtil.toDate(evidenceDTO.getFirstReminderDate()),
DateUtil.toDate(evidenceDTO.getSecondReminderDate()),
DateUtil.toDate(evidenceDTO.getExistingEvidenceDueDate()));
}

public void checkEvidenceReceivedDate(Date incomeEvidenceReceivedDate, Date applicationReceivedDate) {
Date currentDate = DateUtil.getCurrentDate();
if (incomeEvidenceReceivedDate != null && incomeEvidenceReceivedDate.after(currentDate)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import uk.gov.justice.laa.crime.evidence.dto.EvidenceDTO;
import uk.gov.justice.laa.crime.util.DateUtil;

import java.time.LocalDate;
Expand Down Expand Up @@ -215,4 +216,18 @@ void givenValidDates_whenCheckEvidenceDueDatesIsInvokedWithExistingEvidenceDueDa
Date pastDateConverted = DateUtil.asDate(pastDate);
incomeEvidenceValidationService.checkEvidenceDueDates(currentDate1, currentDate2, currentDate2, pastDateConverted);
}

@Test
void givenValidDates_whenValidateIsInvoked_thenNoExceptionIsThrown() {
EvidenceDTO evidenceDTO = EvidenceDTO.builder().evidenceDueDate(DateUtil.convertDateToDateTime(LocalDate.now().plusMonths(2)))
.firstReminderDate(DateUtil.convertDateToDateTime(LocalDate.now().plusMonths(1)))
.secondReminderDate(DateUtil.convertDateToDateTime(LocalDate.now().plusMonths(1)))
.existingEvidenceDueDate(DateUtil.convertDateToDateTime(LocalDate.now().minusMonths(1)))
.incomeExtraEvidence("OTHER")
.incomeExtraEvidenceText("Some text")
.incomeEvidenceReceivedDate(DateUtil.convertDateToDateTime(LocalDate.now().minusMonths(1)))
.applicationReceivedDate(DateUtil.convertDateToDateTime(LocalDate.now().minusMonths(2)))
.build();
incomeEvidenceValidationService.validate(evidenceDTO);
}
}

0 comments on commit 5eb259a

Please sign in to comment.