mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-04 00:36:26 +00:00
[AB-137] fixing occurrences for templates in cases entities do not exist anymore
fixing feature mode retrieval to adapt to lowercase fixing disable exp role creation and retrieval removing ansible code
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
package dev.sheldan.abstracto.utility.repository.converter;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.core.service.MemberService;
|
||||
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
||||
import dev.sheldan.abstracto.core.service.management.UserManagementService;
|
||||
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsUser;
|
||||
import dev.sheldan.abstracto.utility.repository.StarStatsGuildUserResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -22,6 +23,12 @@ public class StarStatsUserConverter {
|
||||
@Autowired
|
||||
private UserInServerManagementService userInServerManagementService;
|
||||
|
||||
@Autowired
|
||||
private UserManagementService userManagementService;
|
||||
|
||||
@Autowired
|
||||
private StarStatsUserConverter self;
|
||||
|
||||
public List<CompletableFuture<StarStatsUser>> convertToStarStatsUser(List<StarStatsGuildUserResult> users, Long serverId) {
|
||||
List<CompletableFuture<StarStatsUser>> result = new ArrayList<>();
|
||||
users.forEach(starStatsUserResult ->
|
||||
@@ -32,14 +39,18 @@ public class StarStatsUserConverter {
|
||||
|
||||
private CompletableFuture<StarStatsUser> createStarStatsUser(Long serverId, StarStatsGuildUserResult starStatsGuildUserResult) {
|
||||
AUserInAServer aUserInAServer = userInServerManagementService.loadOrCreateUser(starStatsGuildUserResult.getUserId());
|
||||
return memberService.getMemberInServerAsync(serverId, aUserInAServer.getUserReference().getId()).thenApply(member ->
|
||||
StarStatsUser
|
||||
.builder()
|
||||
.starCount(starStatsGuildUserResult.getStarCount())
|
||||
.member(member)
|
||||
// TODO properly load this instance instead of just building one
|
||||
.user(AUser.builder().id(starStatsGuildUserResult.getUserId()).build())
|
||||
.build()
|
||||
);
|
||||
return memberService.getMemberInServerAsync(serverId, aUserInAServer.getUserReference().getId())
|
||||
.thenApply(member -> self.loadStarStatsUser(starStatsGuildUserResult, member))
|
||||
.exceptionally(throwable -> self.loadStarStatsUser(starStatsGuildUserResult, null));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public StarStatsUser loadStarStatsUser(StarStatsGuildUserResult starStatsGuildUserResult, net.dv8tion.jda.api.entities.Member member) {
|
||||
return StarStatsUser
|
||||
.builder()
|
||||
.starCount(starStatsGuildUserResult.getStarCount())
|
||||
.member(member)
|
||||
.user(userInServerManagementService.loadOrCreateUser(starStatsGuildUserResult.getUserId()))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Member;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
@@ -33,13 +34,14 @@ public class StarStatsUserConverterTest {
|
||||
@Mock
|
||||
private UserInServerManagementService userInServerManagementService;
|
||||
|
||||
@Mock
|
||||
private StarStatsUserConverter self;
|
||||
|
||||
@Test
|
||||
public void testConversionOfMultipleItems() {
|
||||
Long serverId = 5L;
|
||||
Long firstUserId = 5L;
|
||||
Integer firstStarCount = 5;
|
||||
Long secondUserId = 9L;
|
||||
Integer secondStarCount = 10;
|
||||
List<StarStatsGuildUserResult> results = new ArrayList<>();
|
||||
StarStatsGuildUserResult firstResult = Mockito.mock(StarStatsGuildUserResult.class);
|
||||
Member firstMember = Mockito.mock(Member.class);
|
||||
@@ -50,7 +52,6 @@ public class StarStatsUserConverterTest {
|
||||
when(userInServerManagementService.loadOrCreateUser(firstUserId)).thenReturn(firstUser);
|
||||
when(memberService.getMemberInServerAsync(serverId, firstUserId)).thenReturn(CompletableFuture.completedFuture(firstMember));
|
||||
when(firstResult.getUserId()).thenReturn(firstUserId);
|
||||
when(firstResult.getStarCount()).thenReturn(firstStarCount);
|
||||
results.add(firstResult);
|
||||
StarStatsGuildUserResult secondResult = Mockito.mock(StarStatsGuildUserResult.class);
|
||||
Member secondMember = Mockito.mock(Member.class);
|
||||
@@ -62,19 +63,20 @@ public class StarStatsUserConverterTest {
|
||||
when(memberService.getMemberInServerAsync(serverId, secondUserId)).thenReturn(CompletableFuture.completedFuture(secondMember));
|
||||
|
||||
when(secondResult.getUserId()).thenReturn(secondUserId);
|
||||
when(secondResult.getStarCount()).thenReturn(secondStarCount);
|
||||
results.add(secondResult);
|
||||
|
||||
List<CompletableFuture<StarStatsUser>> starStatsUsers = testUnit.convertToStarStatsUser(results, serverId);
|
||||
StarStatsUser firstConverted = starStatsUsers.get(0).join();
|
||||
Assert.assertEquals(firstStarCount, firstConverted.getStarCount());
|
||||
Assert.assertEquals(firstMember, firstConverted.getMember());
|
||||
Assert.assertEquals(firstUserId, firstConverted.getUser().getId());
|
||||
StarStatsUser secondConverted = starStatsUsers.get(1).join();
|
||||
Assert.assertEquals(secondStarCount, secondConverted.getStarCount());
|
||||
Assert.assertEquals(secondMember, secondConverted.getMember());
|
||||
Assert.assertEquals(secondUserId, secondConverted.getUser().getId());
|
||||
Assert.assertEquals(2, starStatsUsers.size());
|
||||
testUnit.convertToStarStatsUser(results, serverId);
|
||||
ArgumentCaptor<StarStatsGuildUserResult> resultArgumentCaptor = ArgumentCaptor.forClass(StarStatsGuildUserResult.class);
|
||||
ArgumentCaptor<Member> memberArgumentCaptor = ArgumentCaptor.forClass(Member.class);
|
||||
verify(self, times(2)).loadStarStatsUser(resultArgumentCaptor.capture(), memberArgumentCaptor.capture());
|
||||
List<StarStatsGuildUserResult> resultCaptorValues = resultArgumentCaptor.getAllValues();
|
||||
Assert.assertEquals(2, resultCaptorValues.size());
|
||||
Assert.assertEquals(firstResult, resultCaptorValues.get(0));
|
||||
Assert.assertEquals(secondResult, resultCaptorValues.get(1));
|
||||
List<Member> memberCaptorValues = memberArgumentCaptor.getAllValues();
|
||||
Assert.assertEquals(2, memberCaptorValues.size());
|
||||
Assert.assertEquals(firstMember, memberCaptorValues.get(0));
|
||||
Assert.assertEquals(secondMember, memberCaptorValues.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user