Skip to content

Commit 8fa9fa5

Browse files
authored
Merge pull request #4073 from sarkapalkovicova/fix_approve_applications_order
fix(core): approve applications order
2 parents def12e4 + 019acfe commit 8fa9fa5

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

perun-registrar-lib/src/main/java/cz/metacentrum/perun/registrar/impl/RegistrarManagerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1838,7 +1838,9 @@ public Application approveApplication(PerunSession sess, int appId) throws Perun
18381838
}
18391839

18401840
@Override
1841+
@Transactional(rollbackFor = Exception.class)
18411842
public void approveApplications(PerunSession sess, List<Integer> applicationIds) throws PerunException {
1843+
Collections.sort(applicationIds);
18421844
for (Integer id : applicationIds) {
18431845
approveApplication(sess, id);
18441846
}

perun-registrar-lib/src/test/java/cz/metacentrum/perun/registrar/RegistrarBaseIntegrationTest.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1177,13 +1177,35 @@ public void testApproveApplications() throws PerunException {
11771177
registrarManager.submitApplication(session, application1, new ArrayList<>());
11781178
registrarManager.submitApplication(session, application2, new ArrayList<>());
11791179

1180-
registrarManager.approveApplications(session, List.of(application1.getId(), application2.getId()));
1180+
registrarManager.approveApplications(session, new ArrayList<>(Arrays.asList(application1.getId(), application2.getId())));
11811181

11821182
List<Integer> approvedAppIds = registrarManager.getApplicationsForVo(session, vo, List.of("APPROVED"), false).stream().map(Application::getId).toList();
11831183
assertEquals(2, approvedAppIds.size());
11841184
assertThat(approvedAppIds).containsOnly(application1.getId(), application2.getId());
11851185
}
11861186

1187+
@Test
1188+
public void testApproveApplicationsOrder() throws PerunException {
1189+
User user = new User(1, "User1", "Test1", "", "", "");
1190+
user = perun.getUsersManagerBl().createUser(session, user);
1191+
1192+
Group group = new Group("Test", "Test group");
1193+
perun.getGroupsManagerBl().createGroup(session, vo, group);
1194+
registrarManager.createApplicationFormInGroup(session, group);
1195+
1196+
Application applicationToVo = prepareApplicationToVo(user);
1197+
applicationToVo = registrarManager.submitApplication(session, applicationToVo, new ArrayList<>());
1198+
1199+
Application applicationToGroup = prepareApplicationToGroup(user, group);
1200+
applicationToGroup = registrarManager.submitApplication(session, applicationToGroup, new ArrayList<>());
1201+
1202+
registrarManager.approveApplications(session, new ArrayList<>(Arrays.asList(applicationToGroup.getId(), applicationToVo.getId())));
1203+
1204+
List<Integer> approvedAppIds = registrarManager.getApplicationsForVo(session, vo, List.of("APPROVED"), true).stream().map(Application::getId).toList();
1205+
assertEquals(2, approvedAppIds.size());
1206+
assertThat(approvedAppIds).containsOnly(applicationToVo.getId(), applicationToGroup.getId());
1207+
}
1208+
11871209
@Test
11881210
public void testEmbeddedGroupsSubmission_groupAutoApprove() throws PerunException {
11891211
GroupsManager groupsManager = perun.getGroupsManager();

0 commit comments

Comments
 (0)