Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,5 @@ public class EdwGraduationSnapshot {

private String schoolOfRecord;
private UUID schoolOfRecordId;
private String eligible;
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
}

public EdwGraduationSnapshot processSnapshot(EdwGraduationSnapshot snapshotRequest) {
UUID studentID = snapshotRequest.getStudentID();
Integer gradYear = snapshotRequest.getGradYear(); // yyyy
String pen = snapshotRequest.getPen();
String graduatedDate = snapshotRequest.getGraduatedDate(); // yyyyMM
Expand All @@ -59,17 +60,19 @@
boolean isGraduated = StringUtils.isNotBlank(graduatedDate);
if (isGraduated) {
// retrieve honour_flag, gpa
snapshot = populateSnapshot(gradYear, pen, graduatedDate, "Y", snapshotRequest.getHonoursStanding(), snapshotRequest.getGpa(), schoolOfRecord, schoolOfRecordId);
snapshot = populateSnapshot(studentID, gradYear, pen, graduatedDate, "Y", snapshotRequest.getHonoursStanding(), snapshotRequest.getGpa(), schoolOfRecord, schoolOfRecordId, null);
} else {
snapshot = runHypotheticalGradAlgorithm(pen, gradYear, schoolOfRecord, schoolOfRecordId);
snapshot = runHypotheticalGradAlgorithm(studentID, pen, gradYear, schoolOfRecord, schoolOfRecordId);
}
log.debug("Save EdwSnapshot for Student pen# {}", snapshotRequest.getPen());
saveEdwSnapshotOfGraduationStatus(snapshot);
return snapshot;
}

private EdwGraduationSnapshot runHypotheticalGradAlgorithm(String pen, Integer gradYear, String schoolOfRecord, UUID schoolOfRecordId) {
UUID studentID = getStudentID(pen);
private EdwGraduationSnapshot runHypotheticalGradAlgorithm(UUID studentID, String pen, Integer gradYear, String schoolOfRecord, UUID schoolOfRecordId) {
if (studentID == null) {
studentID = getStudentID(pen);
}
if (studentID == null) {
return null;
}
Expand All @@ -95,11 +98,11 @@
String gpaStr = graduationData.getGradStatus().getGpa();
BigDecimal gpa = NumberUtils.isCreatable(gpaStr)? new BigDecimal(gpaStr) : null;
String honoursStanding = graduationData.getGradStatus().getHonoursStanding();
snapshot = populateSnapshot(gradYear, pen, null, "Y", honoursStanding, gpa, schoolOfRecord, schoolOfRecordId);
snapshot = populateSnapshot(studentID, gradYear, pen, null, "N", honoursStanding, gpa, schoolOfRecord, schoolOfRecordId, "Y");
} else {
// non-graduated student
log.debug(" ==> Not Graduated!");
snapshot = populateSnapshot(gradYear, pen, null, "N", null, BigDecimal.ZERO, schoolOfRecord, schoolOfRecordId);
snapshot = populateSnapshot(studentID, gradYear, pen, null, "N", null, BigDecimal.ZERO, schoolOfRecord, schoolOfRecordId, "N");
}
return snapshot;
}
Expand Down Expand Up @@ -128,8 +131,9 @@
return null;
}

private EdwGraduationSnapshot populateSnapshot(Integer gradYear, String pen, String graduatedDate, String gradFlag, String honourFlag, BigDecimal gpa, String schoolOfRecord, UUID schoolOfRecordId) {
private EdwGraduationSnapshot populateSnapshot(UUID studentID, Integer gradYear, String pen, String graduatedDate, String gradFlag, String honourFlag, BigDecimal gpa, String schoolOfRecord, UUID schoolOfRecordId, String eligible) {

Check warning on line 134 in api/src/main/java/ca/bc/gov/educ/api/graduation/service/EdwSnapshotService.java

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Method has 10 parameters, which is greater than 7 authorized.

See more on https://sonarcloud.io/project/issues?id=bcgov_EDUC-GRAD-GRADUATION-API&issues=AZ_39ffMkqJgTazBUYTf&open=AZ_39ffMkqJgTazBUYTf&pullRequest=642
EdwGraduationSnapshot obj = new EdwGraduationSnapshot();
obj.setStudentID(studentID);
obj.setGradYear(gradYear);
obj.setPen(pen);
obj.setGpa(gpa);
Expand All @@ -138,6 +142,7 @@
obj.setGraduatedDate(graduatedDate);
obj.setSchoolOfRecord(schoolOfRecord);
obj.setSchoolOfRecordId(schoolOfRecordId);
obj.setEligible(eligible);
return obj;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

import ca.bc.gov.educ.api.graduation.model.dto.*;
import ca.bc.gov.educ.api.graduation.util.EducGraduationApiConstants;
import ca.bc.gov.educ.api.graduation.util.GradValidation;
import ca.bc.gov.educ.api.graduation.util.JsonTransformer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand Down Expand Up @@ -40,26 +37,15 @@ public class EdwSnapshotServiceTest {
@MockBean
GradStatusService gradStatusService;

@MockBean
ReportService reportService;

@MockBean
RESTService restService;

@Autowired
JsonTransformer jsonTransformer;

@Autowired
GradValidation validation;

@Autowired
private ExceptionMessage exception;

@Autowired
private EducGraduationApiConstants constants;

@MockBean
@Qualifier("graduationApiClient")
@SuppressWarnings("unused")
WebClient graduationApiClient;

@MockBean
Expand All @@ -71,11 +57,6 @@ public void setUp() {
openMocks(this);
}

@After
public void tearDown() {

}

@Test
public void testProcessSnapshotForGradStudent() {
UUID schoolOfRecordId = UUID.randomUUID();
Expand All @@ -90,8 +71,10 @@ public void testProcessSnapshotForGradStudent() {
var result = edwSnapshotService.processSnapshot(snapshotRequest);
assertNotNull(result);
assertThat(result.getPen()).isEqualTo(snapshotRequest.getPen());
assertThat(result.getStudentID()).isEqualTo(snapshotRequest.getStudentID());
assertThat(result.getGraduationFlag()).isEqualTo("Y");
assertThat(result.getSchoolOfRecordId()).isEqualTo(schoolOfRecordId);
assertThat(result.getEligible()).isNull();
}

@Test
Expand Down Expand Up @@ -127,8 +110,10 @@ public void testProcessSnapshotForNonGradStudent() {
var result = edwSnapshotService.processSnapshot(snapshotRequest);
assertNotNull(result);
assertThat(result.getPen()).isEqualTo(snapshotRequest.getPen());
assertThat(result.getStudentID()).isEqualTo(snapshotRequest.getStudentID());
assertThat(result.getGraduationFlag()).isEqualTo("N");
assertThat(result.getSchoolOfRecordId()).isEqualTo(schoolOfRecordId);
assertThat(result.getEligible()).isEqualTo("N");
}

@Test
Expand Down Expand Up @@ -170,9 +155,11 @@ public void testProcessSnapshotForHypotheticalGradStudent() {
var result = edwSnapshotService.processSnapshot(snapshotRequest);
assertNotNull(result);
assertThat(result.getPen()).isEqualTo(snapshotRequest.getPen());
assertThat(result.getGraduationFlag()).isEqualTo("Y");
assertThat(result.getStudentID()).isEqualTo(snapshotRequest.getStudentID());
assertThat(result.getGraduationFlag()).isEqualTo("N");
assertThat(result.getGpa()).isEqualByComparingTo("3.80");
assertThat(result.getHonoursStanding()).isEqualTo("Y");
assertThat(result.getSchoolOfRecordId()).isEqualTo(schoolOfRecordId);
assertThat(result.getEligible()).isEqualTo("Y");
}
}
Loading