Bladeren bron

issue #12 xml消息fromXml, toXml有错误

master
Daniel Qian 10 jaren geleden
bovenliggende
commit
997f1e4005
9 gewijzigde bestanden met toevoegingen van 473 en 1 verwijderingen
  1. +1
    -1
      src/main/java/chanjarster/weixin/api/WxConsts.java
  2. +100
    -0
      src/main/java/chanjarster/weixin/bean/WxXmlOutMewsMessage.java
  3. +129
    -0
      src/main/java/chanjarster/weixin/bean/WxXmlOutMusicMessage.java
  4. +90
    -0
      src/main/java/chanjarster/weixin/bean/WxXmlOutVideoMessage.java
  5. +5
    -0
      src/main/java/chanjarster/weixin/bean/WxXmlOutVoiceMessage.java
  6. +38
    -0
      src/test/java/chanjarster/weixin/bean/WxXmlOutIMusicMessageTest.java
  7. +48
    -0
      src/test/java/chanjarster/weixin/bean/WxXmlOutINewsMessageTest.java
  8. +34
    -0
      src/test/java/chanjarster/weixin/bean/WxXmlOutIVideoMessageTest.java
  9. +28
    -0
      src/test/java/chanjarster/weixin/bean/WxXmlOutIVoiceMessageTest.java

+ 1
- 1
src/main/java/chanjarster/weixin/api/WxConsts.java Bestand weergeven

@@ -13,7 +13,7 @@ public class WxConsts {
public static final String XML_MSG_VOICE = "voice";
public static final String XML_MSG_VIDEO = "video";
public static final String XML_MSG_NEWS = "news";
public static final String XML_MSG_MUSIC = "news";
public static final String XML_MSG_MUSIC = "music";
public static final String XML_MSG_LOCATION = "location";
public static final String XML_MSG_LINK = "link";
public static final String XML_MSG_EVENT = "event";


+ 100
- 0
src/main/java/chanjarster/weixin/bean/WxXmlOutMewsMessage.java Bestand weergeven

@@ -0,0 +1,100 @@
package chanjarster.weixin.bean;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.util.xml.AdapterCDATA;

@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutMewsMessage extends WxXmlOutMessage {

@XmlElement(name = "ArticleCount")
protected int ArticleCount;
@XmlElementWrapper(name="Articles")
@XmlElement(name = "Item")
protected final List<Item> Articles = new ArrayList<Item>();
public WxXmlOutMewsMessage() {
this.MsgType = WxConsts.XML_MSG_NEWS;
}

public int getArticleCount() {
return ArticleCount;
}

public void addArticle(Item item) {
this.Articles.add(item);
this.ArticleCount = this.Articles.size();
}
public List<Item> getArticles() {
return Articles;
}
@XmlRootElement(name = "Item")
@XmlAccessorType(XmlAccessType.FIELD)
public static class Item {
@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;

@XmlElement(name="PicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String PicUrl;
@XmlElement(name="Url")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Url;
public String getTitle() {
return Title;
}

public void setTitle(String title) {
Title = title;
}

public String getDescription() {
return Description;
}

public void setDescription(String description) {
Description = description;
}

public String getPicUrl() {
return PicUrl;
}

public void setPicUrl(String picUrl) {
PicUrl = picUrl;
}

public String getUrl() {
return Url;
}

public void setUrl(String url) {
Url = url;
}

}


}

+ 129
- 0
src/main/java/chanjarster/weixin/bean/WxXmlOutMusicMessage.java Bestand weergeven

@@ -0,0 +1,129 @@
package chanjarster.weixin.bean;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.util.xml.AdapterCDATA;

@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutMusicMessage extends WxXmlOutMessage {

@XmlElement(name = "Music")
protected final Music music = new Music();

public WxXmlOutMusicMessage() {
this.MsgType = WxConsts.XML_MSG_MUSIC;
}

public String getTitle() {
return music.getTitle();
}

public void setTitle(String title) {
music.setTitle(title);
}

public String getDescription() {
return music.getDescription();
}

public void setDescription(String description) {
music.setDescription(description);
}
public String getThumbMediaId() {
return music.getThumbMediaId();
}

public void setThumbMediaId(String thumbMediaId) {
music.setThumbMediaId(thumbMediaId);
}

public String getMusicUrl() {
return music.getMusicUrl();
}

public void setMusicUrl(String musicUrl) {
music.setMusicUrl(musicUrl);
}

public String getHQMusicUrl() {
return music.getHQMusicUrl();
}

public void setHQMusicUrl(String hQMusicUrl) {
music.setHQMusicUrl(hQMusicUrl);
}
@XmlRootElement(name = "Music")
@XmlAccessorType(XmlAccessType.FIELD)
private static class Music {
@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;

@XmlElement(name="ThumbMediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String ThumbMediaId;
@XmlElement(name="MusicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MusicUrl;
@XmlElement(name="HQMusicUrl")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String HQMusicUrl;
public String getTitle() {
return Title;
}

public void setTitle(String title) {
Title = title;
}

public String getDescription() {
return Description;
}

public void setDescription(String description) {
Description = description;
}

public String getThumbMediaId() {
return ThumbMediaId;
}

public void setThumbMediaId(String thumbMediaId) {
ThumbMediaId = thumbMediaId;
}

public String getMusicUrl() {
return MusicUrl;
}

public void setMusicUrl(String musicUrl) {
MusicUrl = musicUrl;
}

public String getHQMusicUrl() {
return HQMusicUrl;
}

public void setHQMusicUrl(String hQMusicUrl) {
HQMusicUrl = hQMusicUrl;
}
}

}

+ 90
- 0
src/main/java/chanjarster/weixin/bean/WxXmlOutVideoMessage.java Bestand weergeven

@@ -0,0 +1,90 @@
package chanjarster.weixin.bean;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.util.xml.AdapterCDATA;

@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class WxXmlOutVideoMessage extends WxXmlOutMessage {

@XmlElement(name = "Video")
protected final Video video = new Video();

public WxXmlOutVideoMessage() {
this.MsgType = WxConsts.XML_MSG_VIDEO;
}

public String getMediaId() {
return video.getMediaId();
}

public void setMediaId(String mediaId) {
video.setMediaId(mediaId);
}

public String getTitle() {
return video.getTitle();
}

public void setTitle(String title) {
video.setTitle(title);
}

public String getDescription() {
return video.getDescription();
}

public void setDescription(String description) {
video.setDescription(description);
}

@XmlRootElement(name = "Video")
@XmlAccessorType(XmlAccessType.FIELD)
private static class Video {
@XmlElement(name = "MediaId")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String MediaId;

@XmlElement(name = "Title")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Title;

@XmlElement(name = "Description")
@XmlJavaTypeAdapter(AdapterCDATA.class)
private String Description;

public String getMediaId() {
return MediaId;
}

public void setMediaId(String mediaId) {
MediaId = mediaId;
}

public String getTitle() {
return Title;
}

public void setTitle(String title) {
Title = title;
}

public String getDescription() {
return Description;
}

public void setDescription(String description) {
Description = description;
}
}

}

+ 5
- 0
src/main/java/chanjarster/weixin/bean/WxXmlOutVoiceMessage.java Bestand weergeven

@@ -6,6 +6,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import chanjarster.weixin.api.WxConsts;
import chanjarster.weixin.util.xml.MediaIdMarshaller;

@XmlRootElement(name = "xml")
@@ -16,6 +17,10 @@ public class WxXmlOutVoiceMessage extends WxXmlOutMessage {
@XmlJavaTypeAdapter(MediaIdMarshaller.class)
private String MediaId;

public WxXmlOutVoiceMessage() {
this.MsgType = WxConsts.XML_MSG_VOICE;
}
public String getMediaId() {
return MediaId;
}


+ 38
- 0
src/test/java/chanjarster/weixin/bean/WxXmlOutIMusicMessageTest.java Bestand weergeven

@@ -0,0 +1,38 @@
package chanjarster.weixin.bean;

import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class WxXmlOutIMusicMessageTest {

public void test() {
WxXmlOutMusicMessage m = new WxXmlOutMusicMessage();
m.setTitle("title");
m.setDescription("ddfff");
m.setCreateTime(1122l);
m.setFromUserName("fromUser");
m.setToUserName("toUser");
m.setHQMusicUrl("hQMusicUrl");
m.setMusicUrl("musicUrl");
m.setThumbMediaId("thumbMediaId");
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
+ "<CreateTime>1122</CreateTime>"
+ "<MsgType><![CDATA[music]]></MsgType>"
+ "<Music>"
+ " <Title><![CDATA[title]]></Title>"
+ " <Description><![CDATA[ddfff]]></Description>"
+ " <ThumbMediaId><![CDATA[thumbMediaId]]></ThumbMediaId>"
+ " <MusicUrl><![CDATA[musicUrl]]></MusicUrl>"
+ " <HQMusicUrl><![CDATA[hQMusicUrl]]></HQMusicUrl>"
+ " </Music>"
+ "</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
}
}

+ 48
- 0
src/test/java/chanjarster/weixin/bean/WxXmlOutINewsMessageTest.java Bestand weergeven

@@ -0,0 +1,48 @@
package chanjarster.weixin.bean;

import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class WxXmlOutINewsMessageTest {

public void test() {
WxXmlOutMewsMessage m = new WxXmlOutMewsMessage();
m.setCreateTime(1122l);
m.setFromUserName("fromUser");
m.setToUserName("toUser");
WxXmlOutMewsMessage.Item item = new WxXmlOutMewsMessage.Item();
item.setDescription("description");
item.setPicUrl("picUrl");
item.setTitle("title");
item.setUrl("url");
m.addArticle(item);
m.addArticle(item);
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
+ "<CreateTime>1122</CreateTime>"
+ "<MsgType><![CDATA[news]]></MsgType>"
+ " <ArticleCount>2</ArticleCount>"
+ " <Articles>"
+ " <Item>"
+ " <Title><![CDATA[title]]></Title>"
+ " <Description><![CDATA[description]]></Description>"
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
+ " <Url><![CDATA[url]]></Url>"
+ " </Item>"
+ " <Item>"
+ " <Title><![CDATA[title]]></Title>"
+ " <Description><![CDATA[description]]></Description>"
+ " <PicUrl><![CDATA[picUrl]]></PicUrl>"
+ " <Url><![CDATA[url]]></Url>"
+ " </Item>"
+ " </Articles>"
+ "</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
}
}

+ 34
- 0
src/test/java/chanjarster/weixin/bean/WxXmlOutIVideoMessageTest.java Bestand weergeven

@@ -0,0 +1,34 @@
package chanjarster.weixin.bean;

import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class WxXmlOutIVideoMessageTest {

public void test() {
WxXmlOutVideoMessage m = new WxXmlOutVideoMessage();
m.setMediaId("media_id");
m.setTitle("title");
m.setDescription("ddfff");
m.setCreateTime(1122l);
m.setFromUserName("fromUser");
m.setToUserName("toUser");
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[toUser]]></ToUserName>"
+ "<FromUserName><![CDATA[fromUser]]></FromUserName>"
+ "<CreateTime>1122</CreateTime>"
+ "<MsgType><![CDATA[video]]></MsgType>"
+ "<Video>"
+ "<MediaId><![CDATA[media_id]]></MediaId>"
+ "<Title><![CDATA[title]]></Title>"
+ "<Description><![CDATA[ddfff]]></Description>"
+ "</Video> "
+ "</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
}
}

+ 28
- 0
src/test/java/chanjarster/weixin/bean/WxXmlOutIVoiceMessageTest.java Bestand weergeven

@@ -0,0 +1,28 @@
package chanjarster.weixin.bean;

import org.testng.Assert;
import org.testng.annotations.Test;

@Test
public class WxXmlOutIVoiceMessageTest {

public void test() {
WxXmlOutVoiceMessage m = new WxXmlOutVoiceMessage();
m.setMediaId("ddfefesfsdfef");
m.setCreateTime(1122l);
m.setFromUserName("from");
m.setToUserName("to");
String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
+ "<xml>"
+ "<ToUserName><![CDATA[to]]></ToUserName>"
+ "<FromUserName><![CDATA[from]]></FromUserName>"
+ "<CreateTime>1122</CreateTime>"
+ "<MsgType><![CDATA[voice]]></MsgType>"
+ "<Voice><MediaId><![CDATA[ddfefesfsdfef]]></MediaId></Voice>"
+ "</xml>";
System.out.println(m.toXml());
Assert.assertEquals(m.toXml().replaceAll("\\s", ""), expected.replaceAll("\\s", ""));
}
}

Laden…
Annuleren
Opslaan