Skip to content

Commit

Permalink
fix(core): approve applications order
Browse files Browse the repository at this point in the history
Sort application before approving.
First, approve applications to VOs and then to groups.
  • Loading branch information
sarkapalkovicova committed Sep 7, 2023
1 parent 3175b1a commit 019acfe
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1829,7 +1829,9 @@ public Application approveApplication(PerunSession sess, int appId) throws Perun
}

@Override
@Transactional(rollbackFor = Exception.class)
public void approveApplications(PerunSession sess, List<Integer> applicationIds) throws PerunException {
Collections.sort(applicationIds);
for (Integer id : applicationIds) {
approveApplication(sess, id);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1132,13 +1132,35 @@ public void testApproveApplications() throws PerunException {
registrarManager.submitApplication(session, application1, new ArrayList<>());
registrarManager.submitApplication(session, application2, new ArrayList<>());

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

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

@Test
public void testApproveApplicationsOrder() throws PerunException {
User user = new User(1, "User1", "Test1", "", "", "");
user = perun.getUsersManagerBl().createUser(session, user);

Group group = new Group("Test", "Test group");
perun.getGroupsManagerBl().createGroup(session, vo, group);
registrarManager.createApplicationFormInGroup(session, group);

Application applicationToVo = prepareApplicationToVo(user);
applicationToVo = registrarManager.submitApplication(session, applicationToVo, new ArrayList<>());

Application applicationToGroup = prepareApplicationToGroup(user, group);
applicationToGroup = registrarManager.submitApplication(session, applicationToGroup, new ArrayList<>());

registrarManager.approveApplications(session, new ArrayList<>(Arrays.asList(applicationToGroup.getId(), applicationToVo.getId())));

List<Integer> approvedAppIds = registrarManager.getApplicationsForVo(session, vo, List.of("APPROVED"), true).stream().map(Application::getId).toList();
assertEquals(2, approvedAppIds.size());
assertThat(approvedAppIds).containsOnly(applicationToVo.getId(), applicationToGroup.getId());
}

@Test
public void testEmbeddedGroupsSubmission_groupAutoApprove() throws PerunException {
GroupsManager groupsManager = perun.getGroupsManager();
Expand Down

0 comments on commit 019acfe

Please sign in to comment.