Skip to content

Commit f492e82

Browse files
authored
Merge pull request #223 from JECT-Study/develop
release: develop → main
2 parents d1cb670 + dba8b7b commit f492e82

6 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/main/java/com/ject/vs/chat/adapter/event/ChatMessageEventListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void handle(ChatMessageSentEvent event) {
3636

3737
User sender = userQueryUseCase.getUser(message.getSenderId());
3838
VoteOptionCode voteOptionCode =
39-
voteQueryUseCase.getSelectedOption(message.getVoteId(), message.getSenderId()).getCode();
39+
voteQueryUseCase.findSelectedOptionCode(message.getVoteId(), message.getSenderId()).orElse(null);
4040

4141
MessageResult messageResult = new MessageResult(
4242
message.getId(),

src/main/java/com/ject/vs/chat/port/ChatService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public MessageResult sendMessage(SendMessageCommand command) {
5050
ChatMessage saved = chatMessageRepository.save(message);
5151
User sender = userQueryUseCase.getUser(command.senderId());
5252
VoteOptionCode voteOptionCode =
53-
voteQueryUseCase.getSelectedOption(command.voteId(), command.senderId()).getCode();
53+
voteQueryUseCase.findSelectedOptionCode(command.voteId(), command.senderId()).orElse(null);
5454

5555
return new MessageResult(
5656
saved.getId(),
@@ -141,7 +141,7 @@ public MessagePageResult getMessages(Long voteId, Long userId, Long cursor, int
141141
.map(msg -> {
142142
User sender = userQueryUseCase.getUser(msg.getSenderId());
143143
VoteOptionCode voteOptionCode =
144-
voteQueryUseCase.getSelectedOption(voteId, msg.getSenderId()).getCode();
144+
voteQueryUseCase.findSelectedOptionCode(voteId, msg.getSenderId()).orElse(null);
145145

146146
return new MessageResult(
147147
msg.getId(),

src/main/java/com/ject/vs/vote/port/VoteQueryService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ public VoteOption getSelectedOption(Long voteId, Long userId) {
7474
return vote.getOption(selectedOptionId.get());
7575
}
7676

77+
@Override
78+
public Optional<VoteOptionCode> findSelectedOptionCode(Long voteId, Long userId) {
79+
return getSelectedOptionId(voteId, userId).map(optionId -> getSelectedOption(voteId, userId).getCode());
80+
}
81+
7782
@Override
7883
public int getParticipantCount(Long voteId) {
7984
return (int) voteParticipationRepository.countByVoteId(voteId);

src/main/java/com/ject/vs/vote/port/in/VoteQueryUseCase.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public interface VoteQueryUseCase {
2222

2323
VoteOption getSelectedOption(Long voteId, Long userId);
2424

25+
/** 투표 취소 등 참여 이력이 없으면 empty — 채팅 senderVoteOption null 처리용 */
26+
Optional<VoteOptionCode> findSelectedOptionCode(Long voteId, Long userId);
27+
2528
int getParticipantCount(Long voteId);
2629

2730
/** 채팅 도메인 getChatList() 호환용 — 실제 Vote.endAt 기준으로 필터링 */

src/unitTest/java/com/ject/vs/chat/adapter/event/ChatMessageEventListenerTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import com.ject.vs.user.domain.ImageColor;
1111
import com.ject.vs.user.domain.User;
1212
import com.ject.vs.user.port.in.UserQueryUseCase;
13-
import com.ject.vs.vote.domain.VoteOption;
1413
import com.ject.vs.vote.domain.VoteOptionCode;
1514
import com.ject.vs.vote.port.in.VoteParticipationQueryUseCase;
1615
import com.ject.vs.vote.port.in.VoteQueryUseCase;
@@ -64,9 +63,8 @@ class ChatMessageEventListenerTest {
6463
void setUpDefaults() {
6564
lenient().when(userQueryUseCase.getUser(any())).thenReturn(mock(User.class));
6665

67-
VoteOption dummyOption = mock(VoteOption.class);
68-
lenient().when(dummyOption.getCode()).thenReturn(VoteOptionCode.A);
69-
lenient().when(voteQueryUseCase.getSelectedOption(anyLong(), anyLong())).thenReturn(dummyOption);
66+
lenient().when(voteQueryUseCase.findSelectedOptionCode(anyLong(), anyLong()))
67+
.thenReturn(Optional.of(VoteOptionCode.A));
7068
}
7169

7270
@Nested

src/unitTest/java/com/ject/vs/chat/port/ChatServiceTest.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import com.ject.vs.user.domain.ImageColor;
1616
import com.ject.vs.user.domain.User;
1717
import com.ject.vs.user.port.in.UserQueryUseCase;
18-
import com.ject.vs.vote.domain.VoteOption;
1918
import com.ject.vs.vote.domain.VoteOptionCode;
2019
import com.ject.vs.vote.port.in.VoteParticipationQueryUseCase;
2120
import com.ject.vs.vote.port.in.VoteQueryUseCase;
@@ -61,9 +60,6 @@ class ChatServiceTest {
6160
@Mock
6261
private UserQueryUseCase userQueryUseCase;
6362

64-
@Mock
65-
private VoteOption selectedOption;
66-
6763
@Nested
6864
class sendMessage {
6965

@@ -98,8 +94,7 @@ class sendMessage {
9894
given(sender.getNickname()).willReturn("테스트유저");
9995
given(sender.getImageColor()).willReturn(ImageColor.GREEN);
10096
given(userQueryUseCase.getUser(2L)).willReturn(sender);
101-
given(voteQueryUseCase.getSelectedOption(1L, 2L)).willReturn(selectedOption);
102-
given(selectedOption.getCode()).willReturn(VoteOptionCode.A);
97+
given(voteQueryUseCase.findSelectedOptionCode(1L, 2L)).willReturn(Optional.of(VoteOptionCode.A));
10398

10499
// when
105100
MessageResult result = chatService.sendMessage(new SendMessageCommand(1L, 2L, "hello"));
@@ -206,14 +201,14 @@ class getMessages {
206201
given(sender.getNickname()).willReturn("");
207202
given(sender.getImageColor()).willReturn(ImageColor.GREEN);
208203
given(userQueryUseCase.getUser(2L)).willReturn(sender);
209-
given(voteQueryUseCase.getSelectedOption(1L, 2L)).willReturn(selectedOption);
210-
given(selectedOption.getCode()).willReturn(null);
204+
given(voteQueryUseCase.findSelectedOptionCode(1L, 2L)).willReturn(Optional.empty());
211205

212206
// when
213207
MessagePageResult result = chatService.getMessages(1L, 2L, null, 30);
214208

215209
// then
216210
assertThat(result.messages()).hasSize(1);
211+
assertThat(result.messages().getFirst().senderVoteOption()).isNull();
217212
assertThat(result.hasNext()).isFalse();
218213
verify(chatMessageRepository).findAllByVoteIdOrderByIdDesc(eq(1L), any(PageRequest.class));
219214
}
@@ -228,8 +223,7 @@ class getMessages {
228223
given(sender.getNickname()).willReturn("");
229224
given(sender.getImageColor()).willReturn(ImageColor.GREEN);
230225
given(userQueryUseCase.getUser(2L)).willReturn(sender);
231-
given(voteQueryUseCase.getSelectedOption(1L, 2L)).willReturn(selectedOption);
232-
given(selectedOption.getCode()).willReturn(null);
226+
given(voteQueryUseCase.findSelectedOptionCode(1L, 2L)).willReturn(Optional.of(VoteOptionCode.B));
233227

234228
// when
235229
MessagePageResult result = chatService.getMessages(1L, 2L, 100L, 30);

0 commit comments

Comments
 (0)