Skip to content

Commit

Permalink
test: 자동 예약 테스트 중복 코드 추상 클래스로 이동
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoding-play committed Oct 14, 2024
1 parent 444428c commit 22ab3aa
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 59 deletions.
Original file line number Diff line number Diff line change
@@ -1,25 +1,15 @@
package corea.scheduler.service;

import config.ServiceTest;
import config.TestAsyncConfig;
import corea.fixture.MemberFixture;
import corea.fixture.RoomFixture;
import corea.matchresult.domain.MatchResult;
import corea.matchresult.domain.ReviewStatus;
import corea.matchresult.repository.MatchResultRepository;
import corea.member.domain.Member;
import corea.member.repository.MemberRepository;
import corea.room.domain.Room;
import corea.room.dto.RoomCreateRequest;
import corea.room.repository.RoomRepository;
import corea.scheduler.domain.AutomaticUpdate;
import corea.scheduler.repository.AutomaticUpdateRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;

import java.time.LocalDateTime;
import java.util.Collections;
Expand All @@ -33,35 +23,17 @@
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.when;

@ServiceTest
@Import(TestAsyncConfig.class)
class AutomaticUpdateExecutorTest {
class AutomaticUpdateExecutorTest extends UpdateTest {

@Autowired
private AutomaticUpdateExecutor automaticUpdateExecutor;

@Autowired
private RoomRepository roomRepository;

@Autowired
private MemberRepository memberRepository;

@Autowired
private AutomaticUpdateRepository automaticUpdateRepository;

@MockBean
private MatchResultRepository matchResultRepository;

private Room room;

@BeforeEach
void setUp() {
Member member = memberRepository.save(MemberFixture.MEMBER_PORORO());
RoomCreateRequest request = RoomFixture.ROOM_CREATE_REQUEST();

room = roomRepository.save(request.toEntity(member));
}

@Test
@DisplayName("동시에 10개의 자동 업데이트를 실행해도 PESSIMISTIC_WRITE 락을 통해 동시성을 제어할 수 있다.")
void startMatchingWithLock() throws InterruptedException {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,52 +1,23 @@
package corea.scheduler.service;

import config.ServiceTest;
import config.TestAsyncConfig;
import corea.fixture.MemberFixture;
import corea.fixture.RoomFixture;
import corea.member.domain.Member;
import corea.member.repository.MemberRepository;
import corea.room.domain.Room;
import corea.room.domain.RoomStatus;
import corea.room.dto.RoomCreateRequest;
import corea.room.repository.RoomRepository;
import corea.scheduler.domain.AutomaticUpdate;
import corea.scheduler.repository.AutomaticUpdateRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;
import org.springframework.transaction.annotation.Transactional;

import static org.assertj.core.api.Assertions.assertThat;

@ServiceTest
@Import(TestAsyncConfig.class)
class UpdateExecutorTest {
class UpdateExecutorTest extends UpdateTest {

@Autowired
private UpdateExecutor updateExecutor;

@Autowired
private RoomRepository roomRepository;

@Autowired
private MemberRepository memberRepository;

@Autowired
private AutomaticUpdateRepository automaticUpdateRepository;

private Room room;

@BeforeEach
void setUp() {
Member member = memberRepository.save(MemberFixture.MEMBER_PORORO());
RoomCreateRequest request = RoomFixture.ROOM_CREATE_REQUEST();

room = roomRepository.save(request.toEntity(member));
}

@Transactional
@Test
@DisplayName("방 상태를 변경한다.")
Expand Down
35 changes: 35 additions & 0 deletions backend/src/test/java/corea/scheduler/service/UpdateTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package corea.scheduler.service;

import config.ServiceTest;
import config.TestAsyncConfig;
import corea.fixture.MemberFixture;
import corea.fixture.RoomFixture;
import corea.member.domain.Member;
import corea.member.repository.MemberRepository;
import corea.room.domain.Room;
import corea.room.dto.RoomCreateRequest;
import corea.room.repository.RoomRepository;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Import;

@ServiceTest
@Import(TestAsyncConfig.class)
public class UpdateTest {

@Autowired
private RoomRepository roomRepository;

@Autowired
private MemberRepository memberRepository;

protected Room room;

@BeforeEach
void setUp() {
Member member = memberRepository.save(MemberFixture.MEMBER_PORORO());
RoomCreateRequest request = RoomFixture.ROOM_CREATE_REQUEST();

room = roomRepository.save(request.toEntity(member));
}
}

0 comments on commit 22ab3aa

Please sign in to comment.