9
9
import banking .fixture .testEntity .AccountFixture ;
10
10
import banking .fixture .testEntity .UserFixture ;
11
11
import banking .transfer .dto .request .TransferRequest ;
12
+ import banking .transfer .dto .response .TransferDetailResponse ;
12
13
import banking .transfer .entity .Transfer ;
13
14
import banking .transfer .enums .TransferType ;
14
15
import banking .transfer .repository .TransferRepository ;
@@ -51,13 +52,14 @@ class TransferServiceUnitTest {
51
52
ExchangeRateService exchangeRateService ;
52
53
53
54
@ Test
54
- @ DisplayName ("[이체 성공 테스트] executeTransfer 메서드 검증" )
55
+ @ DisplayName ("[이체 성공 테스트] executeTransfer 메서드 검증 (transfer 메서드에서 호출) " )
55
56
void execute_transfer_succeed_test () {
56
57
// given
57
58
User user = UserFixture .USER_FIXTURE_1 .createUser ();
58
59
Account withdrawalAccount = AccountFixture .ACCOUNT_FIXTURE_KRW_1 .createAccount (user );
59
60
Account depositAccount = AccountFixture .ACCOUNT_FIXTURE_KRW_2 .createAccount (user );
60
61
62
+ AccountPublicInfoResponse mockWithdrawalAccountPublicInfo = AccountPublicInfoResponse .of (withdrawalAccount );
61
63
AccountPublicInfoResponse mockDepositAccountPublicInfo = AccountPublicInfoResponse .of (depositAccount );
62
64
63
65
TransferRequest transferRequest = TransferRequest .builder ()
@@ -68,21 +70,25 @@ void execute_transfer_succeed_test () {
68
70
.build ();
69
71
70
72
when (accountService .findAccountWithLock (anyLong (), anyLong (), anyString ())).thenReturn (withdrawalAccount );
73
+ doNothing ().when (accountService ).verifyAccountActiveStatus (withdrawalAccount );
74
+ doNothing ().when (accountService ).verifyAccountActiveStatus (transferRequest .depositAccountNumber ());
71
75
when (accountService .findAccountPublicInfo (anyString ())).thenReturn (mockDepositAccountPublicInfo );
72
76
when (exchangeRateService .getExchangeRate (any (), any ())).thenReturn (BigDecimal .ONE );
73
77
when (accountService .findAccountWithLock (anyLong (), any (Transfer .class ))).thenReturn (depositAccount );
74
-
75
- TransferService .TransferResultHandler <Transfer > resultHandler = (transfer , wAc , dAc ) -> transfer ;
78
+ when (accountService .findAccountPublicInfo (anyLong (), any (Transfer .class ))).thenReturn (mockWithdrawalAccountPublicInfo );
76
79
77
80
// when
78
- Transfer result = transferService .executeTransfer (user .getId (), transferRequest , resultHandler );
81
+ TransferDetailResponse result = transferService .transfer (user .getId (), transferRequest );
79
82
80
83
// then
81
84
assertNotNull (result );
82
85
verify (accountService , times (1 )).findAccountWithLock (anyLong (), anyLong (), anyString ());
86
+ verify (accountService , times (1 )).verifyAccountActiveStatus (withdrawalAccount );
87
+ verify (accountService , times (1 )).verifyAccountActiveStatus (transferRequest .depositAccountNumber ());
83
88
verify (accountService , times (1 )).findAccountPublicInfo (depositAccount .getAccountNumber ());
84
89
verify (exchangeRateService , times (1 )).getExchangeRate (depositAccount .getCurrency (), withdrawalAccount .getCurrency ());
85
90
verify (depositAsyncService , times (1 )).processDepositAsync (any (Transfer .class ));
91
+ verify (accountService , times (1 )).findAccountPublicInfo (anyLong (), any (Transfer .class ));
86
92
}
87
93
88
94
@ Test
0 commit comments