快递100 快递查询实现

This commit is contained in:
jason
2023-06-11 18:15:33 +08:00
parent 45e5578cb4
commit 644d976a78
11 changed files with 293 additions and 40 deletions

View File

@@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.trade.framework.delivery.core.impl;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressQueryProperties;
import cn.iocoder.yudao.module.trade.framework.delivery.core.dto.ExpressQueryReqDTO;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.ActiveProfiles;
import javax.annotation.Resource;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* @author jason
*/
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = Kd100ExpressQueryProviderTest.Application.class)
@ActiveProfiles("trade-delivery-query") // 设置使用 trade-delivery-query 配置文件
public class Kd100ExpressQueryProviderTest {
@Resource
private RestTemplateBuilder builder;
@Resource
private TradeExpressQueryProperties expressQueryProperties;
private Kd100ExpressQueryProvider kd100ExpressQueryProvider;
@BeforeEach
public void init(){
kd100ExpressQueryProvider = new Kd100ExpressQueryProvider(builder.build(),expressQueryProperties.getKd100());
}
@Test
@Disabled("需要 授权 key. 暂时忽略")
void testRealTimeQueryExpressFailed() {
ServiceException t = assertThrows(ServiceException.class, () -> {
ExpressQueryReqDTO reqDTO = new ExpressQueryReqDTO();
reqDTO.setExpressCompanyCode("yto");
reqDTO.setLogisticsNo("YT9383342193097");
kd100ExpressQueryProvider.realTimeQueryExpress(reqDTO);
});
assertEquals(1011003007, t.getCode());
}
@Import({
RestTemplateAutoConfiguration.class
})
@EnableConfigurationProperties(TradeExpressQueryProperties.class)
public static class Application {
}
}

View File

@@ -1,9 +1,10 @@
package cn.iocoder.yudao.module.trade.framework.delivery.core.impl;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressQueryProperties;
import cn.iocoder.yudao.module.trade.framework.delivery.core.dto.ExpressQueryReqDTO;
import cn.iocoder.yudao.module.trade.framework.delivery.core.dto.ExpressQueryRespDTO;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -13,9 +14,8 @@ import org.springframework.context.annotation.Import;
import org.springframework.test.context.ActiveProfiles;
import javax.annotation.Resource;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* @author jason
@@ -35,12 +35,14 @@ public class KdNiaoExpressQueryProviderTest {
kdNiaoExpressQueryProvider = new KdNiaoExpressQueryProvider(builder.build(),expressQueryProperties.getKdNiao());
}
@Test
void queryExpress() {
ExpressQueryReqDTO reqDTO = new ExpressQueryReqDTO();
reqDTO.setExpressCompanyCode("yto");
reqDTO.setLogisticsNo("YT1764381060802");
List<ExpressQueryRespDTO> expressQueryRespDTOS = kdNiaoExpressQueryProvider.realTimeQueryExpress(reqDTO);
assertNotNull(expressQueryRespDTOS);
@Disabled("需要 授权 key. 暂时忽略")
void testRealTimeQueryExpressFailed() {
assertThrows(ServiceException.class,() ->{
ExpressQueryReqDTO reqDTO = new ExpressQueryReqDTO();
reqDTO.setExpressCompanyCode("yy");
reqDTO.setLogisticsNo("YT9383342193097");
kdNiaoExpressQueryProvider.realTimeQueryExpress(reqDTO);
});
}
@Import({

View File

@@ -3,7 +3,7 @@ spring:
lazy-initialization: true # 开启懒加载,加快速度
banner-mode: off # 单元测试,禁用 Banner
--- #################### 数据库相关配置 ####################
--- #################### 交易快递查询相关配置 ####################
yudao:
trade:
@@ -11,5 +11,8 @@ yudao:
query:
express-query-provider: kd_niao
kd-niao:
api-key: 8e22d97d-6a3d-442e-b243-2190c9f0cfdd
business-id: 1801700
api-key: xxx
business-id: xxxxxxxx
kd100:
customer: xxxx
key: xxxxx