增加些测试代码

This commit is contained in:
Binary Wang 2019-08-18 10:29:04 +08:00
parent 5e8d4a2ec6
commit fa79568a47
2 changed files with 83 additions and 55 deletions

View File

@ -1,55 +1,55 @@
package me.chanjar.weixin.cp.bean; package me.chanjar.weixin.cp.bean;
import java.io.Serializable; import java.io.Serializable;
import java.util.Map; import java.util.Map;
import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter; import com.thoughtworks.xstream.annotations.XStreamConverter;
import lombok.Data; import lombok.Data;
import me.chanjar.weixin.common.util.XmlUtils; import me.chanjar.weixin.common.util.XmlUtils;
import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
import me.chanjar.weixin.cp.bean.outxmlbuilder.ImageBuilder; import me.chanjar.weixin.cp.bean.outxmlbuilder.ImageBuilder;
import me.chanjar.weixin.cp.bean.outxmlbuilder.NewsBuilder; import me.chanjar.weixin.cp.bean.outxmlbuilder.NewsBuilder;
import me.chanjar.weixin.cp.bean.outxmlbuilder.TextBuilder; import me.chanjar.weixin.cp.bean.outxmlbuilder.TextBuilder;
import me.chanjar.weixin.cp.bean.outxmlbuilder.VideoBuilder; import me.chanjar.weixin.cp.bean.outxmlbuilder.VideoBuilder;
import me.chanjar.weixin.cp.bean.outxmlbuilder.VoiceBuilder; import me.chanjar.weixin.cp.bean.outxmlbuilder.VoiceBuilder;
import me.chanjar.weixin.cp.config.WxCpConfigStorage; import me.chanjar.weixin.cp.config.WxCpConfigStorage;
import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil;
import me.chanjar.weixin.cp.util.xml.XStreamTransformer; import me.chanjar.weixin.cp.util.xml.XStreamTransformer;
/** /**
* 回调消息包. * 回调消息包.
* https://work.weixin.qq.com/api/doc#90001/90143/91116 * https://work.weixin.qq.com/api/doc#90001/90143/91116
* *
* @author zhenjun cai * @author zhenjun cai
*/ */
@XStreamAlias("xml") @XStreamAlias("xml")
@Data @Data
public class WxCpTpXmlPackage implements Serializable { public class WxCpTpXmlPackage implements Serializable {
private static final long serialVersionUID = 6031833682211475786L;
private static final long serialVersionUID = 6031833682211475786L;
/** /**
* 使用dom4j解析的存放所有xml属性和值的map. * 使用dom4j解析的存放所有xml属性和值的map.
*/ */
private Map<String, Object> allFieldsMap; private Map<String, Object> allFieldsMap;
@XStreamAlias("ToUserName") @XStreamAlias("ToUserName")
@XStreamConverter(value = XStreamCDataConverter.class) @XStreamConverter(value = XStreamCDataConverter.class)
protected String toUserName; protected String toUserName;
@XStreamAlias("AgentID") @XStreamAlias("AgentID")
@XStreamConverter(value = XStreamCDataConverter.class) @XStreamConverter(value = XStreamCDataConverter.class)
protected String agentId; protected String agentId;
@XStreamAlias("Encrypt") @XStreamAlias("Encrypt")
@XStreamConverter(value = XStreamCDataConverter.class) @XStreamConverter(value = XStreamCDataConverter.class)
protected String msgEncrypt; protected String msgEncrypt;
public static WxCpTpXmlPackage fromXml(String xml) { public static WxCpTpXmlPackage fromXml(String xml) {
//修改微信变态的消息内容格式方便解析 //修改微信变态的消息内容格式方便解析
//xml = xml.replace("</PicList><PicList>", ""); //xml = xml.replace("</PicList><PicList>", "");
final WxCpTpXmlPackage xmlPackage = XStreamTransformer.fromXml(WxCpTpXmlPackage.class, xml); final WxCpTpXmlPackage xmlPackage = XStreamTransformer.fromXml(WxCpTpXmlPackage.class, xml);
xmlPackage.setAllFieldsMap(XmlUtils.xml2Map(xml)); xmlPackage.setAllFieldsMap(XmlUtils.xml2Map(xml));
return xmlPackage; return xmlPackage;
} }
} }

View File

@ -0,0 +1,28 @@
package me.chanjar.weixin.cp.bean;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.Assert.*;
/**
* .
*
* @author <a href="https://github.com/binarywang">Binary Wang</a>
* @date 2019-08-18
*/
public class WxCpTpXmlPackageTest {
@Test
public void testFromXml() {
WxCpTpXmlPackage result = WxCpTpXmlPackage.fromXml("<xml> \n" +
" <ToUserName><![CDATA[toUser]]></ToUserName>\n" +
" <AgentID><![CDATA[toAgentID]]></AgentID>\n" +
" <Encrypt><![CDATA[msg_encrypt]]></Encrypt>\n" +
"</xml>\n");
assertThat(result).isNotNull();
assertThat(result.getToUserName()).isEqualTo("toUser");
assertThat(result.getAgentId()).isEqualTo("toAgentID");
assertThat(result.getMsgEncrypt()).isEqualTo("msg_encrypt");
}
}