/** * */ package org.hamster.weixinmp.test.xml; import org.dom4j.DocumentException; import org.hamster.weixinmp.controller.util.WxXmlUtil; import org.hamster.weixinmp.dao.entity.base.WxBaseMsgEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgEventEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgImageEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgLinkEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgLocEntity; import org.hamster.weixinmp.dao.entity.msg.WxMsgTextEntity; import org.junit.Assert; import org.junit.Test; /** * @author [email protected] * @version Jul 28, 2013 * */ public class WxXMLUtilTest { public static final String MSG_TEXT_XML = "<xml>" + "<ToUserName><![CDATA[toUser]]></ToUserName>" + "<FromUserName><![CDATA[fromUser]]></FromUserName> " + "<CreateTime>1348831860</CreateTime>" + "<MsgType><![CDATA[text]]></MsgType>" + "<Content><![CDATA[this is a test]]></Content>" + "<MsgId>1234567890123456</MsgId>" + "</xml>"; @Test public void testGetMsgText() throws DocumentException { WxMsgTextEntity msgText = WxXmlUtil.getMsgText(WxXmlUtil.toXML(MSG_TEXT_XML)); assertBaseFieldsWithMsgId(msgText); Assert.assertEquals("this is a test", msgText.getContent()); } public static final String MSG_IMG_XML = "<xml>" + "<ToUserName><![CDATA[toUser]]></ToUserName>" + "<FromUserName><![CDATA[fromUser]]></FromUserName>" + "<CreateTime>1348831860</CreateTime>" + "<MsgType><![CDATA[image]]></MsgType>" + "<PicUrl><![CDATA[this is a url]]></PicUrl>" + "<MediaId><![CDATA[media_id]]></MediaId>" + "<MsgId>1234567890123456</MsgId>" + "</xml>"; @Test public void testGetMsgImg() throws DocumentException { WxMsgImageEntity msgImg = WxXmlUtil.getMsgImage(WxXmlUtil.toXML(MSG_IMG_XML)); assertBaseFieldsWithMsgId(msgImg); //Assert.assertEquals("this is a url", msgImg.getImage().getPicUrl()); } public static final String MSG_LOC_XML = "<xml>" + "<ToUserName><![CDATA[toUser]]></ToUserName>" + "<FromUserName><![CDATA[fromUser]]></FromUserName>" + "<CreateTime>1351776360</CreateTime>" + "<MsgType><![CDATA[location]]></MsgType>" + "<Location_X>23.134521</Location_X>" + "<Location_Y>113.358803</Location_Y>" + "<Scale>20</Scale>" + "<Label><![CDATA[位置信息]]></Label>" + "<MsgId>1234567890123456</MsgId>" + "</xml> "; @Test public void testGetMsgLoc() throws DocumentException { WxMsgLocEntity msgLoc = WxXmlUtil.getMsgLoc(WxXmlUtil.toXML(MSG_LOC_XML)); assertBaseFieldsWithMsgId(msgLoc); Assert.assertEquals(Double.valueOf(23.134521d), msgLoc.getLocationX()); Assert.assertEquals(Double.valueOf(113.358803d), msgLoc.getLocationY()); Assert.assertEquals(Double.valueOf(20), msgLoc.getScale()); Assert.assertEquals("位置信息", msgLoc.getLabel()); } public static final String MSG_LINK_XML = "<xml>" + "<ToUserName><![CDATA[toUser]]></ToUserName>" + "<FromUserName><![CDATA[fromUser]]></FromUserName>" + "<CreateTime>1351776360</CreateTime>" + "<MsgType><![CDATA[link]]></MsgType>" + "<Title><![CDATA[公众平台官网链接]]></Title>" + "<Description><![CDATA[公众平台官网链接123]]></Description>" + "<Url><![CDATA[url]]></Url>" + "<MsgId>1234567890123456</MsgId>" + "</xml> "; @Test public void testGetMsgLink() throws DocumentException { WxMsgLinkEntity msgLink = WxXmlUtil.getMsgLink(WxXmlUtil.toXML(MSG_LINK_XML)); assertBaseFieldsWithMsgId(msgLink); Assert.assertEquals("公众平台官网链接", msgLink.getTitle()); Assert.assertEquals("公众平台官网链接123", msgLink.getDescription()); Assert.assertEquals("url", msgLink.getUrl()); } public static final String MSG_EVENT_XML = "<xml>" + "<ToUserName><![CDATA[toUser]]></ToUserName>" + "<FromUserName><![CDATA[FromUser]]></FromUserName>" + "<CreateTime>123456789</CreateTime>" + "<MsgType><![CDATA[event]]></MsgType>" + "<Event><![CDATA[EVENT]]></Event>" + "<EventKey><![CDATA[EVENTKEY]]></EventKey>" + "</xml>"; @Test public void testGetMsgEvent() throws DocumentException { WxMsgEventEntity msgEvent = WxXmlUtil.getMsgEvent(WxXmlUtil.toXML(MSG_EVENT_XML)); assertBaseFields(msgEvent); Assert.assertEquals("EVENT", msgEvent.getEvent()); Assert.assertEquals("EVENTKEY", msgEvent.getEventKey()); } private void assertBaseFields(WxBaseMsgEntity entity) { Assert.assertNotNull(entity.getFromUserName()); Assert.assertNotNull(entity.getToUserName()); Assert.assertNotNull(entity.getCreateTime()); Assert.assertNotNull(entity.getMsgType()); } private void assertBaseFieldsWithMsgId(WxBaseMsgEntity entity) { assertBaseFields(entity); Assert.assertNotNull(entity.getMsgId()); } }