From 089ca829931d019b83976a3483a7cde57a5232d8 Mon Sep 17 00:00:00 2001 From: Angela Yu Date: Wed, 7 Oct 2026 16:45:36 -0400 Subject: [PATCH] TAN-1052: added leaderboardID due to it being required now --- .../common/components/LeaderboardManager.java | 2 + .../components/LeaderboardManagerTest.java | 110 ++++++++++++------ 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/src/main/java/org/patinanetwork/codebloom/common/components/LeaderboardManager.java b/src/main/java/org/patinanetwork/codebloom/common/components/LeaderboardManager.java index 312308054..73905c4a4 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/components/LeaderboardManager.java +++ b/src/main/java/org/patinanetwork/codebloom/common/components/LeaderboardManager.java @@ -89,6 +89,7 @@ public void generateAchievementsForAllWinners() { String placeString = calculatePlaceString(place); Achievement achievement = Achievement.builder() .userId(user.getId()) + .leaderboardId(currentLeaderboard.get().getId()) .place(AchievementPlaceEnum.fromInteger(place)) .leaderboard(pair.getRight()) .title(String.format( @@ -118,6 +119,7 @@ public void generateAchievementsForAllWinners() { UserWithScore user = winners.get(i); Achievement achievement = Achievement.builder() .userId(user.getId()) + .leaderboardId(currentLeaderboard.get().getId()) .place(AchievementPlaceEnum.fromInteger(place)) .leaderboard(null) .title(String.format( diff --git a/src/test/java/org/patinanetwork/codebloom/common/components/LeaderboardManagerTest.java b/src/test/java/org/patinanetwork/codebloom/common/components/LeaderboardManagerTest.java index a0d7f2640..0fcf036f9 100644 --- a/src/test/java/org/patinanetwork/codebloom/common/components/LeaderboardManagerTest.java +++ b/src/test/java/org/patinanetwork/codebloom/common/components/LeaderboardManagerTest.java @@ -73,10 +73,12 @@ private void assertAchievement( final Achievement achievement, final Tag leaderboard, final AchievementPlaceEnum placeEnum, - final String userId) { + final String userId, + final String leaderboardId) { assertEquals(leaderboard, achievement.getLeaderboard()); assertEquals(placeEnum, achievement.getPlace()); assertEquals(userId, achievement.getUserId()); + assertEquals(leaderboardId, achievement.getLeaderboardId()); } private static Stream tagGenerator() { @@ -173,12 +175,14 @@ void testWithAvailableLeaderboardAndTwoWinnersGlobal() { userOneAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -225,24 +229,28 @@ void testWithAvailableLeaderboardAndTwoWinnersGlobalWithOneValidTag() { userOneSbuAchievement, Tag.Sbu, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoSbuAchievement, Tag.Sbu, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(2); var userTwoGlobalAchievement = achievements.get(3); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -300,36 +308,42 @@ void testWithAvailableLeaderboardAndTwoWinnersGlobalWithTwoValidTags() { userOneSbuAchievement, Tag.Sbu, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoSbuAchievement, Tag.Sbu, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOnePatinaAchievement = achievements.get(2); var userTwoPatinaAchievement = achievements.get(3); assertAchievement( userOnePatinaAchievement, Tag.Patina, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoPatinaAchievement, Tag.Patina, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(4); var userTwoGlobalAchievement = achievements.get(5); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -387,36 +401,42 @@ void testWithAvailableLeaderboardAndTwoWinnersGlobalWithOneValidOneInvalidTag() userOneSbuAchievement, Tag.Sbu, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoSbuAchievement, Tag.Sbu, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGwcAchievement = achievements.get(2); var userTwoGwcAchievement = achievements.get(3); assertAchievement( userOneGwcAchievement, Tag.Gwc, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGwcAchievement, Tag.Gwc, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(4); var userTwoGlobalAchievement = achievements.get(5); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -463,24 +483,28 @@ void testWithAvailableLeaderboardAndTwoWinnersWithOnlyGwcTag() { userOneGwcAchievement, Tag.Gwc, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGwcAchievement, Tag.Gwc, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(2); var userTwoGlobalAchievement = achievements.get(3); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -538,36 +562,42 @@ void testWithAvailableLeaderboardAndTwoWinnersWithGwcAndMhcPlusPlusTags() { userOneMhcPlusPlusAchievement, Tag.MHCPlusPlus, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoMhcPlusPlusAchievement, Tag.MHCPlusPlus, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGwcAchievement = achievements.get(2); var userTwoGwcAchievement = achievements.get(3); assertAchievement( userOneGwcAchievement, Tag.Gwc, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGwcAchievement, Tag.Gwc, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(4); var userTwoGlobalAchievement = achievements.get(5); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -638,12 +668,14 @@ void testWithAvailableLeaderboardAndThreeWinnersGlobalButFourUsers() { userOneAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -674,7 +706,8 @@ void testUsersWithZeroPointsAreExcludedFromAchievements() { userOneAchievement, null, AchievementPlaceEnum.ONE, - users.get(0).getItem().getId()); + users.get(0).getItem().getId(), + latestLeaderboard.getId()); } @Test @@ -735,6 +768,7 @@ void testWinnersWithNullTagsAreSkippedInTagLeaderboards() { var achievements = captor.getAllValues(); for (var achievement : achievements) { assertNull(achievement.getLeaderboard()); + assertEquals(latestLeaderboard.getId(), achievement.getLeaderboardId()); } } @@ -779,24 +813,28 @@ void testWinnersWithNonMatchingTagsAreSkippedInTagLeaderboards() { userOnePatinaAchievement, Tag.Patina, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoPatinaAchievement, Tag.Patina, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); var userOneGlobalAchievement = achievements.get(2); var userTwoGlobalAchievement = achievements.get(3); assertAchievement( userOneGlobalAchievement, null, AchievementPlaceEnum.ONE, - winners.get(0).getItem().getId()); + winners.get(0).getItem().getId(), + latestLeaderboard.getId()); assertAchievement( userTwoGlobalAchievement, null, AchievementPlaceEnum.TWO, - winners.get(1).getItem().getId()); + winners.get(1).getItem().getId(), + latestLeaderboard.getId()); } @Test