Skip to content

Commit

Permalink
test : PayRequests 일급 컬렉션의 단위테스트 작성
Browse files Browse the repository at this point in the history
  • Loading branch information
seongjunnoh committed Nov 20, 2024
1 parent 6e67e80 commit b93b6a7
Showing 1 changed file with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package space.space_spring.domain.pay.model.firstCollection;

import org.assertj.core.groups.Tuple;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import space.space_spring.domain.pay.model.entity.PayRequest;
import space.space_spring.domain.pay.model.entity.PayRequestTarget;
import space.space_spring.domain.space.model.entity.Space;
import space.space_spring.domain.user.model.entity.User;
import space.space_spring.entity.enumStatus.UserSignupType;

import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.junit.jupiter.api.Assertions.*;

class PayRequestsTest {

private User seongjun;
private User sangjun;
private User seohyun;
private User kyeongmin;
private Space kuit;

@BeforeEach
void setUp() {
// 1L : seongjun, 2L : sangjun, 3L : seohyun, 4L : kyeongmin
seongjun = User.create("email", "password", "노성준", UserSignupType.LOCAL);
sangjun = User.create("email", "password", "김상준", UserSignupType.LOCAL);
seohyun = User.create("email", "password", "정서현", UserSignupType.LOCAL);
kyeongmin = User.create("email", "password", "김경민", UserSignupType.LOCAL);
kuit = Space.create("space", "profileImg");
}

@Test
@DisplayName("멤버 변수인 PayRequest list 로부터 [payRequestId, 정산 총 금액, 현재까지 받은 금액, 정산 요청한 총 사람 수, 그 중 돈을 보낸 사람 수] 정보를 찾아준다.")
void getPayRequestInfos() throws Exception {
//given
PayRequest payRequest1 = PayRequest.create(seongjun, kuit, 40000, "우리은행", "111-111");
PayRequestTarget target1 = PayRequestTarget.create(payRequest1, 2L, 20000);
PayRequestTarget target2 = PayRequestTarget.create(payRequest1, 3L, 20000);

PayRequest payRequest2 = PayRequest.create(seongjun, kuit, 40000, "신한은행", "222-222");
PayRequestTarget target3 = PayRequestTarget.create(payRequest2, 3L, 10000);
PayRequestTarget target4 = PayRequestTarget.create(payRequest2, 4L, 30000);

target1.changeCompleteStatus(true); // payRequest1 에 대해서 target1은 정산 완료
payRequest1.changeReceiveAmount(20000);

target3.changeCompleteStatus(true); // payRequest2 에 대해서 target3은 정산 완료
payRequest2.changeReceiveAmount(10000);

PayRequests payCreatorIsSeongjun = PayRequests.create(List.of(payRequest1, payRequest2));

//when
PayRequestInfos payRequestInfos = payCreatorIsSeongjun.getPayRequestInfos();

//then
assertThat(payRequestInfos.getAll()).hasSize(2)
.extracting("totalAmount", "receiveAmount", "totalTargetNum", "paySendTargetNum")
.containsExactlyInAnyOrder(
tuple(40000, 20000, 2, 1),
tuple(40000, 10000, 2, 1)
);
}

}

0 comments on commit b93b6a7

Please sign in to comment.