diff --git a/buisnesslogic/src/main/java/com/plannaplan/services/ExchangeService.java b/buisnesslogic/src/main/java/com/plannaplan/services/ExchangeService.java index c87c0fa..d3e9e8d 100644 --- a/buisnesslogic/src/main/java/com/plannaplan/services/ExchangeService.java +++ b/buisnesslogic/src/main/java/com/plannaplan/services/ExchangeService.java @@ -78,7 +78,7 @@ public class ExchangeService { } public void performExchange() { - final Set matchData = this.getMatches(); + final List matchData = this.getMatches(); final List performedAssignmentExchanges = new ArrayList<>(); matchData.forEach( m -> { final Assignment assignmentOne = m.getAssignmentOne(); @@ -114,16 +114,17 @@ public class ExchangeService { }); } - public Set getMatches(){ + public List getMatches(){ final List matches = this.repo.getMatches().stream().map(m -> { final Exchange exchangeOne = (Exchange) m[0]; final Exchange exchangeTwo = (Exchange) m[1]; return new MatchData(exchangeOne, exchangeTwo); - }).collect(Collectors.toList()); - Set filterMatches = new TreeSet<>((m1, m2) -> m1.compare(m2)); - filterMatches.addAll(matches); - return filterMatches; + final Set uniqData = new HashSet<>(matches); + final List matchDataListSorted = uniqData.stream().sorted((m1, m2) -> -1 * m1.compare(m2)) + .collect(Collectors.toList()); + + return matchDataListSorted; } } diff --git a/buisnesslogic/src/test/java/com/plannaplan/services/ExchangeServiceTest.java b/buisnesslogic/src/test/java/com/plannaplan/services/ExchangeServiceTest.java index bc68185..d71dba7 100644 --- a/buisnesslogic/src/test/java/com/plannaplan/services/ExchangeServiceTest.java +++ b/buisnesslogic/src/test/java/com/plannaplan/services/ExchangeServiceTest.java @@ -68,7 +68,7 @@ public class ExchangeServiceTest { this.exchangeService.save(new Exchange(assignmentUser1, group2)); this.exchangeService.save(new Exchange(assignmentUser2, group1)); - final Set uniqList = this.exchangeService.getMatches(); + final List uniqList = this.exchangeService.getMatches(); assertTrue(uniqList.size() == 1); } @@ -117,9 +117,13 @@ public class ExchangeServiceTest { this.exchangeService.performExchange(); user1 = this.userService.getById(user1Id).get(); + Thread.sleep(1000); user2 = this.userService.getById(user2Id).get(); + Thread.sleep(1000); user3 = this.userService.getById(user3Id).get(); + Thread.sleep(1000); user4 = this.userService.getById(user4Id).get(); + Thread.sleep(1000); final List listGroupsOfUser1 = user1.getStudentRegisteredGrups().stream().map(Groups::getId) .collect(Collectors.toList()); @@ -160,9 +164,13 @@ public class ExchangeServiceTest { this.assignmentService.callAcceptAlgorythm(); this.exchangeService.save(new Exchange(assignmentUser1, group2)); + Thread.sleep(1000); this.exchangeService.save(new Exchange(assignmentUser2, group1)); + Thread.sleep(1000); this.exchangeService.save(new Exchange(assignmentUser1, group3)); + Thread.sleep(1000); this.exchangeService.save(new Exchange(assignmentUser1, group4)); + Thread.sleep(1000); this.exchangeService.performExchange(); @@ -176,8 +184,7 @@ public class ExchangeServiceTest { assertTrue(listGroupsOfUser1.contains(group2.getId())); assertTrue(listGroupsOfUser2.contains(group1.getId())); - int size = this.exchangeService.getAllExchanges().size(); - assertTrue(this.exchangeService.getAllExchanges().size() == 1); + assertTrue(this.exchangeService.getAllExchanges().size() == 2); } @Test