[AB-333] providing some dates as separate instants instead of relying on the member attributes

truncating date to day when displaying the date for export emote stats
fixing wrong message when confirming a command and adding missing exception handling
This commit is contained in:
Sheldan
2021-10-14 01:31:52 +02:00
parent 36ca9b11e4
commit 8909e8ebe5
10 changed files with 49 additions and 31 deletions

View File

@@ -50,11 +50,15 @@ public class UserInfo extends AbstractConditionableCommand {
log.info("Force reloading member {} in guild {} for user info.", memberToShow.getId(), memberToShow.getGuild().getId());
return memberService.forceReloadMember(memberToShow).thenCompose(member -> {
model.setMemberInfo(member);
model.setCreationDate(member.getTimeCreated().toInstant());
model.setJoinDate(member.getTimeJoined().toInstant());
return self.sendResponse(commandContext, model)
.thenApply(aVoid -> CommandResult.fromIgnored());
});
} else {
model.setMemberInfo(memberToShow);
model.setCreationDate(memberToShow.getTimeCreated().toInstant());
model.setJoinDate(memberToShow.getTimeJoined().toInstant());
return self.sendResponse(commandContext, model)
.thenApply(aVoid -> CommandResult.fromIgnored());
}

View File

@@ -15,6 +15,8 @@ import org.junit.runner.RunWith;
import org.mockito.*;
import org.mockito.junit.MockitoJUnitRunner;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;
@@ -43,6 +45,8 @@ public class UserInfoTest {
CommandContext noParameters = CommandTestUtilities.getNoParameters();
when(noParameters.getAuthor().getGuild()).thenReturn(noParameters.getGuild());
when(noParameters.getAuthor().hasTimeJoined()).thenReturn(true);
when(noParameters.getAuthor().getTimeJoined()).thenReturn(OffsetDateTime.now());
when(noParameters.getAuthor().getTimeCreated()).thenReturn(OffsetDateTime.now());
when(self.sendResponse(eq(noParameters),any(UserInfoModel.class))).thenReturn(CompletableFuture.completedFuture(null));
CompletableFuture<CommandResult> result = testUnit.executeAsync(noParameters);
verify(self, times(1)).sendResponse(eq(noParameters), modelArgumentCaptor.capture());
@@ -56,6 +60,8 @@ public class UserInfoTest {
CommandContext noParameters = CommandTestUtilities.getNoParameters();
when(noParameters.getAuthor().hasTimeJoined()).thenReturn(false);
Member loadedAuthor = Mockito.mock(Member.class);
when(loadedAuthor.getTimeJoined()).thenReturn(OffsetDateTime.now());
when(loadedAuthor.getTimeCreated()).thenReturn(OffsetDateTime.now());
when(noParameters.getAuthor().getGuild()).thenReturn(noParameters.getGuild());
when(memberService.forceReloadMember(noParameters.getAuthor())).thenReturn(CompletableFuture.completedFuture(loadedAuthor));
when(self.sendResponse(eq(noParameters), modelArgumentCaptor.capture())).thenReturn(CompletableFuture.completedFuture(null));
@@ -69,6 +75,8 @@ public class UserInfoTest {
public void executeTestWithParameterLoadedMember() {
Member member = Mockito.mock(Member.class);
when(member.hasTimeJoined()).thenReturn(true);
when(member.getTimeJoined()).thenReturn(OffsetDateTime.now());
when(member.getTimeCreated()).thenReturn(OffsetDateTime.now());
CommandContext parameters = CommandTestUtilities.getWithParameters(Arrays.asList(member));
when(member.getGuild()).thenReturn(parameters.getGuild());
when(self.sendResponse(eq(parameters), modelArgumentCaptor.capture())).thenReturn(CompletableFuture.completedFuture(null));
@@ -85,6 +93,8 @@ public class UserInfoTest {
CommandContext parameters = CommandTestUtilities.getWithParameters(Arrays.asList(member));
when(member.getGuild()).thenReturn(parameters.getGuild());
Member loadedAuthor = Mockito.mock(Member.class);
when(loadedAuthor.getTimeJoined()).thenReturn(OffsetDateTime.now());
when(loadedAuthor.getTimeCreated()).thenReturn(OffsetDateTime.now());
when(memberService.forceReloadMember(member)).thenReturn(CompletableFuture.completedFuture(loadedAuthor));
when(self.sendResponse(eq(parameters), modelArgumentCaptor.capture())).thenReturn(CompletableFuture.completedFuture(null));
CompletableFuture<CommandResult> result = testUnit.executeAsync(parameters);

View File

@@ -6,9 +6,13 @@ import lombok.Setter;
import lombok.experimental.SuperBuilder;
import net.dv8tion.jda.api.entities.Member;
import java.time.Instant;
@Getter
@Setter
@SuperBuilder
public class UserInfoModel extends SlimUserInitiatedServerContext {
private Member memberInfo;
private Instant joinDate;
private Instant creationDate;
}