33import static org .testng .Assert .assertEquals ;
44import static org .testng .Assert .assertFalse ;
55import static org .testng .Assert .assertNotNull ;
6+ import static org .testng .Assert .assertTrue ;
67
78import me .chanjar .weixin .channel .util .JsonUtils ;
89import org .testng .annotations .Test ;
@@ -12,10 +13,7 @@ public class WxChannelKfBeanTest {
1213
1314 @ Test
1415 public void testSendMsgParamJson () {
15- WxChannelKfSendMsgParam param = new WxChannelKfSendMsgParam ();
16- param .setRequestId ("request-1" );
17- param .setOpenId ("open-1" );
18- param .setMsgType ("text" );
16+ WxChannelKfSendMsgParam param = createSendMsgParam ("text" );
1917 WxChannelKfSendMsgParam .Text text = new WxChannelKfSendMsgParam .Text ();
2018 text .setContent ("hello" );
2119 param .setText (text );
@@ -33,6 +31,67 @@ public void testSendMsgParamJson() {
3331 assertEquals (decoded .getText ().getContent (), "hello" );
3432 }
3533
34+ @ Test
35+ public void testImageMessageJson () {
36+ WxChannelKfSendMsgParam param = createSendMsgParam ("image" );
37+ WxChannelKfSendMsgParam .CosUrlMessage image = new WxChannelKfSendMsgParam .CosUrlMessage ();
38+ image .setCosUrl ("https://example.test/image" );
39+ param .setImage (image );
40+
41+ assertCosUrlMessageJson (param , "image" , "https://example.test/image" );
42+ }
43+
44+ @ Test
45+ public void testVideoMessageJson () {
46+ WxChannelKfSendMsgParam param = createSendMsgParam ("video" );
47+ WxChannelKfSendMsgParam .CosUrlMessage video = new WxChannelKfSendMsgParam .CosUrlMessage ();
48+ video .setCosUrl ("https://example.test/video" );
49+ param .setVideo (video );
50+
51+ assertCosUrlMessageJson (param , "video" , "https://example.test/video" );
52+ }
53+
54+ @ Test
55+ public void testFileMessageJson () {
56+ WxChannelKfSendMsgParam param = createSendMsgParam ("file" );
57+ WxChannelKfSendMsgParam .CosUrlMessage file = new WxChannelKfSendMsgParam .CosUrlMessage ();
58+ file .setCosUrl ("https://example.test/file" );
59+ param .setFile (file );
60+
61+ assertCosUrlMessageJson (param , "file" , "https://example.test/file" );
62+ }
63+
64+ @ Test
65+ public void testProductShareMessageJson () {
66+ WxChannelKfSendMsgParam param = createSendMsgParam ("product_share" );
67+ WxChannelKfSendMsgParam .ProductShareMessage product =
68+ new WxChannelKfSendMsgParam .ProductShareMessage ();
69+ product .setProductId ("product-1" );
70+ param .setProductShare (product );
71+
72+ String json = JsonUtils .encode (param );
73+ assertTrue (json .contains ("\" product_share\" :{\" product_id\" :\" product-1\" }" ));
74+ assertFalse (json .contains ("productShare" ));
75+ assertFalse (json .contains ("productId" ));
76+ WxChannelKfSendMsgParam decoded = JsonUtils .decode (json , WxChannelKfSendMsgParam .class );
77+ assertEquals (decoded .getProductShare ().getProductId (), "product-1" );
78+ }
79+
80+ @ Test
81+ public void testOrderShareMessageJson () {
82+ WxChannelKfSendMsgParam param = createSendMsgParam ("order_share" );
83+ WxChannelKfSendMsgParam .OrderShareMessage order = new WxChannelKfSendMsgParam .OrderShareMessage ();
84+ order .setOrderId ("order-1" );
85+ param .setOrderShare (order );
86+
87+ String json = JsonUtils .encode (param );
88+ assertTrue (json .contains ("\" order_share\" :{\" order_id\" :\" order-1\" }" ));
89+ assertFalse (json .contains ("orderShare" ));
90+ assertFalse (json .contains ("orderId" ));
91+ WxChannelKfSendMsgParam decoded = JsonUtils .decode (json , WxChannelKfSendMsgParam .class );
92+ assertEquals (decoded .getOrderShare ().getOrderId (), "order-1" );
93+ }
94+
3695 @ Test
3796 public void testCosUploadResponseJson () {
3897 WxChannelKfCosUploadResponse response = JsonUtils .decode (
@@ -56,4 +115,27 @@ public void testSendMsgResponseJson() {
56115 assertEquals (JsonUtils .decode (JsonUtils .encode (response ), WxChannelKfSendMsgResponse .class )
57116 .getMsgId (), "msg-1" );
58117 }
118+
119+ private WxChannelKfSendMsgParam createSendMsgParam (String msgType ) {
120+ WxChannelKfSendMsgParam param = new WxChannelKfSendMsgParam ();
121+ param .setRequestId ("request-1" );
122+ param .setOpenId ("open-1" );
123+ param .setMsgType (msgType );
124+ return param ;
125+ }
126+
127+ private void assertCosUrlMessageJson (WxChannelKfSendMsgParam param , String fieldName ,
128+ String cosUrl ) {
129+ String json = JsonUtils .encode (param );
130+ assertTrue (json .contains ("\" " + fieldName + "\" :{\" cos_url\" :\" " + cosUrl + "\" }" ));
131+ assertFalse (json .contains ("cosUrl" ));
132+ WxChannelKfSendMsgParam decoded = JsonUtils .decode (json , WxChannelKfSendMsgParam .class );
133+ if ("image" .equals (fieldName )) {
134+ assertEquals (decoded .getImage ().getCosUrl (), cosUrl );
135+ } else if ("video" .equals (fieldName )) {
136+ assertEquals (decoded .getVideo ().getCosUrl (), cosUrl );
137+ } else {
138+ assertEquals (decoded .getFile ().getCosUrl (), cosUrl );
139+ }
140+ }
59141}
0 commit comments