Skip to content

Commit b9987b3

Browse files
committed
feat[post]:페이징추가
1 parent bb72226 commit b9987b3

File tree

1 file changed

+90
-90
lines changed

1 file changed

+90
-90
lines changed
Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,90 @@
1-
//package com.ai.lawyer.domain.poll.service;
2-
//
3-
//import com.ai.lawyer.domain.poll.dto.PollCreateDto;
4-
//import com.ai.lawyer.domain.poll.dto.PollDto;
5-
//import com.ai.lawyer.domain.poll.dto.PollUpdateDto;
6-
//import com.ai.lawyer.domain.poll.dto.PollVoteDto;
7-
//import com.ai.lawyer.domain.poll.dto.PollStaticsResponseDto;
8-
//import com.ai.lawyer.domain.poll.entity.Poll;
9-
//import com.ai.lawyer.domain.post.entity.Post;
10-
//import com.ai.lawyer.domain.post.repository.PostRepository;
11-
//import com.ai.lawyer.domain.member.entity.Member;
12-
//import com.ai.lawyer.domain.member.repositories.MemberRepository;
13-
//import com.ai.lawyer.domain.poll.repository.PollRepository;
14-
//import org.junit.jupiter.api.DisplayName;
15-
//import org.junit.jupiter.api.Test;
16-
//import org.springframework.beans.factory.annotation.Autowired;
17-
//import org.springframework.boot.test.context.SpringBootTest;
18-
//import org.springframework.transaction.annotation.Transactional;
19-
//import org.springframework.web.server.ResponseStatusException;
20-
//
21-
//import java.util.List;
22-
//
23-
//import static org.assertj.core.api.Assertions.*;
24-
//
25-
//@SpringBootTest
26-
//@Transactional
27-
//class PollAutoCloseTest {
28-
// @Autowired
29-
// private PollService pollService;
30-
//
31-
// @Autowired
32-
// private PostRepository postRepository;
33-
//
34-
// @Autowired
35-
// private MemberRepository memberRepository;
36-
//
37-
// @Autowired
38-
// private PollRepository pollRepository;
39-
//
40-
// @Test
41-
// @DisplayName("autoClose 예약 종료 자동 처리 기능(정책 우회)")
42-
// void autoCloseTest() throws Exception {
43-
// // 테스트용 member 생성
44-
// Member member = Member.builder()
45-
// .loginId("[email protected]")
46-
// .password("pw")
47-
// .age(20)
48-
// .gender(Member.Gender.MALE)
49-
// .role(Member.Role.USER)
50-
// .name("테스트유저")
51-
// .build();
52-
// member = memberRepository.save(member);
53-
//
54-
// // 테스트용 post 생성
55-
// Post post = new Post();
56-
// post.setPostName("테스트용 게시글");
57-
// post.setPostContent("테스트 내용");
58-
// post.setCategory("테스트");
59-
// post.setCreatedAt(java.time.LocalDateTime.now());
60-
// post.setMember(member);
61-
// post = postRepository.save(post);
62-
//
63-
// PollCreateDto createDto = new PollCreateDto();
64-
// createDto.setPostId(post.getPostId());
65-
// createDto.setVoteTitle("autoClose 테스트");
66-
// createDto.setReservedCloseAt(java.time.LocalDateTime.now().plusHours(1).plusSeconds(1));
67-
// // 투표 항목 2개 추가
68-
// var option1 = new com.ai.lawyer.domain.poll.dto.PollOptionCreateDto();
69-
// option1.setContent("찬성");
70-
// var option2 = new com.ai.lawyer.domain.poll.dto.PollOptionCreateDto();
71-
// option2.setContent("반대");
72-
// createDto.setPollOptions(java.util.Arrays.asList(option1, option2));
73-
// PollDto created = pollService.createPoll(createDto, member.getMemberId());
74-
//
75-
// // 2. 생성 직후 상태는 ONGOING이어야 함
76-
// PollDto ongoing = pollService.getPoll(created.getPollId());
77-
// assertThat(ongoing.getStatus()).isEqualTo(PollDto.PollStatus.ONGOING);
78-
//
79-
// // 3. reservedCloseAt을 DB에서 과거로 강제 변경
80-
// var poll = pollRepository.findById(created.getPollId()).get();
81-
// var reservedCloseAtField = poll.getClass().getDeclaredField("reservedCloseAt");
82-
// reservedCloseAtField.setAccessible(true);
83-
// reservedCloseAtField.set(poll, java.time.LocalDateTime.now().minusSeconds(1));
84-
// pollRepository.save(poll);
85-
//
86-
// // 4. getPoll 호출 시 자동 종료(CLOSED)로 바뀌는지 확인
87-
// PollDto closed = pollService.getPoll(created.getPollId());
88-
// assertThat(closed.getStatus()).isEqualTo(PollDto.PollStatus.CLOSED);
89-
// }
90-
//}
1+
package com.ai.lawyer.domain.poll.service;
2+
3+
import com.ai.lawyer.domain.poll.dto.PollCreateDto;
4+
import com.ai.lawyer.domain.poll.dto.PollDto;
5+
import com.ai.lawyer.domain.poll.dto.PollUpdateDto;
6+
import com.ai.lawyer.domain.poll.dto.PollVoteDto;
7+
import com.ai.lawyer.domain.poll.dto.PollStaticsResponseDto;
8+
import com.ai.lawyer.domain.poll.entity.Poll;
9+
import com.ai.lawyer.domain.post.entity.Post;
10+
import com.ai.lawyer.domain.post.repository.PostRepository;
11+
import com.ai.lawyer.domain.member.entity.Member;
12+
import com.ai.lawyer.domain.member.repositories.MemberRepository;
13+
import com.ai.lawyer.domain.poll.repository.PollRepository;
14+
import org.junit.jupiter.api.DisplayName;
15+
import org.junit.jupiter.api.Test;
16+
import org.springframework.beans.factory.annotation.Autowired;
17+
import org.springframework.boot.test.context.SpringBootTest;
18+
import org.springframework.transaction.annotation.Transactional;
19+
import org.springframework.web.server.ResponseStatusException;
20+
21+
import java.util.List;
22+
23+
import static org.assertj.core.api.Assertions.*;
24+
25+
@SpringBootTest
26+
@Transactional
27+
class PollAutoCloseTest {
28+
@Autowired
29+
private PollService pollService;
30+
31+
@Autowired
32+
private PostRepository postRepository;
33+
34+
@Autowired
35+
private MemberRepository memberRepository;
36+
37+
@Autowired
38+
private PollRepository pollRepository;
39+
40+
@Test
41+
@DisplayName("autoClose 예약 종료 자동 처리 기능(정책 우회)")
42+
void autoCloseTest() throws Exception {
43+
// 테스트용 member 생성
44+
Member member = Member.builder()
45+
.loginId("[email protected]")
46+
.password("pw")
47+
.age(20)
48+
.gender(Member.Gender.MALE)
49+
.role(Member.Role.USER)
50+
.name("테스트유저")
51+
.build();
52+
member = memberRepository.save(member);
53+
54+
// 테스트용 post 생성
55+
Post post = new Post();
56+
post.setPostName("테스트용 게시글");
57+
post.setPostContent("테스트 내용");
58+
post.setCategory("테스트");
59+
post.setCreatedAt(java.time.LocalDateTime.now());
60+
post.setMember(member);
61+
post = postRepository.save(post);
62+
63+
PollCreateDto createDto = new PollCreateDto();
64+
createDto.setPostId(post.getPostId());
65+
createDto.setVoteTitle("autoClose 테스트");
66+
createDto.setReservedCloseAt(java.time.LocalDateTime.now().plusHours(1).plusSeconds(1));
67+
// 투표 항목 2개 추가
68+
var option1 = new com.ai.lawyer.domain.poll.dto.PollOptionCreateDto();
69+
option1.setContent("찬성");
70+
var option2 = new com.ai.lawyer.domain.poll.dto.PollOptionCreateDto();
71+
option2.setContent("반대");
72+
createDto.setPollOptions(java.util.Arrays.asList(option1, option2));
73+
PollDto created = pollService.createPoll(createDto, member.getMemberId());
74+
75+
// 2. 생성 직후 상태는 ONGOING이어야 함
76+
PollDto ongoing = pollService.getPoll(created.getPollId());
77+
assertThat(ongoing.getStatus()).isEqualTo(PollDto.PollStatus.ONGOING);
78+
79+
// 3. reservedCloseAt을 DB에서 과거로 강제 변경
80+
var poll = pollRepository.findById(created.getPollId()).get();
81+
var reservedCloseAtField = poll.getClass().getDeclaredField("reservedCloseAt");
82+
reservedCloseAtField.setAccessible(true);
83+
reservedCloseAtField.set(poll, java.time.LocalDateTime.now().minusSeconds(1));
84+
pollRepository.save(poll);
85+
86+
// 4. getPoll 호출 시 자동 종료(CLOSED)로 바뀌는지 확인
87+
PollDto closed = pollService.getPoll(created.getPollId());
88+
assertThat(closed.getStatus()).isEqualTo(PollDto.PollStatus.CLOSED);
89+
}
90+
}

0 commit comments

Comments
 (0)