diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackage.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackage.java index 82c33f52..0e22b626 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackage.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackage.java @@ -1,55 +1,55 @@ -package me.chanjar.weixin.cp.bean; - -import java.io.Serializable; -import java.util.Map; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamConverter; -import lombok.Data; -import me.chanjar.weixin.common.util.XmlUtils; -import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; -import me.chanjar.weixin.cp.bean.outxmlbuilder.ImageBuilder; -import me.chanjar.weixin.cp.bean.outxmlbuilder.NewsBuilder; -import me.chanjar.weixin.cp.bean.outxmlbuilder.TextBuilder; -import me.chanjar.weixin.cp.bean.outxmlbuilder.VideoBuilder; -import me.chanjar.weixin.cp.bean.outxmlbuilder.VoiceBuilder; -import me.chanjar.weixin.cp.config.WxCpConfigStorage; -import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; -import me.chanjar.weixin.cp.util.xml.XStreamTransformer; - -/** - * 回调消息包. - * https://work.weixin.qq.com/api/doc#90001/90143/91116 - * - * @author zhenjun cai - */ -@XStreamAlias("xml") -@Data -public class WxCpTpXmlPackage implements Serializable { - - private static final long serialVersionUID = 6031833682211475786L; - /** - * 使用dom4j解析的存放所有xml属性和值的map. - */ - private Map allFieldsMap; - - @XStreamAlias("ToUserName") - @XStreamConverter(value = XStreamCDataConverter.class) - protected String toUserName; - - @XStreamAlias("AgentID") - @XStreamConverter(value = XStreamCDataConverter.class) - protected String agentId; - - @XStreamAlias("Encrypt") - @XStreamConverter(value = XStreamCDataConverter.class) - protected String msgEncrypt; - - public static WxCpTpXmlPackage fromXml(String xml) { - //修改微信变态的消息内容格式,方便解析 - //xml = xml.replace("", ""); - final WxCpTpXmlPackage xmlPackage = XStreamTransformer.fromXml(WxCpTpXmlPackage.class, xml); - xmlPackage.setAllFieldsMap(XmlUtils.xml2Map(xml)); - return xmlPackage; - } -} +package me.chanjar.weixin.cp.bean; + +import java.io.Serializable; +import java.util.Map; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import lombok.Data; +import me.chanjar.weixin.common.util.XmlUtils; +import me.chanjar.weixin.common.util.xml.XStreamCDataConverter; +import me.chanjar.weixin.cp.bean.outxmlbuilder.ImageBuilder; +import me.chanjar.weixin.cp.bean.outxmlbuilder.NewsBuilder; +import me.chanjar.weixin.cp.bean.outxmlbuilder.TextBuilder; +import me.chanjar.weixin.cp.bean.outxmlbuilder.VideoBuilder; +import me.chanjar.weixin.cp.bean.outxmlbuilder.VoiceBuilder; +import me.chanjar.weixin.cp.config.WxCpConfigStorage; +import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; +import me.chanjar.weixin.cp.util.xml.XStreamTransformer; + +/** + * 回调消息包. + * https://work.weixin.qq.com/api/doc#90001/90143/91116 + * + * @author zhenjun cai + */ +@XStreamAlias("xml") +@Data +public class WxCpTpXmlPackage implements Serializable { + private static final long serialVersionUID = 6031833682211475786L; + + /** + * 使用dom4j解析的存放所有xml属性和值的map. + */ + private Map allFieldsMap; + + @XStreamAlias("ToUserName") + @XStreamConverter(value = XStreamCDataConverter.class) + protected String toUserName; + + @XStreamAlias("AgentID") + @XStreamConverter(value = XStreamCDataConverter.class) + protected String agentId; + + @XStreamAlias("Encrypt") + @XStreamConverter(value = XStreamCDataConverter.class) + protected String msgEncrypt; + + public static WxCpTpXmlPackage fromXml(String xml) { + //修改微信变态的消息内容格式,方便解析 + //xml = xml.replace("", ""); + final WxCpTpXmlPackage xmlPackage = XStreamTransformer.fromXml(WxCpTpXmlPackage.class, xml); + xmlPackage.setAllFieldsMap(XmlUtils.xml2Map(xml)); + return xmlPackage; + } +} diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackageTest.java new file mode 100644 index 00000000..7b0e75a5 --- /dev/null +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpTpXmlPackageTest.java @@ -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 Binary Wang + * @date 2019-08-18 + */ +public class WxCpTpXmlPackageTest { + + @Test + public void testFromXml() { + WxCpTpXmlPackage result = WxCpTpXmlPackage.fromXml(" \n" + + " \n" + + " \n" + + " \n" + + "\n"); + assertThat(result).isNotNull(); + assertThat(result.getToUserName()).isEqualTo("toUser"); + assertThat(result.getAgentId()).isEqualTo("toAgentID"); + assertThat(result.getMsgEncrypt()).isEqualTo("msg_encrypt"); + } +}