| | |
| | | package com.tourguide.modules.review.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.MybatisConfiguration; |
| | | import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; |
| | | import org.apache.ibatis.builder.MapperBuilderAssistant; |
| | | import com.tourguide.modules.order.mapper.TourOrderMapper; |
| | | import com.tourguide.modules.review.dto.GuideRatingResponse; |
| | | import com.tourguide.modules.review.entity.OrderReview; |
| | |
| | | import static org.assertj.core.api.Assertions.assertThat; |
| | | import static org.mockito.ArgumentMatchers.any; |
| | | import static org.mockito.Mockito.mock; |
| | | import static org.mockito.Mockito.verify; |
| | | import static org.mockito.Mockito.when; |
| | | import org.mockito.ArgumentCaptor; |
| | | |
| | | class OrderReviewServiceTest { |
| | | private static boolean tableInfoInitialized; |
| | | |
| | | private static void initializeTableInfo() { |
| | | if (!tableInfoInitialized) { |
| | | TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), ""), OrderReview.class); |
| | | tableInfoInitialized = true; |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | void guideRatingsShouldReturnGuideScoreAndVisibleReviewPage() { |
| | | OrderReviewMapper reviewMapper = mock(OrderReviewMapper.class); |
| | |
| | | assertThat(response.getRows().get(0).getComment()).isEqualTo("讲解专业"); |
| | | assertThat(response.getRows().get(0).getImages()).isEmpty(); |
| | | } |
| | | |
| | | @Test |
| | | void pageShouldFilterReviewsByVisitorId() { |
| | | initializeTableInfo(); |
| | | OrderReviewMapper reviewMapper = mock(OrderReviewMapper.class); |
| | | OrderReviewService reviewService = new OrderReviewService( |
| | | reviewMapper, mock(TourOrderMapper.class), mock(GuideUserMapper.class), |
| | | mock(GuideAutoDisableService.class)); |
| | | when(reviewMapper.selectPage(any(Page.class), any())).thenAnswer(invocation -> invocation.getArgument(0)); |
| | | |
| | | reviewService.page(1, 10, null, 42L, null, null, null, null, null); |
| | | |
| | | ArgumentCaptor<LambdaQueryWrapper<OrderReview>> queryCaptor = ArgumentCaptor.forClass(LambdaQueryWrapper.class); |
| | | verify(reviewMapper).selectPage(any(Page.class), queryCaptor.capture()); |
| | | queryCaptor.getValue().getSqlSegment(); |
| | | assertThat(queryCaptor.getValue().getParamNameValuePairs().values()).contains(42L); |
| | | } |
| | | } |