55import me .chanjar .weixin .common .session .WxSessionManager ;
66import me .chanjar .weixin .mp .bean .message .WxMpXmlMessage ;
77import me .chanjar .weixin .mp .bean .message .WxMpXmlOutMessage ;
8- import org .testng .Assert ;
9- import org .testng .annotations .DataProvider ;
10- import org .testng .annotations .Test ;
8+ import org .testng .*;
9+ import org .testng .annotations .*;
1110
1211import java .util .Map ;
1312
1413/**
1514 * 测试消息路由器
16- * @author chanjarster
1715 *
16+ * @author chanjarster
1817 */
1918@ Test
2019public class WxMpMessageRouterTest {
@@ -23,35 +22,35 @@ public class WxMpMessageRouterTest {
2322 public void prepare (boolean async , StringBuffer sb , WxMpMessageRouter router ) {
2423 router
2524 .rule ()
26- .async (async )
27- .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK ).eventKey ("KEY_1" ).content ("CONTENT_1" )
28- .handler (new WxEchoMpMessageHandler (sb , "COMBINE_4" ))
25+ .async (async )
26+ .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK ).eventKey ("KEY_1" ).content ("CONTENT_1" )
27+ .handler (new WxEchoMpMessageHandler (sb , "COMBINE_4" ))
2928 .end ()
3029 .rule ()
31- .async (async )
32- .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK ).eventKey ("KEY_1" )
33- .handler (new WxEchoMpMessageHandler (sb , "COMBINE_3" ))
30+ .async (async )
31+ .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK ).eventKey ("KEY_1" )
32+ .handler (new WxEchoMpMessageHandler (sb , "COMBINE_3" ))
3433 .end ()
3534 .rule ()
36- .async (async )
37- .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK )
38- .handler (new WxEchoMpMessageHandler (sb , "COMBINE_2" ))
35+ .async (async )
36+ .msgType (WxConsts .XML_MSG_TEXT ).event (WxConsts .EVT_CLICK )
37+ .handler (new WxEchoMpMessageHandler (sb , "COMBINE_2" ))
3938 .end ()
4039 .rule ().async (async ).msgType (WxConsts .XML_MSG_TEXT ).handler (new WxEchoMpMessageHandler (sb , WxConsts .XML_MSG_TEXT )).end ()
4140 .rule ().async (async ).event (WxConsts .EVT_CLICK ).handler (new WxEchoMpMessageHandler (sb , WxConsts .EVT_CLICK )).end ()
4241 .rule ().async (async ).eventKey ("KEY_1" ).handler (new WxEchoMpMessageHandler (sb , "KEY_1" )).end ()
4342 .rule ().async (async ).content ("CONTENT_1" ).handler (new WxEchoMpMessageHandler (sb , "CONTENT_1" )).end ()
4443 .rule ().async (async ).rContent (".*bc.*" ).handler (new WxEchoMpMessageHandler (sb , "abcd" )).end ()
4544 .rule ().async (async ).matcher (new WxMpMessageMatcher () {
46- @ Override
47- public boolean match (WxMpXmlMessage message ) {
48- return "strangeformat" .equals (message .getFormat ());
49- }
50- }).handler (new WxEchoMpMessageHandler (sb , "matcher" )).end ()
45+ @ Override
46+ public boolean match (WxMpXmlMessage message ) {
47+ return "strangeformat" .equals (message .getFormat ());
48+ }
49+ }).handler (new WxEchoMpMessageHandler (sb , "matcher" )).end ()
5150 .rule ().async (async ).handler (new WxEchoMpMessageHandler (sb , "ALL" )).end ();
5251 }
5352
54- @ Test (dataProvider = "messages-1" )
53+ @ Test (dataProvider = "messages-1" )
5554 public void testSync (WxMpXmlMessage message , String expected ) {
5655 StringBuffer sb = new StringBuffer ();
5756 WxMpMessageRouter router = new WxMpMessageRouter (null );
@@ -60,11 +59,11 @@ public void testSync(WxMpXmlMessage message, String expected) {
6059 Assert .assertEquals (sb .toString (), expected );
6160 }
6261
63- @ Test (dataProvider = "messages-1" )
62+ @ Test (dataProvider = "messages-1" )
6463 public void testAsync (WxMpXmlMessage message , String expected ) throws InterruptedException {
6564 StringBuffer sb = new StringBuffer ();
6665 WxMpMessageRouter router = new WxMpMessageRouter (null );
67- prepare (true , sb , router );
66+ prepare (true , sb , router );
6867 router .route (message );
6968 Thread .sleep (500l );
7069 Assert .assertEquals (sb .toString (), expected );
@@ -75,7 +74,7 @@ public void testConcurrency() throws InterruptedException {
7574 router .rule ().handler (new WxMpMessageHandler () {
7675 @ Override
7776 public WxMpXmlOutMessage handle (WxMpXmlMessage wxMessage , Map <String , Object > context , WxMpService wxMpService ,
78- WxSessionManager sessionManager ) {
77+ WxSessionManager sessionManager ) {
7978 return null ;
8079 }
8180 }).end ();
@@ -97,7 +96,8 @@ public void run() {
9796
9897 Thread .sleep (1000l * 2 );
9998 }
100- @ DataProvider (name ="messages-1" )
99+
100+ @ DataProvider (name = "messages-1" )
101101 public Object [][] messages2 () {
102102 WxMpXmlMessage message1 = new WxMpXmlMessage ();
103103 message1 .setMsgType (WxConsts .XML_MSG_TEXT );
@@ -135,40 +135,21 @@ public Object[][] messages2() {
135135 c4 .setEventKey ("KEY_1" );
136136 c4 .setContent ("CONTENT_1" );
137137
138- return new Object [][] {
139- new Object [] { message1 , WxConsts .XML_MSG_TEXT + "," },
140- new Object [] { message2 , WxConsts .EVT_CLICK + "," },
141- new Object [] { message3 , "KEY_1," },
142- new Object [] { message4 , "CONTENT_1," },
143- new Object [] { message5 , "ALL," },
144- new Object [] { message6 , "abcd," },
145- new Object [] { message7 , "matcher," },
146- new Object [] { c2 , "COMBINE_2," },
147- new Object [] { c3 , "COMBINE_3," },
148- new Object [] { c4 , "COMBINE_4," }
138+ return new Object [][]{
139+ new Object []{ message1 , WxConsts .XML_MSG_TEXT + "," },
140+ new Object []{ message2 , WxConsts .EVT_CLICK + "," },
141+ new Object []{ message3 , "KEY_1," },
142+ new Object []{ message4 , "CONTENT_1," },
143+ new Object []{ message5 , "ALL," },
144+ new Object []{ message6 , "abcd," },
145+ new Object []{ message7 , "matcher," },
146+ new Object []{ c2 , "COMBINE_2," },
147+ new Object []{ c3 , "COMBINE_3," },
148+ new Object []{ c4 , "COMBINE_4," }
149149 };
150150
151151 }
152152
153- public static class WxEchoMpMessageHandler implements WxMpMessageHandler {
154-
155- private StringBuffer sb ;
156- private String echoStr ;
157-
158- public WxEchoMpMessageHandler (StringBuffer sb , String echoStr ) {
159- this .sb = sb ;
160- this .echoStr = echoStr ;
161- }
162-
163- @ Override
164- public WxMpXmlOutMessage handle (WxMpXmlMessage wxMessage , Map <String , Object > context , WxMpService wxMpService ,
165- WxSessionManager sessionManager ) {
166- this .sb .append (this .echoStr ).append (',' );
167- return null ;
168- }
169-
170- }
171-
172153 @ DataProvider
173154 public Object [][] standardSessionManager () {
174155
@@ -178,8 +159,8 @@ public Object[][] standardSessionManager() {
178159 ism .setProcessExpiresFrequency (1 );
179160 ism .setBackgroundProcessorDelay (1 );
180161
181- return new Object [][] {
182- new Object [] { ism }
162+ return new Object [][]{
163+ new Object []{ ism }
183164 };
184165
185166 }
@@ -191,8 +172,8 @@ public void testSessionClean1(StandardSessionManager ism) throws InterruptedExce
191172 final WxMpMessageRouter router = new WxMpMessageRouter (null );
192173 router .setSessionManager (ism );
193174 router
194- .rule ().async (false ).handler (new WxSessionMessageHandler ()).next ()
195- .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
175+ .rule ().async (false ).handler (new WxSessionMessageHandler ()).next ()
176+ .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
196177
197178 WxMpXmlMessage msg = new WxMpXmlMessage ();
198179 msg .setFromUser ("abc" );
@@ -211,8 +192,8 @@ public void testSessionClean2(StandardSessionManager ism) throws InterruptedExce
211192 final WxMpMessageRouter router = new WxMpMessageRouter (null );
212193 router .setSessionManager (ism );
213194 router
214- .rule ().async (false ).handler (new WxSessionMessageHandler ()).next ()
215- .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
195+ .rule ().async (false ).handler (new WxSessionMessageHandler ()).next ()
196+ .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
216197
217198 WxMpXmlMessage msg = new WxMpXmlMessage ();
218199 msg .setFromUser ("abc" );
@@ -225,8 +206,8 @@ public void testSessionClean2(StandardSessionManager ism) throws InterruptedExce
225206 final WxMpMessageRouter router = new WxMpMessageRouter (null );
226207 router .setSessionManager (ism );
227208 router
228- .rule ().async (true ).handler (new WxSessionMessageHandler ()).next ()
229- .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
209+ .rule ().async (true ).handler (new WxSessionMessageHandler ()).next ()
210+ .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
230211
231212 WxMpXmlMessage msg = new WxMpXmlMessage ();
232213 msg .setFromUser ("abc" );
@@ -245,8 +226,8 @@ public void testSessionClean3(StandardSessionManager ism) throws InterruptedExce
245226 final WxMpMessageRouter router = new WxMpMessageRouter (null );
246227 router .setSessionManager (ism );
247228 router
248- .rule ().async (true ).handler (new WxSessionMessageHandler ()).next ()
249- .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
229+ .rule ().async (true ).handler (new WxSessionMessageHandler ()).next ()
230+ .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
250231
251232 WxMpXmlMessage msg = new WxMpXmlMessage ();
252233 msg .setFromUser ("abc" );
@@ -265,7 +246,7 @@ public void testSessionClean4(StandardSessionManager ism) throws InterruptedExce
265246 final WxMpMessageRouter router = new WxMpMessageRouter (null );
266247 router .setSessionManager (ism );
267248 router
268- .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
249+ .rule ().async (false ).handler (new WxSessionMessageHandler ()).end ();
269250
270251 WxMpXmlMessage msg = new WxMpXmlMessage ();
271252 msg .setFromUser ("abc" );
@@ -279,7 +260,7 @@ public void testSessionClean4(StandardSessionManager ism) throws InterruptedExce
279260 final WxMpMessageRouter router = new WxMpMessageRouter (null );
280261 router .setSessionManager (ism );
281262 router
282- .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
263+ .rule ().async (true ).handler (new WxSessionMessageHandler ()).end ();
283264
284265 WxMpXmlMessage msg = new WxMpXmlMessage ();
285266 msg .setFromUser ("abc" );
@@ -290,11 +271,30 @@ public void testSessionClean4(StandardSessionManager ism) throws InterruptedExce
290271 }
291272 }
292273
293- public static class WxSessionMessageHandler implements WxMpMessageHandler {
274+ public static class WxEchoMpMessageHandler implements WxMpMessageHandler {
275+
276+ private StringBuffer sb ;
277+ private String echoStr ;
278+
279+ public WxEchoMpMessageHandler (StringBuffer sb , String echoStr ) {
280+ this .sb = sb ;
281+ this .echoStr = echoStr ;
282+ }
283+
284+ @ Override
285+ public WxMpXmlOutMessage handle (WxMpXmlMessage wxMessage , Map <String , Object > context , WxMpService wxMpService ,
286+ WxSessionManager sessionManager ) {
287+ this .sb .append (this .echoStr ).append (',' );
288+ return null ;
289+ }
290+
291+ }
292+
293+ public static class WxSessionMessageHandler implements WxMpMessageHandler {
294294
295295 @ Override
296296 public WxMpXmlOutMessage handle (WxMpXmlMessage wxMessage , Map <String , Object > context , WxMpService wxMpService ,
297- WxSessionManager sessionManager ) {
297+ WxSessionManager sessionManager ) {
298298 sessionManager .getSession (wxMessage .getFromUser ());
299299 return null ;
300300 }
0 commit comments