From b882c673d999a68de54a1416bb1b3c171e31e43a Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 20 May 2026 10:22:12 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#4013=20=E3=80=90=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E3=80=91=E4=BF=AE=E5=A4=8D=E5=BF=AB=E9=80=92=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82=E9=87=8C=E7=9A=84?= =?UTF-8?q?=E4=BF=9D=E4=BB=B7=E5=AD=97=E6=AE=B5=E8=A2=AB=20`final`=20?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/WxMaExpressOrderInsured.java | 5 +- .../request/WxMaExpressOrderInsuredTest.java | 56 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsuredTest.java diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsured.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsured.java index d7ccda9ae..074b65382 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsured.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsured.java @@ -30,7 +30,8 @@ public class WxMaExpressOrderInsured implements Serializable { * */ @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; } diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsuredTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsuredTest.java new file mode 100644 index 000000000..f30839814 --- /dev/null +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressOrderInsuredTest.java @@ -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")); + } +}