package com.tourguide.modules.feedback.service;
|
|
import com.tourguide.modules.feedback.dto.UserFeedbackResponse;
|
import com.tourguide.modules.feedback.entity.UserFeedback;
|
import com.tourguide.modules.feedback.mapper.UserFeedbackMapper;
|
import com.tourguide.modules.user.entity.GuideUser;
|
import com.tourguide.modules.user.entity.MiniUser;
|
import org.junit.jupiter.api.Test;
|
import org.mockito.ArgumentCaptor;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.verify;
|
|
class UserFeedbackServiceTest {
|
@Test
|
void shouldCreateVisitorFeedbackWithUserSnapshot() {
|
UserFeedbackMapper feedbackMapper = mock(UserFeedbackMapper.class);
|
UserFeedbackService feedbackService = new UserFeedbackService(feedbackMapper);
|
MiniUser user = new MiniUser();
|
user.setId(8L);
|
user.setUsername("visitor_8");
|
user.setNickname("游客昵称");
|
user.setRealName("张三");
|
user.setMobile("13800138000");
|
|
UserFeedbackResponse response = feedbackService.createVisitor(user, " 反馈内容 ");
|
|
ArgumentCaptor<UserFeedback> captor = ArgumentCaptor.forClass(UserFeedback.class);
|
verify(feedbackMapper).insert(captor.capture());
|
UserFeedback feedback = captor.getValue();
|
assertThat(feedback.getFeedbackNo()).startsWith("FB").hasSize(24);
|
assertThat(feedback.getFeedbackType()).isEqualTo("VISITOR");
|
assertThat(feedback.getUserId()).isEqualTo(8L);
|
assertThat(feedback.getUserName()).isEqualTo("张三");
|
assertThat(feedback.getUserMobile()).isEqualTo("13800138000");
|
assertThat(feedback.getContent()).isEqualTo("反馈内容");
|
assertThat(feedback.getStatus()).isZero();
|
assertThat(response.getFeedbackNo()).isEqualTo(feedback.getFeedbackNo());
|
}
|
|
@Test
|
void shouldCreateGuideFeedbackWithGuideSnapshot() {
|
UserFeedbackMapper feedbackMapper = mock(UserFeedbackMapper.class);
|
UserFeedbackService feedbackService = new UserFeedbackService(feedbackMapper);
|
GuideUser guide = new GuideUser();
|
guide.setId(12L);
|
guide.setUsername("guide_12");
|
guide.setRealName("李导游");
|
guide.setMobile("13900139000");
|
|
UserFeedbackResponse response = feedbackService.createGuide(guide, " 导游反馈 ");
|
|
ArgumentCaptor<UserFeedback> captor = ArgumentCaptor.forClass(UserFeedback.class);
|
verify(feedbackMapper).insert(captor.capture());
|
UserFeedback feedback = captor.getValue();
|
assertThat(feedback.getFeedbackNo()).startsWith("FB").hasSize(24);
|
assertThat(feedback.getFeedbackType()).isEqualTo("GUIDE");
|
assertThat(feedback.getUserId()).isEqualTo(12L);
|
assertThat(feedback.getUserName()).isEqualTo("李导游");
|
assertThat(feedback.getUserMobile()).isEqualTo("13900139000");
|
assertThat(feedback.getContent()).isEqualTo("导游反馈");
|
assertThat(feedback.getStatus()).isZero();
|
assertThat(response.getFeedbackNo()).isEqualTo(feedback.getFeedbackNo());
|
}
|
}
|