fix: 修复 TradeOrderUpdateServiceTest

This commit is contained in:
DevDengChao 2024-05-15 13:44:57 +08:00
parent c68f32cefe
commit 9c111acfbe
2 changed files with 203 additions and 122 deletions

View File

@ -1,33 +1,49 @@
package cn.iocoder.yudao.module.trade.service.order;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
import cn.iocoder.yudao.module.member.api.address.MemberAddressApi;
import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
import cn.iocoder.yudao.module.product.api.comment.ProductCommentApi;
import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.express.DeliveryExpressCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
import cn.iocoder.yudao.module.trade.dal.redis.no.TradeNoRedisDAO;
import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderConfig;
import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
import cn.iocoder.yudao.module.trade.service.cart.CartServiceImpl;
import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressService;
import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressServiceImpl;
import cn.iocoder.yudao.module.trade.service.message.TradeMessageServiceImpl;
import cn.iocoder.yudao.module.trade.service.order.handler.TradeOrderHandler;
import cn.iocoder.yudao.module.trade.service.price.TradePriceServiceImpl;
import cn.iocoder.yudao.module.trade.service.price.calculator.TradePriceCalculator;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import jakarta.annotation.Resource;
import java.time.Duration;
import java.util.UUID;
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
@ -37,8 +53,10 @@ import static org.mockito.Mockito.when;
* @author LeeYan9
* @since 2022-09-07
*/
@Disabled // TODO 芋艿后续 fix 补充的单测
@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class})
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class, CartServiceImpl.class, TradePriceServiceImpl.class,
DeliveryExpressServiceImpl.class, TradeMessageServiceImpl.class
})
public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
@Resource
@ -55,6 +73,8 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
private ProductSpuApi productSpuApi;
@MockBean
private ProductSkuApi productSkuApi;
@MockBean
private ProductCommentApi productCommentApi;
// @MockBean
// private PriceApi priceApi;
@MockBean
@ -66,11 +86,22 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
@MockBean
private TradeOrderProperties tradeOrderProperties;
@MockBean
private TradeNoRedisDAO tradeNoRedisDAO;
@MockBean
private TradeOrderHandler tradeOrderHandler;
@MockBean
private TradePriceCalculator tradePriceCalculator;
@MockBean
private NotifyMessageSendApi notifyMessageSendApi;
@Autowired
private DeliveryExpressService deliveryExpressService;
@BeforeEach
public void setUp() {
when(tradeOrderProperties.getAppId()).thenReturn(888L);
when(tradeOrderProperties.getPayExpireTime()).thenReturn(Duration.ofDays(1));
when(tradeNoRedisDAO.generate(anyString())).thenReturn(UUID.randomUUID().toString());
}
// @Test
@ -259,11 +290,18 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
TradeOrderDO order = randomPojo(TradeOrderDO.class, o -> {
o.setId(1L).setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus());
o.setLogisticsId(null).setLogisticsNo(null).setDeliveryTime(null);
o.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
o.setDeliveryType(DeliveryTypeEnum.EXPRESS.getType());
});
tradeOrderMapper.insert(order);
DeliveryExpressCreateReqVO expressCreateReqVO = new DeliveryExpressCreateReqVO();
expressCreateReqVO.setCode("code").setName("Name").setLogo("logo").setSort(0).setStatus(CommonStatusEnum.ENABLE.getStatus());
Long deliveryExpressId = deliveryExpressService.createDeliveryExpress(expressCreateReqVO);
// 准备参数
TradeOrderDeliveryReqVO deliveryReqVO = new TradeOrderDeliveryReqVO().setId(1L)
.setLogisticsId(10L).setLogisticsNo("100");
.setLogisticsId(deliveryExpressId).setLogisticsNo("100");
// mock 方法支付单
// 调用

View File

@ -1,4 +1,5 @@
CREATE TABLE IF NOT EXISTS "trade_order" (
CREATE TABLE IF NOT EXISTS "trade_order"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"no" varchar NOT NULL,
"type" int NOT NULL,
@ -10,16 +11,19 @@ CREATE TABLE IF NOT EXISTS "trade_order" (
"product_count" int NOT NULL,
"cancel_type" int,
"remark" varchar,
"comment_status" boolean,
"brokerage_user_id" bigint,
"pay_status" bit NOT NULL,
"pay_time" datetime,
"finish_time" datetime,
"cancel_time" datetime,
"original_price" int NOT NULL,
"order_price" int NOT NULL,
"total_price" int NULL,
"order_price" int NULL,
"discount_price" int NOT NULL,
"delivery_price" int NOT NULL,
"adjust_price" int NOT NULL,
"pay_price" int NOT NULL,
"delivery_type" int NOT NULL,
"pay_order_id" bigint,
"pay_channel_code" varchar,
"delivery_template_id" bigint,
@ -32,11 +36,24 @@ CREATE TABLE IF NOT EXISTS "trade_order" (
"receiver_area_id" int NOT NULL,
"receiver_post_code" int,
"receiver_detail_address" varchar NOT NULL,
"after_sale_status" int NOT NULL,
"refund_price" int NOT NULL,
"pick_up_store_id" long NULL,
"pick_up_verify_code" varchar NULL,
"refund_status" int NULL,
"refund_price" int NULL,
"after_sale_status" int NULL,
"coupon_id" bigint NOT NULL,
"coupon_price" int NOT NULL,
"use_point" int NULL,
"point_price" int NOT NULL,
"give_point" int NULL,
"refund_point" int NULL,
"vip_price" int NULL,
"seckill_activity_id" long NULL,
"bargain_activity_id" long NULL,
"bargain_record_id" long NULL,
"combination_activity_id" long NULL,
"combination_head_id" long NULL,
"combination_record_id" long NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
@ -45,22 +62,30 @@ CREATE TABLE IF NOT EXISTS "trade_order" (
PRIMARY KEY ("id")
) COMMENT '交易订单表';
CREATE TABLE IF NOT EXISTS "trade_order_item" (
CREATE TABLE IF NOT EXISTS "trade_order_item"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"user_id" bigint NOT NULL,
"order_id" bigint NOT NULL,
"cart_id" int 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,
"original_price" int NOT NULL,
"original_unit_price" int NOT NULL,
"comment_status" boolean NULL,
"price" int NOT NULL,
"discount_price" int NOT NULL,
"delivery_price" int NULL,
"adjust_price" int NULL,
"pay_price" int NOT NULL,
"order_part_price" int NOT NULL,
"order_divide_price" int NOT NULL,
"coupon_price" int NULL,
"point_price" int NULL,
"use_point" int NULL,
"give_point" int NULL,
"vip_price" int NULL,
"after_sale_id" long NULL,
"after_sale_status" int NOT NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
@ -70,7 +95,8 @@ CREATE TABLE IF NOT EXISTS "trade_order_item" (
PRIMARY KEY ("id")
) COMMENT '交易订单明细表';
CREATE TABLE IF NOT EXISTS "trade_after_sale" (
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,
@ -108,7 +134,8 @@ CREATE TABLE IF NOT EXISTS "trade_after_sale" (
PRIMARY KEY ("id")
) COMMENT '交易售后表';
CREATE TABLE IF NOT EXISTS "trade_after_sale_log" (
CREATE TABLE IF NOT EXISTS "trade_after_sale_log"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"user_id" bigint NOT NULL,
"user_type" int NOT NULL,
@ -189,3 +216,19 @@ CREATE TABLE IF NOT EXISTS "trade_brokerage_withdraw"
"tenant_id" bigint not null default '0',
PRIMARY KEY ("id")
) COMMENT '佣金提现';
CREATE TABLE IF NOT EXISTS "trade_delivery_express"
(
"id" int NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"code" varchar NULL,
"name" varchar,
"logo" varchar NULL,
"sort" int NOT NULL,
"status" int NOT NULL,
"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 '佣金提现';