Commit 0f5d6366a9b881142e19e838f3fc8b313d0a4279

Authored by 芋道源码
Committed by GitHub
2 parents 97e8c35f 8e2cd77a

Merge pull request #525 from DevDengChao/fix/trade-order-update-service-unit-test

修复 TradeOrderUpdateService 的单元测试
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
... ... @@ -322,7 +322,7 @@ public class TradeOrderDO extends BaseDO {
322 322 *
323 323 * 关联 CombinationRecordDO 的 headId 字段
324 324 */
325   - private Long combinationHeadId;
  325 + private Long combinationHeadId; // FIXME 2024/5/15: "团长" 应该译作 leader / starter 而不是 head
326 326 /**
327 327 * 拼团记录编号
328 328 *
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceTest.java
1 1 package cn.iocoder.yudao.module.trade.service.order;
2 2  
  3 +import cn.hutool.core.util.IdUtil;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
4 6 import cn.iocoder.yudao.module.member.api.address.MemberAddressApi;
5 7 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
6 8 import cn.iocoder.yudao.module.pay.api.order.PayOrderApi;
7 9 import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderRespDTO;
8 10 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
  11 +import cn.iocoder.yudao.module.product.api.comment.ProductCommentApi;
9 12 import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
10 13 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
11 14 import cn.iocoder.yudao.module.promotion.api.coupon.CouponApi;
  15 +import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
  16 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.express.DeliveryExpressCreateReqVO;
12 17 import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
13 18 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
14 19 import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
15 20 import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderMapper;
  21 +import cn.iocoder.yudao.module.trade.dal.redis.no.TradeNoRedisDAO;
  22 +import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
  23 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;
16 24 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
17 25 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderConfig;
18 26 import cn.iocoder.yudao.module.trade.framework.order.config.TradeOrderProperties;
  27 +import cn.iocoder.yudao.module.trade.service.cart.CartServiceImpl;
  28 +import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressService;
  29 +import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressServiceImpl;
  30 +import cn.iocoder.yudao.module.trade.service.message.TradeMessageServiceImpl;
  31 +import cn.iocoder.yudao.module.trade.service.order.handler.TradeOrderHandler;
  32 +import cn.iocoder.yudao.module.trade.service.price.TradePriceServiceImpl;
  33 +import cn.iocoder.yudao.module.trade.service.price.calculator.TradePriceCalculator;
  34 +import jakarta.annotation.Resource;
19 35 import org.junit.jupiter.api.BeforeEach;
20   -import org.junit.jupiter.api.Disabled;
21 36 import org.junit.jupiter.api.Test;
  37 +import org.springframework.beans.factory.annotation.Autowired;
22 38 import org.springframework.boot.test.mock.mockito.MockBean;
23 39 import org.springframework.context.annotation.Import;
24 40  
25   -import jakarta.annotation.Resource;
26 41 import java.time.Duration;
27 42  
28 43 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
29 44 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
30 45 import static org.junit.jupiter.api.Assertions.*;
  46 +import static org.mockito.ArgumentMatchers.anyString;
31 47 import static org.mockito.ArgumentMatchers.eq;
32 48 import static org.mockito.Mockito.when;
33 49  
... ... @@ -37,8 +53,10 @@ import static org.mockito.Mockito.when;
37 53 * @author LeeYan9
38 54 * @since 2022-09-07
39 55 */
40   -@Disabled // TODO 芋艿:后续 fix 补充的单测
41   -@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class})
  56 +@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
  57 +@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class, CartServiceImpl.class, TradePriceServiceImpl.class,
  58 + DeliveryExpressServiceImpl.class, TradeMessageServiceImpl.class
  59 +})
42 60 public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
43 61  
44 62 @Resource
... ... @@ -55,7 +73,9 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
55 73 private ProductSpuApi productSpuApi;
56 74 @MockBean
57 75 private ProductSkuApi productSkuApi;
58   -// @MockBean
  76 + @MockBean
  77 + private ProductCommentApi productCommentApi;
  78 + // @MockBean
59 79 // private PriceApi priceApi;
60 80 @MockBean
61 81 private PayOrderApi payOrderApi;
... ... @@ -66,11 +86,22 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
66 86  
67 87 @MockBean
68 88 private TradeOrderProperties tradeOrderProperties;
  89 + @MockBean
  90 + private TradeNoRedisDAO tradeNoRedisDAO;
  91 + @MockBean
  92 + private TradeOrderHandler tradeOrderHandler;
  93 + @MockBean
  94 + private TradePriceCalculator tradePriceCalculator;
  95 + @MockBean
  96 + private NotifyMessageSendApi notifyMessageSendApi;
  97 + @Autowired
  98 + private DeliveryExpressService deliveryExpressService;
69 99  
70 100 @BeforeEach
71 101 public void setUp() {
72 102 when(tradeOrderProperties.getAppId()).thenReturn(888L);
73 103 when(tradeOrderProperties.getPayExpireTime()).thenReturn(Duration.ofDays(1));
  104 + when(tradeNoRedisDAO.generate(anyString())).thenReturn(IdUtil.randomUUID());
74 105 }
75 106  
76 107 // @Test
... ... @@ -259,11 +290,18 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
259 290 TradeOrderDO order = randomPojo(TradeOrderDO.class, o -> {
260 291 o.setId(1L).setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus());
261 292 o.setLogisticsId(null).setLogisticsNo(null).setDeliveryTime(null);
  293 + o.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
  294 + o.setDeliveryType(DeliveryTypeEnum.EXPRESS.getType());
262 295 });
263 296 tradeOrderMapper.insert(order);
  297 +
  298 + DeliveryExpressCreateReqVO expressCreateReqVO = new DeliveryExpressCreateReqVO();
  299 + expressCreateReqVO.setCode("code").setName("Name").setLogo("logo").setSort(0).setStatus(CommonStatusEnum.ENABLE.getStatus());
  300 + Long deliveryExpressId = deliveryExpressService.createDeliveryExpress(expressCreateReqVO);
264 301 // 准备参数
265 302 TradeOrderDeliveryReqVO deliveryReqVO = new TradeOrderDeliveryReqVO().setId(1L)
266   - .setLogisticsId(10L).setLogisticsNo("100");
  303 + .setLogisticsId(deliveryExpressId).setLogisticsNo("100");
  304 +
267 305 // mock 方法(支付单)
268 306  
269 307 // 调用
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/resources/sql/create_tables.sql
1   -CREATE TABLE IF NOT EXISTS "trade_order" (
2   - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
3   - "no" varchar NOT NULL,
4   - "type" int NOT NULL,
5   - "terminal" int NOT NULL,
6   - "user_id" bigint NOT NULL,
7   - "user_ip" varchar NOT NULL,
8   - "user_remark" varchar,
9   - "status" int NOT NULL,
10   - "product_count" int NOT NULL,
11   - "cancel_type" int,
12   - "remark" varchar,
13   - "pay_status" bit NOT NULL,
14   - "pay_time" datetime,
15   - "finish_time" datetime,
16   - "cancel_time" datetime,
17   - "original_price" int NOT NULL,
18   - "order_price" int NOT NULL,
19   - "discount_price" int NOT NULL,
20   - "delivery_price" int NOT NULL,
21   - "adjust_price" int NOT NULL,
22   - "pay_price" int NOT NULL,
23   - "pay_order_id" bigint,
24   - "pay_channel_code" varchar,
25   - "delivery_template_id" bigint,
26   - "logistics_id" bigint,
27   - "logistics_no" varchar,
28   - "delivery_time" datetime,
29   - "receive_time" datetime,
30   - "receiver_name" varchar NOT NULL,
31   - "receiver_mobile" varchar NOT NULL,
32   - "receiver_area_id" int NOT NULL,
33   - "receiver_post_code" int,
34   - "receiver_detail_address" varchar NOT NULL,
35   - "after_sale_status" int NOT NULL,
36   - "refund_price" int NOT NULL,
37   - "coupon_id" bigint NOT NULL,
38   - "coupon_price" int NOT NULL,
39   - "point_price" int NOT NULL,
40   - "creator" varchar DEFAULT '',
41   - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
42   - "updater" varchar DEFAULT '',
43   - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
44   - "deleted" bit NOT NULL DEFAULT FALSE,
45   - PRIMARY KEY ("id")
  1 +CREATE TABLE IF NOT EXISTS "trade_order"
  2 +(
  3 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  4 + "no" varchar NOT NULL,
  5 + "type" int NOT NULL,
  6 + "terminal" int NOT NULL,
  7 + "user_id" bigint NOT NULL,
  8 + "user_ip" varchar NOT NULL,
  9 + "user_remark" varchar,
  10 + "status" int NOT NULL,
  11 + "product_count" int NOT NULL,
  12 + "cancel_type" int,
  13 + "remark" varchar,
  14 + "comment_status" boolean,
  15 + "brokerage_user_id" bigint,
  16 + "pay_status" bit NOT NULL,
  17 + "pay_time" datetime,
  18 + "finish_time" datetime,
  19 + "cancel_time" datetime,
  20 + "total_price" int NULL,
  21 + "order_price" int NULL,
  22 + "discount_price" int NOT NULL,
  23 + "delivery_price" int NOT NULL,
  24 + "adjust_price" int NOT NULL,
  25 + "pay_price" int NOT NULL,
  26 + "delivery_type" int NOT NULL,
  27 + "pay_order_id" bigint,
  28 + "pay_channel_code" varchar,
  29 + "delivery_template_id" bigint,
  30 + "logistics_id" bigint,
  31 + "logistics_no" varchar,
  32 + "delivery_time" datetime,
  33 + "receive_time" datetime,
  34 + "receiver_name" varchar NOT NULL,
  35 + "receiver_mobile" varchar NOT NULL,
  36 + "receiver_area_id" int NOT NULL,
  37 + "receiver_post_code" int,
  38 + "receiver_detail_address" varchar NOT NULL,
  39 + "pick_up_store_id" long NULL,
  40 + "pick_up_verify_code" varchar NULL,
  41 + "refund_status" int NULL,
  42 + "refund_price" int NULL,
  43 + "after_sale_status" int NULL,
  44 + "coupon_id" bigint NOT NULL,
  45 + "coupon_price" int NOT NULL,
  46 + "use_point" int NULL,
  47 + "point_price" int NOT NULL,
  48 + "give_point" int NULL,
  49 + "refund_point" int NULL,
  50 + "vip_price" int NULL,
  51 + "seckill_activity_id" long NULL,
  52 + "bargain_activity_id" long NULL,
  53 + "bargain_record_id" long NULL,
  54 + "combination_activity_id" long NULL,
  55 + "combination_head_id" long NULL,
  56 + "combination_record_id" long NULL,
  57 + "creator" varchar DEFAULT '',
  58 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  59 + "updater" varchar DEFAULT '',
  60 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  61 + "deleted" bit NOT NULL DEFAULT FALSE,
  62 + PRIMARY KEY ("id")
46 63 ) COMMENT '交易订单表';
47 64  
48   -CREATE TABLE IF NOT EXISTS "trade_order_item" (
49   - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
50   - "user_id" bigint NOT NULL,
51   - "order_id" bigint NOT NULL,
52   - "spu_id" bigint NOT NULL,
53   - "spu_name" varchar NOT NULL,
54   - "sku_id" bigint NOT NULL,
55   - "properties" varchar,
56   - "pic_url" varchar,
57   - "count" int NOT NULL,
58   - "original_price" int NOT NULL,
59   - "original_unit_price" int NOT NULL,
60   - "discount_price" int NOT NULL,
61   - "pay_price" int NOT NULL,
62   - "order_part_price" int NOT NULL,
63   - "order_divide_price" int NOT NULL,
64   - "after_sale_status" int NOT NULL,
65   - "creator" varchar DEFAULT '',
66   - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
67   - "updater" varchar DEFAULT '',
68   - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
69   - "deleted" bit NOT NULL DEFAULT FALSE,
70   - PRIMARY KEY ("id")
  65 +CREATE TABLE IF NOT EXISTS "trade_order_item"
  66 +(
  67 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  68 + "user_id" bigint NOT NULL,
  69 + "order_id" bigint NOT NULL,
  70 + "cart_id" int NULL,
  71 + "spu_id" bigint NOT NULL,
  72 + "spu_name" varchar NOT NULL,
  73 + "sku_id" bigint NOT NULL,
  74 + "properties" varchar,
  75 + "pic_url" varchar,
  76 + "count" int NOT NULL,
  77 + "comment_status" boolean NULL,
  78 + "price" int NOT NULL,
  79 + "discount_price" int NOT NULL,
  80 + "delivery_price" int NULL,
  81 + "adjust_price" int NULL,
  82 + "pay_price" int NOT NULL,
  83 + "coupon_price" int NULL,
  84 + "point_price" int NULL,
  85 + "use_point" int NULL,
  86 + "give_point" int NULL,
  87 + "vip_price" int NULL,
  88 + "after_sale_id" long NULL,
  89 + "after_sale_status" int NOT NULL,
  90 + "creator" varchar DEFAULT '',
  91 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  92 + "updater" varchar DEFAULT '',
  93 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  94 + "deleted" bit NOT NULL DEFAULT FALSE,
  95 + PRIMARY KEY ("id")
71 96 ) COMMENT '交易订单明细表';
72 97  
73   -CREATE TABLE IF NOT EXISTS "trade_after_sale" (
74   - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
75   - "no" varchar NOT NULL,
76   - "status" int NOT NULL,
77   - "type" int NOT NULL,
78   - "way" int NOT NULL,
79   - "user_id" bigint NOT NULL,
80   - "apply_reason" varchar NOT NULL,
  98 +CREATE TABLE IF NOT EXISTS "trade_after_sale"
  99 +(
  100 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  101 + "no" varchar NOT NULL,
  102 + "status" int NOT NULL,
  103 + "type" int NOT NULL,
  104 + "way" int NOT NULL,
  105 + "user_id" bigint NOT NULL,
  106 + "apply_reason" varchar NOT NULL,
81 107 "apply_description" varchar,
82 108 "apply_pic_urls" varchar,
83   - "order_id" bigint NOT NULL,
84   - "order_no" varchar NOT NULL,
85   - "order_item_id" bigint NOT NULL,
86   - "spu_id" bigint NOT NULL,
87   - "spu_name" varchar NOT NULL,
88   - "sku_id" bigint NOT NULL,
89   - "properties" varchar,
90   - "pic_url" varchar,
91   - "count" int NOT NULL,
92   - "audit_time" varchar,
93   - "audit_user_id" bigint,
94   - "audit_reason" varchar,
95   - "refund_price" int NOT NULL,
96   - "pay_refund_id" bigint,
97   - "refund_time" varchar,
98   - "logistics_id" bigint,
99   - "logistics_no" varchar,
100   - "delivery_time" varchar,
101   - "receive_time" varchar,
  109 + "order_id" bigint NOT NULL,
  110 + "order_no" varchar NOT NULL,
  111 + "order_item_id" bigint NOT NULL,
  112 + "spu_id" bigint NOT NULL,
  113 + "spu_name" varchar NOT NULL,
  114 + "sku_id" bigint NOT NULL,
  115 + "properties" varchar,
  116 + "pic_url" varchar,
  117 + "count" int NOT NULL,
  118 + "audit_time" varchar,
  119 + "audit_user_id" bigint,
  120 + "audit_reason" varchar,
  121 + "refund_price" int NOT NULL,
  122 + "pay_refund_id" bigint,
  123 + "refund_time" varchar,
  124 + "logistics_id" bigint,
  125 + "logistics_no" varchar,
  126 + "delivery_time" varchar,
  127 + "receive_time" varchar,
102 128 "receive_reason" varchar,
103   - "creator" varchar DEFAULT '',
104   - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
105   - "updater" varchar DEFAULT '',
106   - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
107   - "deleted" bit NOT NULL DEFAULT FALSE,
  129 + "creator" varchar DEFAULT '',
  130 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  131 + "updater" varchar DEFAULT '',
  132 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  133 + "deleted" bit NOT NULL DEFAULT FALSE,
108 134 PRIMARY KEY ("id")
109 135 ) COMMENT '交易售后表';
110 136  
111   -CREATE TABLE IF NOT EXISTS "trade_after_sale_log" (
112   - "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
113   - "user_id" bigint NOT NULL,
114   - "user_type" int NOT NULL,
115   - "after_sale_id" bigint NOT NULL,
116   - "order_id" bigint NOT NULL,
117   - "order_item_id" bigint NOT NULL,
  137 +CREATE TABLE IF NOT EXISTS "trade_after_sale_log"
  138 +(
  139 + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  140 + "user_id" bigint NOT NULL,
  141 + "user_type" int NOT NULL,
  142 + "after_sale_id" bigint NOT NULL,
  143 + "order_id" bigint NOT NULL,
  144 + "order_item_id" bigint NOT NULL,
118 145 "before_status" int,
119   - "after_status" int NOT NULL,
120   - "content" varchar NOT NULL,
121   - "creator" varchar DEFAULT '',
122   - "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
123   - "updater" varchar DEFAULT '',
124   - "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
125   - "deleted" bit NOT NULL DEFAULT FALSE,
  146 + "after_status" int NOT NULL,
  147 + "content" varchar NOT NULL,
  148 + "creator" varchar DEFAULT '',
  149 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  150 + "updater" varchar DEFAULT '',
  151 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  152 + "deleted" bit NOT NULL DEFAULT FALSE,
126 153 PRIMARY KEY ("id")
127 154 ) COMMENT '交易售后日志';
128 155  
... ... @@ -161,7 +188,7 @@ CREATE TABLE IF NOT EXISTS "trade_brokerage_record"
161 188 "updater" varchar DEFAULT '',
162 189 "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
163 190 "deleted" bit NOT NULL DEFAULT FALSE,
164   - "tenant_id" bigint not null default '0',
  191 + "tenant_id" bigint not null default '0',
165 192 PRIMARY KEY ("id")
166 193 ) COMMENT '佣金记录';
167 194 CREATE TABLE IF NOT EXISTS "trade_brokerage_withdraw"
... ... @@ -186,6 +213,22 @@ CREATE TABLE IF NOT EXISTS "trade_brokerage_withdraw"
186 213 "updater" varchar DEFAULT '',
187 214 "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
188 215 "deleted" bit NOT NULL DEFAULT FALSE,
189   - "tenant_id" bigint not null default '0',
  216 + "tenant_id" bigint not null default '0',
  217 + PRIMARY KEY ("id")
  218 +) COMMENT '佣金提现';
  219 +
  220 +CREATE TABLE IF NOT EXISTS "trade_delivery_express"
  221 +(
  222 + "id" int NOT NULL GENERATED BY DEFAULT AS IDENTITY,
  223 + "code" varchar NULL,
  224 + "name" varchar,
  225 + "logo" varchar NULL,
  226 + "sort" int NOT NULL,
  227 + "status" int NOT NULL,
  228 + "creator" varchar DEFAULT '',
  229 + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  230 + "updater" varchar DEFAULT '',
  231 + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  232 + "deleted" bit NOT NULL DEFAULT FALSE,
190 233 PRIMARY KEY ("id")
191 234 ) COMMENT '佣金提现';
192 235 \ No newline at end of file
... ...