微信消息路由器,及单元测试代码
This commit is contained in:
@@ -3,30 +3,97 @@ package chanjarster.weixin.api;
|
||||
import java.util.Map;
|
||||
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import chanjarster.weixin.bean.WxXmlMessage;
|
||||
|
||||
@Test
|
||||
public class WxMessageRouterTest {
|
||||
|
||||
public void testSimple() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
WxMessageRouter router = new WxMessageRouter();
|
||||
|
||||
protected StringBuilder sb;
|
||||
protected WxMessageRouter router;
|
||||
|
||||
@BeforeMethod
|
||||
public void prepare() {
|
||||
this.sb = new StringBuilder();
|
||||
this.router = new WxMessageRouter();
|
||||
router
|
||||
.rule()
|
||||
.msgType(WxConsts.MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1").content("CONTENT_1")
|
||||
.handler(new WxEchoMessageHandler(sb, "COMBINE_4"))
|
||||
.end()
|
||||
.rule()
|
||||
.msgType(WxConsts.MSG_TEXT).event(WxConsts.EVT_CLICK).eventKey("KEY_1")
|
||||
.handler(new WxEchoMessageHandler(sb, "COMBINE_3"))
|
||||
.end()
|
||||
.rule()
|
||||
.msgType(WxConsts.MSG_TEXT).event(WxConsts.EVT_CLICK)
|
||||
.handler(new WxEchoMessageHandler(sb, "COMBINE_2"))
|
||||
.end()
|
||||
.rule().msgType(WxConsts.MSG_TEXT).handler(new WxEchoMessageHandler(sb, WxConsts.MSG_TEXT)).end()
|
||||
.rule().msgType(WxConsts.MSG_IMAGE).handler(new WxEchoMessageHandler(sb, WxConsts.MSG_IMAGE)).end()
|
||||
.rule().event(WxConsts.EVT_CLICK).handler(new WxEchoMessageHandler(sb, WxConsts.EVT_CLICK)).end()
|
||||
.rule().eventKey("KEY_1").handler(new WxEchoMessageHandler(sb, "KEY_1")).end()
|
||||
.rule().content("CONTENT_1").handler(new WxEchoMessageHandler(sb, "CONTENT_1")).end()
|
||||
.rule().handler(new WxEchoMessageHandler(sb, "ALL")).end();
|
||||
;
|
||||
|
||||
|
||||
WxXmlMessage message = new WxXmlMessage();
|
||||
message.setMsgType(WxConsts.MSG_TEXT);
|
||||
router.route(message);
|
||||
Assert.assertEquals(sb.toString(), WxConsts.MSG_TEXT + ",");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test(dataProvider="messages-1")
|
||||
public void testSimple(WxXmlMessage message, String expected) {
|
||||
router.route(message);
|
||||
Assert.assertEquals(sb.toString(), expected);
|
||||
}
|
||||
|
||||
@Test()
|
||||
public void test() {
|
||||
|
||||
}
|
||||
@DataProvider(name="messages-1")
|
||||
public Object[][] messages2() {
|
||||
WxXmlMessage message1 = new WxXmlMessage();
|
||||
message1.setMsgType(WxConsts.MSG_TEXT);
|
||||
|
||||
WxXmlMessage message2 = new WxXmlMessage();
|
||||
message2.setEvent(WxConsts.EVT_CLICK);
|
||||
|
||||
WxXmlMessage message3 = new WxXmlMessage();
|
||||
message3.setEventKey("KEY_1");
|
||||
|
||||
WxXmlMessage message4 = new WxXmlMessage();
|
||||
message4.setContent("CONTENT_1");
|
||||
|
||||
WxXmlMessage message5 = new WxXmlMessage();
|
||||
message5.setContent("BLA");
|
||||
|
||||
WxXmlMessage c2 = new WxXmlMessage();
|
||||
c2.setMsgType(WxConsts.MSG_TEXT);
|
||||
c2.setEvent(WxConsts.EVT_CLICK);
|
||||
|
||||
WxXmlMessage c3 = new WxXmlMessage();
|
||||
c3.setMsgType(WxConsts.MSG_TEXT);
|
||||
c3.setEvent(WxConsts.EVT_CLICK);
|
||||
c3.setEventKey("KEY_1");
|
||||
|
||||
WxXmlMessage c4 = new WxXmlMessage();
|
||||
c4.setMsgType(WxConsts.MSG_TEXT);
|
||||
c4.setEvent(WxConsts.EVT_CLICK);
|
||||
c4.setEventKey("KEY_1");
|
||||
c4.setContent("CONTENT_1");
|
||||
|
||||
return new Object[][] {
|
||||
new Object[] { message1, WxConsts.MSG_TEXT + "," },
|
||||
new Object[] { message2, WxConsts.EVT_CLICK + "," },
|
||||
new Object[] { message3, "KEY_1," },
|
||||
new Object[] { message4, "CONTENT_1," },
|
||||
new Object[] { message5, "ALL," },
|
||||
new Object[] { c2, "COMBINE_2," },
|
||||
new Object[] { c3, "COMBINE_3," },
|
||||
new Object[] { c4, "COMBINE_4," }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public static class WxEchoMessageHandler implements WxMessageHandler {
|
||||
|
||||
|
||||
@@ -43,18 +43,18 @@ public class WxServiceTest {
|
||||
Assert.assertTrue(StringUtils.isNotBlank(after));
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = "testRefreshAccessToken", enabled = false)
|
||||
@Test(dependsOnMethods = "testRefreshAccessToken")
|
||||
public void sendCustomMessage() throws WxErrorException {
|
||||
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigProvider;
|
||||
WxCustomMessage message = new WxCustomMessage();
|
||||
message.setMsgtype(WxConsts.MSG_TEXT);
|
||||
message.setTouser(configProvider.getOpenId());
|
||||
message.setContent("欢迎使用教务系统微信公众号\n下面\n<a href=\"http://www.baidu.com\">Hello World</a>");
|
||||
message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");
|
||||
|
||||
wxService.sendCustomMessage(message);
|
||||
}
|
||||
|
||||
@Test(dataProvider = "menu", enabled = true, dependsOnMethods = "testRefreshAccessToken")
|
||||
@Test(dataProvider = "menu", dependsOnMethods = "testRefreshAccessToken")
|
||||
public void testCreateMenu(WxMenu wxMenu) throws WxErrorException {
|
||||
wxService.createMenu(wxMenu);
|
||||
}
|
||||
@@ -64,7 +64,7 @@ public class WxServiceTest {
|
||||
Assert.assertNotNull(wxService.getMenu());
|
||||
}
|
||||
|
||||
@Test(dependsOnMethods = { "testRefreshAccessToken", "testGetMenu" }, enabled = false)
|
||||
@Test(dependsOnMethods = { "testRefreshAccessToken", "testGetMenu" })
|
||||
public void testDeleteMenu() throws WxErrorException {
|
||||
wxService.deleteMenu();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user