1+ package com .somemore .recruitboard .repository ;
2+
3+ import static com .somemore .common .fixture .LocalDateTimeFixture .createStartDateTime ;
4+ import static com .somemore .recruitboard .domain .VolunteerType .OTHER ;
5+ import static org .assertj .core .api .Assertions .assertThat ;
6+
7+ import com .somemore .IntegrationTestSupport ;
8+ import com .somemore .common .fixture .LocalDateTimeFixture ;
9+ import com .somemore .recruitboard .domain .RecruitBoard ;
10+ import com .somemore .recruitboard .domain .VolunteerInfo ;
11+ import java .time .LocalDateTime ;
12+ import java .util .Optional ;
13+ import java .util .UUID ;
14+ import org .junit .jupiter .api .AfterEach ;
15+ import org .junit .jupiter .api .BeforeEach ;
16+ import org .junit .jupiter .api .DisplayName ;
17+ import org .junit .jupiter .api .Test ;
18+ import org .springframework .beans .factory .annotation .Autowired ;
19+
20+ class RecruitBoardRepositoryImplTest extends IntegrationTestSupport {
21+
22+ @ Autowired
23+ private RecruitBoardRepositoryImpl recruitBoardRepository ;
24+
25+ private RecruitBoard recruitBoard ;
26+ @ BeforeEach
27+ void setUp () {
28+ recruitBoard = createRecruitBoard ();
29+ recruitBoardRepository .saveAndFlush (recruitBoard );
30+ recruitBoard .markAsDeleted ();
31+ recruitBoardRepository .saveAndFlush (recruitBoard );
32+ }
33+
34+ @ AfterEach
35+ void tearDown () {
36+ recruitBoardRepository .deleteAllInBatch ();
37+ }
38+
39+ @ DisplayName ("논리 삭제된 데이터를 id로 조회시 빈 Optional 반환된다" )
40+ @ Test
41+ void findById () {
42+ // given
43+ Long deletedId = recruitBoard .getId ();
44+
45+ // when
46+ Optional <RecruitBoard > findBoard = recruitBoardRepository .findById (deletedId );
47+
48+ // then
49+ assertThat (findBoard ).isEmpty ();
50+ }
51+
52+ private static RecruitBoard createRecruitBoard () {
53+
54+ LocalDateTime startDateTime = createStartDateTime ();
55+ LocalDateTime endDateTime = startDateTime .plusHours (1 );
56+
57+ VolunteerInfo volunteerInfo = VolunteerInfo .builder ()
58+ .region ("경기" )
59+ .recruitmentCount (1 )
60+ .volunteerStartDateTime (startDateTime )
61+ .volunteerEndDateTime (endDateTime )
62+ .volunteerType (OTHER )
63+ .admitted (true )
64+ .build ();
65+
66+ return RecruitBoard .builder ()
67+ .centerId (UUID .randomUUID ())
68+ .locationId (1L )
69+ .title ("봉사모집제목" )
70+ .content ("봉사모집내용" )
71+ .imgUrl ("https://image.domain.com/links" )
72+ .volunteerInfo (volunteerInfo )
73+ .build ();
74+ }
75+
76+ }
0 commit comments