mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-08-14 18:21:53 +08:00
trade:【交易售后】增加申请售后的单元测试
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package cn.iocoder.yudao.module.trade.service.aftersale;
|
||||
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import cn.iocoder.yudao.module.pay.api.refund.PayRefundApi;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.aftersale.vo.AppTradeAfterSaleCreateReqVO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.TradeAfterSaleDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.mysql.aftersale.TradeAfterSaleMapper;
|
||||
import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleStatusEnum;
|
||||
import cn.iocoder.yudao.module.trade.enums.aftersale.TradeAfterSaleTypeEnum;
|
||||
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderItemAfterSaleStatusEnum;
|
||||
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
|
||||
import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* {@link TradeAfterSaleService} 的单元测试
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(TradeAfterSaleServiceImpl.class)
|
||||
public class TradeAfterSaleServiceTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private TradeAfterSaleServiceImpl tradeAfterSaleService;
|
||||
|
||||
@Resource
|
||||
private TradeAfterSaleMapper tradeAfterSaleMapper;
|
||||
|
||||
@MockBean
|
||||
private TradeOrderService tradeOrderService;
|
||||
@MockBean
|
||||
private PayRefundApi payRefundApi;
|
||||
|
||||
@MockBean
|
||||
private TradeOrderProperties tradeOrderProperties;
|
||||
|
||||
@Test
|
||||
public void testCreateAfterSale() {
|
||||
// 准备参数
|
||||
Long userId = 1024L;
|
||||
AppTradeAfterSaleCreateReqVO createReqVO = new AppTradeAfterSaleCreateReqVO()
|
||||
.setOrderItemId(1L).setRefundPrice(100).setType(TradeAfterSaleTypeEnum.RETURN_AND_REFUND.getType())
|
||||
.setApplyReason("退钱").setApplyDescription("快退")
|
||||
.setApplyPicUrls(asList("https://www.baidu.com/1.png", "https://www.baidu.com/2.png"));
|
||||
// mock 方法(交易订单项)
|
||||
TradeOrderItemDO orderItem = randomPojo(TradeOrderItemDO.class, o -> {
|
||||
o.setOrderId(111L).setUserId(userId).setOrderDividePrice(200);
|
||||
o.setAfterSaleStatus(TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
|
||||
});
|
||||
when(tradeOrderService.getOrderItem(eq(1024L), eq(1L)))
|
||||
.thenReturn(orderItem);
|
||||
// mock 方法(交易订单)
|
||||
TradeOrderDO order = randomPojo(TradeOrderDO.class, o -> o.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus()));
|
||||
when(tradeOrderService.getOrder(eq(1024L), eq(111L))).thenReturn(order);
|
||||
|
||||
// 调用
|
||||
Long afterSaleId = tradeAfterSaleService.createAfterSale(userId, createReqVO);
|
||||
// 断言
|
||||
TradeAfterSaleDO afterSale = tradeAfterSaleMapper.selectById(afterSaleId);
|
||||
assertNotNull(afterSale.getNo());
|
||||
assertEquals(afterSale.getStatus(), TradeAfterSaleStatusEnum.APPLY.getStatus());
|
||||
assertPojoEquals(afterSale, createReqVO);
|
||||
assertEquals(afterSale.getUserId(), 1024L);
|
||||
assertPojoEquals(afterSale, orderItem, "id", "creator", "createTime", "updater", "updateTime");
|
||||
assertNull(afterSale.getPayRefundId());
|
||||
assertNull(afterSale.getRefundTime());
|
||||
assertNull(afterSale.getLogisticsId());
|
||||
assertNull(afterSale.getLogisticsNo());
|
||||
assertNull(afterSale.getDeliveryTime());
|
||||
assertNull(afterSale.getReceiveReason());
|
||||
}
|
||||
|
||||
}
|
@@ -51,7 +51,7 @@ import static org.mockito.Mockito.when;
|
||||
* @since 2022-09-07
|
||||
*/
|
||||
@Import({TradeOrderServiceImpl.class, TradeOrderConfig.class})
|
||||
class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
public class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private TradeOrderServiceImpl tradeOrderService;
|
||||
@@ -196,7 +196,7 @@ class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
assertEquals(tradeOrderItemDO01.getProperties().size(), 1);
|
||||
assertEquals(tradeOrderItemDO01.getProperties().get(0).getPropertyId(), 111L);
|
||||
assertEquals(tradeOrderItemDO01.getProperties().get(0).getValueId(), 222L);
|
||||
assertEquals(tradeOrderItemDO01.getName(), sku01.getName());
|
||||
assertEquals(tradeOrderItemDO01.getSpuName(), sku01.getSpuName());
|
||||
assertEquals(tradeOrderItemDO01.getPicUrl(), sku01.getPicUrl());
|
||||
assertEquals(tradeOrderItemDO01.getCount(), 3);
|
||||
assertEquals(tradeOrderItemDO01.getOriginalPrice(), 150);
|
||||
@@ -216,7 +216,7 @@ class TradeOrderServiceTest extends BaseDbUnitTest {
|
||||
assertEquals(tradeOrderItemDO02.getProperties().size(), 1);
|
||||
assertEquals(tradeOrderItemDO02.getProperties().get(0).getPropertyId(), 333L);
|
||||
assertEquals(tradeOrderItemDO02.getProperties().get(0).getValueId(), 444L);
|
||||
assertEquals(tradeOrderItemDO02.getName(), sku02.getName());
|
||||
assertEquals(tradeOrderItemDO02.getSpuName(), sku02.getSpuName());
|
||||
assertEquals(tradeOrderItemDO02.getPicUrl(), sku02.getPicUrl());
|
||||
assertEquals(tradeOrderItemDO02.getCount(), 4);
|
||||
assertEquals(tradeOrderItemDO02.getOriginalPrice(), 80);
|
||||
|
@@ -1,2 +1,3 @@
|
||||
DELETE FROM trade_order;
|
||||
DELETE FROM trade_order_item;
|
||||
DELETE FROM trade_order_item;
|
||||
DELETE FROM trade_after_sale;
|
||||
|
@@ -50,9 +50,9 @@ CREATE TABLE IF NOT EXISTS "trade_order_item" (
|
||||
"user_id" bigint NOT NULL,
|
||||
"order_id" bigint NOT NULL,
|
||||
"spu_id" bigint NOT NULL,
|
||||
"spu_name" varchar NOT NULL,
|
||||
"sku_id" bigint NOT NULL,
|
||||
"properties" varchar,
|
||||
"name" varchar NOT NULL,
|
||||
"pic_url" varchar,
|
||||
"count" int NOT NULL,
|
||||
"original_price" int NOT NULL,
|
||||
@@ -69,3 +69,39 @@ CREATE TABLE IF NOT EXISTS "trade_order_item" (
|
||||
"deleted" bit NOT NULL DEFAULT FALSE,
|
||||
PRIMARY KEY ("id")
|
||||
) COMMENT '交易订单明细表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "trade_after_sale" (
|
||||
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
|
||||
"no" varchar NOT NULL,
|
||||
"status" int NOT NULL,
|
||||
"type" int NOT NULL,
|
||||
"user_id" bigint NOT NULL,
|
||||
"apply_reason" varchar NOT NULL,
|
||||
"apply_description" varchar,
|
||||
"apply_pic_urls" varchar,
|
||||
"order_id" bigint NOT NULL,
|
||||
"order_item_id" bigint NOT NULL,
|
||||
"spu_id" bigint NOT NULL,
|
||||
"spu_name" varchar NOT NULL,
|
||||
"sku_id" bigint NOT NULL,
|
||||
"properties" varchar,
|
||||
"pic_url" varchar,
|
||||
"count" int NOT NULL,
|
||||
"audit_time" varchar,
|
||||
"audit_user_id" bigint,
|
||||
"audit_reason" varchar,
|
||||
"refund_price" int NOT NULL,
|
||||
"pay_refund_id" bigint,
|
||||
"refund_time" varchar,
|
||||
"logistics_id" bigint,
|
||||
"logistics_no" varchar,
|
||||
"delivery_time" varchar,
|
||||
"receive_time" varchar,
|
||||
"receive_reason" varchar,
|
||||
"creator" varchar DEFAULT '',
|
||||
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updater" varchar DEFAULT '',
|
||||
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
"deleted" bit NOT NULL DEFAULT FALSE,
|
||||
PRIMARY KEY ("id")
|
||||
) COMMENT '交易售后表';
|
||||
|
Reference in New Issue
Block a user