1
0
mirror of synced 2026-05-21 18:06:16 +08:00

🎨 #4013 【小程序】修复快递下单接口请求里的保价字段被 final 固定导致无法配置的问题

This commit is contained in:
Copilot
2026-05-20 10:22:12 +08:00
committed by GitHub
parent 79307f7628
commit b882c673d9
2 changed files with 59 additions and 2 deletions

View File

@@ -30,7 +30,8 @@ public class WxMaExpressOrderInsured implements Serializable {
* </pre>
*/
@SerializedName("use_insured")
private final Integer useInsured = WxMaConstants.OrderAddInsured.INSURED_PROGRAM;
@Builder.Default
private Integer useInsured = WxMaConstants.OrderAddInsured.INSURED_PROGRAM;
/**
* 保价金额
@@ -41,6 +42,6 @@ public class WxMaExpressOrderInsured implements Serializable {
*/
@SerializedName("insured_value")
@Builder.Default
private final Integer insuredValue = WxMaConstants.OrderAddInsured.DEFAULT_INSURED_VALUE;
private Integer insuredValue = WxMaConstants.OrderAddInsured.DEFAULT_INSURED_VALUE;
}

View File

@@ -0,0 +1,56 @@
package cn.binarywang.wx.miniapp.bean.express.request;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
public class WxMaExpressOrderInsuredTest {
@Test
public void testDefaultValueWithNoArgsConstructor() {
WxMaExpressOrderInsured insured = new WxMaExpressOrderInsured();
assertEquals(insured.getUseInsured(), Integer.valueOf(WxMaConstants.OrderAddInsured.INSURED_PROGRAM));
assertEquals(insured.getInsuredValue(), Integer.valueOf(WxMaConstants.OrderAddInsured.DEFAULT_INSURED_VALUE));
}
@Test
public void testCanModifyInsuredConfigBySetter() {
WxMaExpressOrderInsured insured = new WxMaExpressOrderInsured();
insured.setUseInsured(WxMaConstants.OrderAddInsured.USE_INSURED);
insured.setInsuredValue(10000);
assertEquals(insured.getUseInsured(), Integer.valueOf(WxMaConstants.OrderAddInsured.USE_INSURED));
assertEquals(insured.getInsuredValue(), Integer.valueOf(10000));
}
@Test
public void testBuilderSupportsCustomInsuredConfig() {
WxMaExpressOrderInsured insured = WxMaExpressOrderInsured.builder()
.useInsured(WxMaConstants.OrderAddInsured.USE_INSURED)
.insuredValue(5000)
.build();
assertEquals(insured.getUseInsured(), Integer.valueOf(WxMaConstants.OrderAddInsured.USE_INSURED));
assertEquals(insured.getInsuredValue(), Integer.valueOf(5000));
String json = WxMaGsonBuilder.create().toJson(insured);
assertTrue(json.contains("\"use_insured\":1"));
assertTrue(json.contains("\"insured_value\":5000"));
}
@Test
public void testBuilderDefaultsWhenNoFieldSet() {
WxMaExpressOrderInsured insured = WxMaExpressOrderInsured.builder().build();
assertEquals(insured.getUseInsured(), Integer.valueOf(WxMaConstants.OrderAddInsured.INSURED_PROGRAM));
assertEquals(insured.getInsuredValue(), Integer.valueOf(WxMaConstants.OrderAddInsured.DEFAULT_INSURED_VALUE));
String json = WxMaGsonBuilder.create().toJson(insured);
assertTrue(json.contains("\"use_insured\":0"));
assertTrue(json.contains("\"insured_value\":0"));
}
}