diff --git a/api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/rules/validationrules/impl/DuplicatePenRule.java b/api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/rules/validationrules/impl/DuplicatePenRule.java deleted file mode 100644 index 03358ff0f..000000000 --- a/api/src/main/java/ca/bc/gov/educ/studentdatacollection/api/rules/validationrules/impl/DuplicatePenRule.java +++ /dev/null @@ -1,56 +0,0 @@ -package ca.bc.gov.educ.studentdatacollection.api.rules.validationrules.impl; - -import ca.bc.gov.educ.studentdatacollection.api.calculator.FteCalculatorUtils; -import ca.bc.gov.educ.studentdatacollection.api.constants.StudentValidationFieldCode; -import ca.bc.gov.educ.studentdatacollection.api.constants.StudentValidationIssueSeverityCode; -import ca.bc.gov.educ.studentdatacollection.api.constants.StudentValidationIssueTypeCode; -import ca.bc.gov.educ.studentdatacollection.api.rules.ValidationBaseRule; -import ca.bc.gov.educ.studentdatacollection.api.service.v1.ValidationRulesService; -import ca.bc.gov.educ.studentdatacollection.api.struct.StudentRuleData; -import ca.bc.gov.educ.studentdatacollection.api.struct.v1.SdcSchoolCollectionStudentValidationIssue; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -/** - * | ID | Severity | Rule | Dependent On | - * |-----|----------|-----------------------------------------------------------------------|--------------| - * | V21 | ERROR | A PEN can only appear once in a school. | V02 | - */ -@Component -@Slf4j -@Order(320) -public class DuplicatePenRule implements ValidationBaseRule { - - private final ValidationRulesService validationRulesService; - - public DuplicatePenRule(ValidationRulesService validationRulesService) { - this.validationRulesService = validationRulesService; - } - - @Override - public boolean shouldExecute(StudentRuleData studentRuleData, List validationErrorsMap) { - log.debug("In shouldExecute of DuplicatePenRule-V21: for collectionType {} and sdcSchoolCollectionStudentID :: {}" , FteCalculatorUtils.getCollectionTypeCode(studentRuleData), - studentRuleData.getSdcSchoolCollectionStudentEntity().getSdcSchoolCollectionStudentID()); - return isValidationDependencyResolved("V21", validationErrorsMap); - } - - @Override - public List executeValidation(StudentRuleData studentRuleData) { - var studentEntity = studentRuleData.getSdcSchoolCollectionStudentEntity(); - log.debug("In executeValidation of DuplicatePenRule-V21 for sdcSchoolCollectionStudentID ::" + studentEntity.getSdcSchoolCollectionStudentID()); - final List errors = new ArrayList<>(); - if(StringUtils.isNotEmpty(studentEntity.getStudentPen())) { - Long penCount = validationRulesService.getDuplicatePenCount(studentEntity.getSdcSchoolCollection().getSdcSchoolCollectionID(), studentEntity.getStudentPen()); - if ((penCount > 1) || (penCount == 1 && studentEntity.getSdcSchoolCollectionStudentID() == null)) { - log.debug("DuplicatePenRule-V21: Duplicate PEN's found - count {} for PEN number, sdcSchoolCollectionStudentID :: {}" , penCount, studentEntity.getSdcSchoolCollectionStudentID()); - errors.add(createValidationIssue(StudentValidationIssueSeverityCode.ERROR, StudentValidationFieldCode.STUDENT_PEN, StudentValidationIssueTypeCode.STUDENT_PEN_DUPLICATE)); - } - } - return errors; - } -} diff --git a/api/src/test/java/ca/bc/gov/educ/studentdatacollection/api/rules/RulesProcessorTest.java b/api/src/test/java/ca/bc/gov/educ/studentdatacollection/api/rules/RulesProcessorTest.java index 6de9c9f59..fc0911592 100644 --- a/api/src/test/java/ca/bc/gov/educ/studentdatacollection/api/rules/RulesProcessorTest.java +++ b/api/src/test/java/ca/bc/gov/educ/studentdatacollection/api/rules/RulesProcessorTest.java @@ -467,39 +467,6 @@ void testDuplicatePenRule() { assertThat(validationDigitError.get(0).getValidationIssueCode()).isEqualTo("PENCHECKDIGITERR"); } - @Test - void testDuplicatePenRuleFound() { - var collection = collectionRepository.save(createMockCollectionEntity()); - var sdcSchoolCollectionEntity = sdcSchoolCollectionRepository.save(createMockSdcSchoolCollectionEntity(collection, null)); - val entity = createMockSchoolStudentEntity(sdcSchoolCollectionEntity); - entity.setEnrolledGradeCode("08"); - entity.setStudentPen("120164447"); - entity.setCreateDate(LocalDateTime.now().minusMinutes(14)); - entity.setUpdateDate(LocalDateTime.now()); - entity.setCreateUser(ApplicationProperties.STUDENT_DATA_COLLECTION_API); - entity.setUpdateUser(ApplicationProperties.STUDENT_DATA_COLLECTION_API); - - val entity2 = createMockSchoolStudentEntity(sdcSchoolCollectionEntity); - entity2.setStudentPen("120164447"); - entity2.setCreateDate(LocalDateTime.now().minusMinutes(14)); - entity2.setUpdateDate(LocalDateTime.now()); - entity2.setCreateUser(ApplicationProperties.STUDENT_DATA_COLLECTION_API); - entity2.setUpdateUser(ApplicationProperties.STUDENT_DATA_COLLECTION_API); - sdcSchoolCollectionStudentRepository.save(entity2); - - val savedEntityTwo = sdcSchoolCollectionStudentRepository.findById(entity2.getSdcSchoolCollectionStudentID()); - assertThat(savedEntityTwo).isPresent(); - - val dupePenCount = sdcSchoolCollectionStudentRepository.countForDuplicateStudentPENs(entity.getSdcSchoolCollection().getSdcSchoolCollectionID(), entity.getStudentPen()); - assertThat(dupePenCount).isEqualTo(1); - - entity.setStudentPen("120164447"); - PenMatchResult penMatchResult = getPenMatchResult(); - when(this.restUtils.getPenMatchResult(any(),any(), anyString())).thenReturn(penMatchResult); - val validationErrorDupe = rulesProcessor.processRules(createMockStudentRuleData(entity, createMockSchool())); - assertThat(validationErrorDupe.size()).isNotZero(); - } - @Test void testHomeSchoolRule() { var collection = collectionRepository.save(createMockCollectionEntity());