Skip to content
Draft
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
3 changes: 3 additions & 0 deletions src/main/java/school/hei/haapi/repository/UserRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ WITH student_group_flow AS (

List<User> findAllByRefIn(List<String> refs);

/* TODO: it says `late` or `unpaid`, but the real filter is only `late`
Need verification and refactor
*/
@Query("select u from User u join Fee f on u.id = f.student.id where f.status = 'LATE' ")
List<User> getStudentsWithUnpaidOrLateFee();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ public static boolean isLate(Instant instantToCompare) {

Instant now = Instant.now();

/* TODO: what ? is late mean now.isBefore(`instantToCompare`)
Need verification and refactor
if possible remove that and put it in the class that need it
*/
return now.isAfter(instantToCompare);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,27 @@
import static school.hei.haapi.endpoint.rest.model.MobileMoneyType.ORANGE_MONEY;
import static school.hei.haapi.endpoint.rest.model.MpbsStatus.PENDING;
import static school.hei.haapi.endpoint.rest.model.MpbsStatus.SUCCESS;
import static school.hei.haapi.integration.conf.TestUtils.FEE1_ID;
import static school.hei.haapi.integration.conf.FakeDataProvider.*;
import static school.hei.haapi.integration.conf.TestUtils.STUDENT1_ID;
import static school.hei.haapi.integration.conf.TestUtils.setUpEventBridge;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import school.hei.haapi.endpoint.event.model.PendingMpbsCheckRequested;
import school.hei.haapi.http.model.TransactionDetails;
import school.hei.haapi.integration.conf.FacadeITMockedThirdParties;
import school.hei.haapi.integration.conf.FakeDataFactory.SomeUserFactory;
import school.hei.haapi.model.Fee;
import school.hei.haapi.model.User;
import school.hei.haapi.model.mpbs.Mpbs;
import school.hei.haapi.repository.FeeRepository;
import school.hei.haapi.repository.MpbsRepository;
import school.hei.haapi.repository.UserRepository;
import school.hei.haapi.service.FeeService;
import school.hei.haapi.service.MobilePaymentService;
import school.hei.haapi.service.MpbsService;
Expand All @@ -49,42 +51,56 @@ class PendingMpbsCheckRequestedServiceTest extends FacadeITMockedThirdParties {
@MockBean private MobilePaymentService mobilePaymentService;
@Autowired private FeeService feeService;
@Autowired private FeeRepository feeRepository;
@Autowired private UserRepository userRepository;
@Autowired private MpbsRepository mpbsRepository;

private static final String MOCK_FEE_ID = "mock-fee";
private static final String MOCK_STUDENT_FIRST_NAME = "MOCK";
private static final String MOCK_STUDENT_LAST_NAME = "Student";
private static final String MOCK_STUDENT_EMAIL = "mock@example.com";

private User student;
private Fee fee;
private Mpbs mpbs;

@BeforeEach
void setUp() {
setUpEventBridge(eventBridgeClientMock);
setUpData(0);
}

void setUpData(int totalFeeAmount) {
student = userRepository.save(new SomeUserFactory().build());
fee = feeRepository.save(somePendingFee(student, totalFeeAmount));
mpbs = mpbsRepository.save(someMpbs(fee));
}

@Test
@Disabled("TODO: dirty, create new student")
void verify_mpbs_to_unverified() {
var actualFee = feeService.getById(FEE1_ID);
var actualFee = feeService.getById(fee.getId());
assertDoesNotThrow(
() ->
subject.accept(
PendingMpbsCheckRequested.builder()
.toVerify(
mpbsService.getStudentMobilePaymentByFeeId(STUDENT1_ID, FEE1_ID).getFirst())
mpbsService
.getStudentMobilePaymentByFeeId(student.getId(), fee.getId())
.getFirst())
.verifyAt(now())
.build()));
var updatedFee = feeService.getById(FEE1_ID);
var updatedFee = feeService.getById(fee.getId());

assertEquals(actualFee, updatedFee);
}

@Test
@Disabled("TODO: dirty, create new student")
void verify_mpbs() {
var fee = feeService.saveAll(List.of(someFeeFor(mockStudent()))).getFirst();
setUpData(10_000);

var mpbsCreated =
Mpbs.builder()
.status(PENDING)
.student(mockStudent())
.student(student)
.fee(fee)
.amount(fee.getRemainingAmount())
.statusHistory(new ArrayList<>())
Expand Down Expand Up @@ -114,10 +130,9 @@ void verify_mpbs() {
}

@Test
@Disabled("TODO: dirty, create new student")
void unverifed_mpbs_ok() {
var toFailFee = feeService.saveAll(List.of(someFeeFor(mockStudent()))).getFirst();
var toPendFee = feeService.saveAll(List.of(someFeeFor(mockStudent()))).getFirst();
var toFailFee = feeService.saveAll(List.of(someFeeFor(student))).getFirst();
var toPendFee = feeService.saveAll(List.of(someFeeFor(student))).getFirst();
when(mobilePaymentService.findTransactionByMpbs(any())).thenReturn(empty());
assertDoesNotThrow(
() ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import static school.hei.haapi.endpoint.rest.model.MobileMoneyType.ORANGE_MONEY;
import static school.hei.haapi.integration.StudentIT.student1;
import static school.hei.haapi.integration.conf.TestUtils.anAvailableRandomPort;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;

import org.junit.jupiter.api.BeforeEach;
Expand All @@ -30,7 +30,7 @@ public class CreateMpbsValidatorIT extends MockedThirdParties {

@BeforeEach
void setUp() {
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import static school.hei.haapi.endpoint.rest.model.ProfessionalExperienceFileTypeEnum.WORKER_STUDENT;
import static school.hei.haapi.integration.StudentIT.student1;
import static school.hei.haapi.integration.conf.TestUtils.anAvailableRandomPort;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;

import java.time.Instant;
Expand Down Expand Up @@ -37,7 +37,7 @@ private static ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
3 changes: 1 addition & 2 deletions src/test/java/school/hei/haapi/integration/AdminIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
public void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpEventBridge(eventBridgeClientMock);
setUpS3Service(fileService, teacher1());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
import static school.hei.haapi.endpoint.rest.model.FeeStatusEnum.UNPAID;
import static school.hei.haapi.endpoint.rest.model.FeeTypeEnum.TUITION;
import static school.hei.haapi.integration.conf.TestUtils.MANAGER1_TOKEN;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpEventBridge;
import static school.hei.haapi.model.statistics.AdvancedFeeStats.AdvancedFeeStatsCountType.ACCOUNTING;
import static school.hei.haapi.model.statistics.AdvancedFeeStats.AdvancedFeeStatsCountType.RECEIPT;
Expand Down Expand Up @@ -129,8 +128,7 @@ private static Fee createFeeDueJuneLate() {
@BeforeEach
void setUp() {
setUpEventBridge(eventBridgeClientMock);
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@
import static school.hei.haapi.integration.conf.TestUtils.assertThrowsForbiddenException;
import static school.hei.haapi.integration.conf.TestUtils.createAnnouncementWithGroupTarget;
import static school.hei.haapi.integration.conf.TestUtils.expectedAnnouncementCreated1;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;

import java.time.Instant;
Expand Down Expand Up @@ -242,8 +241,7 @@ void admin_react_announcement_ok() throws ApiException {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}
}
3 changes: 1 addition & 2 deletions src/test/java/school/hei/haapi/integration/CommentIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ class CommentIT extends FacadeITMockedThirdParties {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
12 changes: 5 additions & 7 deletions src/test/java/school/hei/haapi/integration/CorIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@
import static school.hei.haapi.integration.conf.FakeDataProvider.someCor;
import static school.hei.haapi.integration.conf.FakeDataProvider.someCorComment;
import static school.hei.haapi.integration.conf.FakeDataProvider.someCorCommentInfo;
import static school.hei.haapi.integration.conf.FakeDataProvider.someStudent;
import static school.hei.haapi.integration.conf.TestUtils.MANAGER1_TOKEN;
import static school.hei.haapi.integration.conf.TestUtils.STUDENT1_TOKEN;
import static school.hei.haapi.integration.conf.TestUtils.assertThrowsForbiddenException;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;

import com.github.javafaker.Faker;
import java.time.Instant;
Expand All @@ -31,6 +29,7 @@
import school.hei.haapi.endpoint.rest.mapper.CorMapper;
import school.hei.haapi.endpoint.rest.model.CrupdateCor;
import school.hei.haapi.integration.conf.FacadeITMockedThirdParties;
import school.hei.haapi.integration.conf.FakeDataFactory.SomeUserFactory;
import school.hei.haapi.integration.conf.TestUtils;
import school.hei.haapi.model.Cor;
import school.hei.haapi.model.CorStatus;
Expand All @@ -54,15 +53,14 @@ class CorIT extends FacadeITMockedThirdParties {

@BeforeEach
void setUp() {
axelWithCor = userRepository.save(someStudent("axel"));
tolotraWithoutCor = userRepository.save(someStudent("tolotra"));
axelWithCor = userRepository.save(new SomeUserFactory().firstName("axel").build());
tolotraWithoutCor = userRepository.save(new SomeUserFactory().firstName("tolotra").build());
corAxel = corRepository.save(someCor(axelWithCor, Instant.parse("2025-01-01T10:00:00Z")));
someCorComment(faker.number().numberBetween(0, 2))
.forEach(c -> corCommentService.addCommentByCorId(corAxel.getId(), c));
corAxel = corRepository.findById(corAxel.getId()).get();

setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
when(cognitoComponentMock.getEmailByIdToken(axelToken)).thenReturn(axelWithCor.getEmail());
when(casdoorAuthServiceMock.parseJwtToken(axelToken)).thenReturn(getCasdoorAxel());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
import static school.hei.haapi.integration.conf.TestUtils.TEACHER1_TOKEN;
import static school.hei.haapi.integration.conf.TestUtils.assertCourseAssignmentsIgnoringGroupCreationDateTime;
import static school.hei.haapi.integration.conf.TestUtils.assertThrowsApiException;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;
import static school.hei.haapi.integration.test_data.CourseAssignmentTestData.createCourseAssignment;
import static school.hei.haapi.integration.test_data.CourseAssignmentTestData.createCrupdateCourseAssignment;
Expand Down Expand Up @@ -94,8 +93,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
setUpTestData();
}
Expand Down
6 changes: 2 additions & 4 deletions src/test/java/school/hei/haapi/integration/CourseIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@
import static school.hei.haapi.integration.conf.TestUtils.course3;
import static school.hei.haapi.integration.conf.TestUtils.createCourse;
import static school.hei.haapi.integration.conf.TestUtils.isBefore;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;
import static school.hei.haapi.integration.conf.TestUtils.someCreatableCourseList;

Expand Down Expand Up @@ -43,8 +42,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
6 changes: 2 additions & 4 deletions src/test/java/school/hei/haapi/integration/EventIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@
import static school.hei.haapi.integration.conf.TestUtils.event2;
import static school.hei.haapi.integration.conf.TestUtils.event3;
import static school.hei.haapi.integration.conf.TestUtils.group1;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;
import static school.hei.haapi.integration.conf.TestUtils.student1AttendEvent2;
import static school.hei.haapi.integration.conf.TestUtils.student1MissEvent1;
Expand Down Expand Up @@ -65,8 +64,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
6 changes: 2 additions & 4 deletions src/test/java/school/hei/haapi/integration/ExamIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
import static school.hei.haapi.integration.conf.TestUtils.grade1;
import static school.hei.haapi.integration.conf.TestUtils.grade2;
import static school.hei.haapi.integration.conf.TestUtils.group1;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;
import static school.hei.haapi.integration.conf.TestUtils.studentGrade1;
import static school.hei.haapi.integration.conf.TestUtils.teacher1;
Expand Down Expand Up @@ -60,8 +59,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
6 changes: 2 additions & 4 deletions src/test/java/school/hei/haapi/integration/FeeIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@
import static school.hei.haapi.integration.conf.TestUtils.fee3;
import static school.hei.haapi.integration.conf.TestUtils.fee4;
import static school.hei.haapi.integration.conf.TestUtils.requestFile;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;

import jakarta.persistence.EntityManager;
Expand Down Expand Up @@ -98,8 +97,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
6 changes: 2 additions & 4 deletions src/test/java/school/hei/haapi/integration/FeeTemplateIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
import static school.hei.haapi.integration.conf.TestUtils.feeTemplate1;
import static school.hei.haapi.integration.conf.TestUtils.feeTemplate2;
import static school.hei.haapi.integration.conf.TestUtils.feeTemplate3;
import static school.hei.haapi.integration.conf.TestUtils.setUpCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognito;
import static school.hei.haapi.integration.conf.TestUtils.setUpCognitoAndCasdoor;
import static school.hei.haapi.integration.conf.TestUtils.setUpS3Service;
import static school.hei.haapi.integration.conf.TestUtils.updateFeeTemplate1;

Expand All @@ -39,8 +38,7 @@ private ApiClient anApiClient(String token) {

@BeforeEach
void setUp() {
setUpCasdoor(casdoorAuthServiceMock, certificateLoaderMock);
setUpCognito(cognitoComponentMock);
setUpCognitoAndCasdoor(casdoorAuthServiceMock, cognitoComponentMock, certificateLoaderMock);
setUpS3Service(fileService, student1());
}

Expand Down
Loading
Loading