@@ -117,9 +117,74 @@ public void testFromXML_RequiredFieldsOnly() {
117117 Assert .assertNull (result .getContractTerminatedTime ());
118118 Assert .assertNull (result .getContractTerminatedMode ());
119119 Assert .assertNull (result .getContractTerminationRemark ());
120+ Assert .assertNull (result .getChangeType ());
121+ Assert .assertNull (result .getOperateTime ());
120122 } finally {
121123 // 恢复默认值
122124 XmlConfig .fastMode = false ;
123125 }
124126 }
127+
128+ /**
129+ * 测试签约回调通知 XML 解析 - change_type = ADD
130+ */
131+ @ Test
132+ public void testFromXML_SignCallback_Add () {
133+ String xmlString = "<xml>\n " +
134+ " <return_code><![CDATA[SUCCESS]]></return_code>\n " +
135+ " <appid><![CDATA[wx426b3015555b46be]]></appid>\n " +
136+ " <mch_id><![CDATA[10000098]]></mch_id>\n " +
137+ " <contract_id><![CDATA[Wx15463511252015071056489715]]></contract_id>\n " +
138+ " <plan_id>123</plan_id>\n " +
139+ " <openid><![CDATA[ozoKAt9TIPHfwVMkcniiNKZ1vbyw]]></openid>\n " +
140+ " <request_serial>1695</request_serial>\n " +
141+ " <contract_code><![CDATA[100001256]]></contract_code>\n " +
142+ " <change_type><![CDATA[ADD]]></change_type>\n " +
143+ " <operate_time>2015-07-01 10:00:00</operate_time>\n " +
144+ " <contract_expired_time>2016-07-01 10:00:00</contract_expired_time>\n " +
145+ " <sign><![CDATA[C380BEC2BFD727A4B6845133519F3AD6]]></sign>\n " +
146+ "</xml>" ;
147+
148+ XmlConfig .fastMode = true ;
149+ try {
150+ WxSignQueryResult result = WxSignQueryResult .fromXML (xmlString , WxSignQueryResult .class );
151+
152+ Assert .assertEquals (result .getChangeType (), "ADD" );
153+ Assert .assertEquals (result .getOperateTime (), "2015-07-01 10:00:00" );
154+ } finally {
155+ XmlConfig .fastMode = false ;
156+ }
157+ }
158+
159+ /**
160+ * 测试解约回调通知 XML 解析 - change_type = DELETE
161+ */
162+ @ Test
163+ public void testFromXML_SignCallback_Delete () {
164+ String xmlString = "<xml>\n " +
165+ " <return_code><![CDATA[SUCCESS]]></return_code>\n " +
166+ " <appid><![CDATA[wx426b3015555b46be]]></appid>\n " +
167+ " <mch_id><![CDATA[10000098]]></mch_id>\n " +
168+ " <contract_id><![CDATA[Wx15463511252015071056489715]]></contract_id>\n " +
169+ " <plan_id>123</plan_id>\n " +
170+ " <openid><![CDATA[ozoKAt9TIPHfwVMkcniiNKZ1vbyw]]></openid>\n " +
171+ " <request_serial>1695</request_serial>\n " +
172+ " <contract_code><![CDATA[100001256]]></contract_code>\n " +
173+ " <change_type><![CDATA[DELETE]]></change_type>\n " +
174+ " <operate_time>2015-07-01 11:00:00</operate_time>\n " +
175+ " <contract_termination_mode>2</contract_termination_mode>\n " +
176+ " <sign><![CDATA[C380BEC2BFD727A4B6845133519F3AD6]]></sign>\n " +
177+ "</xml>" ;
178+
179+ XmlConfig .fastMode = true ;
180+ try {
181+ WxSignQueryResult result = WxSignQueryResult .fromXML (xmlString , WxSignQueryResult .class );
182+
183+ Assert .assertEquals (result .getChangeType (), "DELETE" );
184+ Assert .assertEquals (result .getOperateTime (), "2015-07-01 11:00:00" );
185+ Assert .assertEquals (result .getContractTerminatedMode ().intValue (), 2 );
186+ } finally {
187+ XmlConfig .fastMode = false ;
188+ }
189+ }
125190}
0 commit comments