Skip to content

Commit 2c0a8cf

Browse files
committed
테스트코드 수정:
1 parent 2a88cc8 commit 2c0a8cf

4 files changed

Lines changed: 97 additions & 7 deletions

File tree

src/test/java/com/jypLord/auth/AuthServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void login_successWithExistingRefreshToken() {
9393
given(redis.opsForValue()).willReturn(valueOperations);
9494
given(userRepository.findByEmail("user@test.com")).willReturn(Mono.just(user));
9595
given(passwordEncoder.matches("raw-password", "encoded")).willReturn(true);
96-
given(jwtProvider.generateAccessToken("user@test.com")).willReturn("access-token");
96+
given(jwtProvider.generateAccessToken(1L, "user@test.com")).willReturn("access-token");
9797
given(valueOperations.get("refresh:user@test.com")).willReturn(Mono.just("refresh-token"));
9898
given(valueOperations.set(eq("refresh:user@test.com"), eq("refresh-token"), any())).willReturn(Mono.just(true));
9999

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package com.jypLord.domain.trade.service;
2+
3+
import static org.mockito.ArgumentMatchers.any;
4+
import static org.mockito.ArgumentMatchers.eq;
5+
import static org.mockito.BDDMockito.given;
6+
import static org.mockito.Mockito.never;
7+
import static org.mockito.Mockito.verify;
8+
9+
import com.jypLord.api.BrokerageFirm;
10+
import com.jypLord.domain.trade.TradeStatus;
11+
import com.jypLord.domain.trade.dto.request.RegisterTradeInfoRequest;
12+
import com.jypLord.domain.trade.entity.Trade;
13+
import com.jypLord.domain.trade.repository.TradeRepository;
14+
import com.jypLord.domain.user.UserRepository;
15+
import com.jypLord.redis.pub.RedisAssetPricePublisher;
16+
import com.jypLord.redis.streams.publisher.RedisStockEventPublisher;
17+
import com.jypLord.redis.sub.RedisStockPriceSubscriber;
18+
import java.rmi.AlreadyBoundException;
19+
import org.junit.jupiter.api.Test;
20+
import org.junit.jupiter.api.extension.ExtendWith;
21+
import org.mockito.InjectMocks;
22+
import org.mockito.Mock;
23+
import org.mockito.junit.jupiter.MockitoExtension;
24+
import reactor.core.publisher.Mono;
25+
import reactor.test.StepVerifier;
26+
27+
@ExtendWith(MockitoExtension.class)
28+
class TradeServiceTest {
29+
30+
@Mock
31+
private com.jypLord.api.handler.BrokerClient brokerClient;
32+
@Mock
33+
private TradeRepository tradeRepository;
34+
@Mock
35+
private UserRepository userRepository;
36+
@Mock
37+
private RedisAssetPricePublisher redisAssetPricePublisher;
38+
@Mock
39+
private RedisStockPriceSubscriber redisStockPriceSubscriber;
40+
@Mock
41+
private RedisStockEventPublisher redisStockEventPublisher;
42+
43+
@InjectMocks
44+
private TradeService tradeService;
45+
46+
private final RegisterTradeInfoRequest request =
47+
new RegisterTradeInfoRequest(BrokerageFirm.LS, "005930", 99000, 1);
48+
49+
@Test
50+
void registerTradeInfo_savesWhenNoActiveTradeExists() {
51+
Trade saved = new Trade(1L, "005930", BrokerageFirm.LS, 99000, 1, TradeStatus.ACTIVE);
52+
53+
given(tradeRepository.findByUserIdAndStockCodeAndStatus(1L, "005930", TradeStatus.ACTIVE))
54+
.willReturn(Mono.empty());
55+
given(tradeRepository.save(any(Trade.class))).willReturn(Mono.just(saved));
56+
57+
StepVerifier.create(tradeService.registerTradeInfo(1L, request))
58+
.verifyComplete();
59+
60+
verify(tradeRepository).save(any(Trade.class));
61+
}
62+
63+
@Test
64+
void registerTradeInfo_throwsWhenSamePriceAlreadyExists() {
65+
Trade existing = new Trade(1L, "005930", BrokerageFirm.LS, 99000, 1, TradeStatus.ACTIVE);
66+
67+
given(tradeRepository.findByUserIdAndStockCodeAndStatus(1L, "005930", TradeStatus.ACTIVE))
68+
.willReturn(Mono.just(existing));
69+
70+
StepVerifier.create(tradeService.registerTradeInfo(1L, request))
71+
.expectError(AlreadyBoundException.class)
72+
.verify();
73+
74+
verify(tradeRepository, never()).save(any());
75+
}
76+
77+
@Test
78+
void updateTradeStatusForIdempotency_delegatesToRepository() {
79+
given(tradeRepository.updateTradeStatus(10L, TradeStatus.ACTIVE, TradeStatus.EXECUTED_LOSSCUT))
80+
.willReturn(Mono.just(true));
81+
82+
StepVerifier.create(
83+
tradeService.updateTradeStatusForIdempotency(10L, TradeStatus.ACTIVE, TradeStatus.EXECUTED_LOSSCUT)
84+
)
85+
.expectNext(true)
86+
.verifyComplete();
87+
88+
verify(tradeRepository).updateTradeStatus(10L, TradeStatus.ACTIVE, TradeStatus.EXECUTED_LOSSCUT);
89+
}
90+
}

src/test/java/com/jypLord/domain/user/UserServiceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,27 @@ class UserServiceTest {
3030

3131
@Test
3232
void getStockOAuthAndSave_success() {
33-
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, 1L, "app-key", "app-secret");
33+
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, "app-key", "app-secret");
3434
User user = new User(1L, "test@test.com", "pw", "name", LocalDate.of(2000, 1, 1), null, null);
3535

3636
given(brokerClient.getOAuthToken(any())).willReturn(Mono.just("oauth-token"));
3737
given(userRepository.findById(1L)).willReturn(Mono.just(user));
3838
given(userRepository.save(any(User.class))).willReturn(Mono.just(user));
3939

40-
StepVerifier.create(userService.getStockOAuthAndSave(request))
40+
StepVerifier.create(userService.getStockOAuthAndSave(1L, request))
4141
.verifyComplete();
4242

4343
verify(userRepository).save(any(User.class));
4444
}
4545

4646
@Test
4747
void getStockOAuthAndSave_userNotFound_completesWithoutSave() {
48-
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, 99L, "app-key", "app-secret");
48+
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, "app-key", "app-secret");
4949

5050
given(brokerClient.getOAuthToken(any())).willReturn(Mono.just("oauth-token"));
5151
given(userRepository.findById(99L)).willReturn(Mono.empty());
5252

53-
StepVerifier.create(userService.getStockOAuthAndSave(request))
53+
StepVerifier.create(userService.getStockOAuthAndSave(99L, request))
5454
.verifyComplete();
5555

5656
verify(userRepository, never()).save(any());

src/test/java/com/jypLord/usertest/UserTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ class UserTest {
3131

3232
@Test
3333
void get_accessToken_test() {
34-
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, 1L, "appKey", "appSecret");
34+
LsStockOAuthSaveRequest request = new LsStockOAuthSaveRequest(BrokerageFirm.LS, "appKey", "appSecret");
3535
User user = new User(1L, "test@test.com", "pw", "name", LocalDate.of(2000, 1, 1), null, null);
3636

3737
given(brokerClient.getOAuthToken(any())).willReturn(Mono.just("access-token"));
3838
given(userRepository.findById(1L)).willReturn(Mono.just(user));
3939
given(userRepository.save(any(User.class))).willReturn(Mono.just(user));
4040

41-
StepVerifier.create(userService.getStockOAuthAndSave(request))
41+
StepVerifier.create(userService.getStockOAuthAndSave(1L, request))
4242
.verifyComplete();
4343
}
4444
}

0 commit comments

Comments
 (0)