package com.tourguide.modules.order.dto;
|
|
import com.tourguide.modules.order.entity.TourOrder;
|
import org.junit.jupiter.api.Test;
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
class MiniOrderListResponseTest {
|
@Test
|
void completedOrderShouldDistinguishPendingReviewAndReviewed() {
|
TourOrder order = baseOrder("GROUP_QUICK", "COMPLETED");
|
|
assertEquals("pendingReview", MiniOrderListResponse.from(order, false).getDisplayStatus());
|
assertEquals("completed", MiniOrderListResponse.from(order, true).getDisplayStatus());
|
}
|
|
@Test
|
void privatePremiumShouldUseGroupPriceUnitAndPremiumDuration() {
|
MiniOrderListResponse response = MiniOrderListResponse.from(
|
baseOrder("PRIVATE_PREMIUM", "PENDING_MEETING"), false);
|
|
assertEquals("包团·精讲", response.getServiceName());
|
assertEquals(Integer.valueOf(60), response.getDurationMinutes());
|
assertEquals("团", response.getPriceUnit());
|
assertEquals("pendingGuide", response.getDisplayStatus());
|
}
|
|
@Test
|
void pendingAcceptShouldDisplayWaitingForGuideAcceptance() {
|
MiniOrderListResponse response = MiniOrderListResponse.from(
|
baseOrder("GROUP_QUICK", "PENDING_ACCEPT"), false);
|
|
assertEquals("pendingAccept", response.getDisplayStatus());
|
}
|
|
private TourOrder baseOrder(String orderType, String status) {
|
TourOrder order = new TourOrder();
|
order.setId(1L);
|
order.setOrderNo("MJ202607290001");
|
order.setScenicName("青城山景区");
|
order.setOrderType(orderType);
|
order.setPeopleCount(4);
|
order.setUnitPrice(new BigDecimal("36.00"));
|
order.setAmount(new BigDecimal("144.00"));
|
order.setPlacedAt(LocalDateTime.of(2026, 7, 29, 9, 30));
|
order.setStatus(status);
|
return order;
|
}
|
}
|