| @@ -5,6 +5,7 @@ import me.chanjar.weixin.cp.bean.WxCpMessage; | |||||
| import me.chanjar.weixin.cp.bean.article.MpnewsArticle; | import me.chanjar.weixin.cp.bean.article.MpnewsArticle; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -30,8 +31,13 @@ public final class MpnewsBuilder extends BaseBuilder<MpnewsBuilder> { | |||||
| return this; | return this; | ||||
| } | } | ||||
| public MpnewsBuilder addArticle(MpnewsArticle article) { | |||||
| this.articles.add(article); | |||||
| public MpnewsBuilder addArticle(MpnewsArticle... articles) { | |||||
| Collections.addAll(this.articles, articles); | |||||
| return this; | |||||
| } | |||||
| public MpnewsBuilder articles(List<MpnewsArticle> articles) { | |||||
| this.articles = articles; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import me.chanjar.weixin.cp.bean.WxCpMessage; | |||||
| import me.chanjar.weixin.cp.bean.article.NewArticle; | import me.chanjar.weixin.cp.bean.article.NewArticle; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -24,8 +25,13 @@ public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | |||||
| this.msgType = WxConsts.CUSTOM_MSG_NEWS; | this.msgType = WxConsts.CUSTOM_MSG_NEWS; | ||||
| } | } | ||||
| public NewsBuilder addArticle(NewArticle article) { | |||||
| this.articles.add(article); | |||||
| public NewsBuilder addArticle(NewArticle... articles) { | |||||
| Collections.addAll(this.articles, articles); | |||||
| return this; | |||||
| } | |||||
| public NewsBuilder articles(List<NewArticle> articles) { | |||||
| this.articles = articles; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -4,6 +4,7 @@ import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage; | |||||
| import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage.Item; | import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage.Item; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -12,11 +13,15 @@ import java.util.List; | |||||
| * @author Daniel Qian | * @author Daniel Qian | ||||
| */ | */ | ||||
| public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> { | public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> { | ||||
| private List<Item> articles = new ArrayList<>(); | |||||
| protected final List<Item> articles = new ArrayList<>(); | |||||
| public NewsBuilder addArticle(Item... items) { | |||||
| Collections.addAll(this.articles, items); | |||||
| return this; | |||||
| } | |||||
| public NewsBuilder addArticle(Item item) { | |||||
| this.articles.add(item); | |||||
| public NewsBuilder articles(List<Item> articles){ | |||||
| this.articles = articles; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -3,9 +3,9 @@ package me.chanjar.weixin.cp.bean; | |||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
| import me.chanjar.weixin.cp.bean.article.MpnewsArticle; | import me.chanjar.weixin.cp.bean.article.MpnewsArticle; | ||||
| import me.chanjar.weixin.cp.bean.article.NewArticle; | import me.chanjar.weixin.cp.bean.article.NewArticle; | ||||
| import org.testng.annotations.Test; | |||||
| import org.testng.annotations.*; | |||||
| import static org.testng.Assert.assertEquals; | |||||
| import static org.testng.Assert.*; | |||||
| @Test | @Test | ||||
| public class WxCpMessageTest { | public class WxCpMessageTest { | ||||
| @@ -127,11 +127,9 @@ public class WxCpMessageTest { | |||||
| .thumbMediaId("thumb") | .thumbMediaId("thumb") | ||||
| .build(); | .build(); | ||||
| WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").addArticle(article1).addArticle(article2).build(); | |||||
| WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").addArticle(article1, article2).build(); | |||||
| assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\"," + | |||||
| "\"mpnews\":{\"articles\":[{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}," + | |||||
| "{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}]}}"); | |||||
| assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\",\"safe\":\"0\",\"mpnews\":{\"articles\":[{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"},{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}]}}"); | |||||
| } | } | ||||
| public void testMpnewsBuild_with_media_id() { | public void testMpnewsBuild_with_media_id() { | ||||
| @@ -4,6 +4,7 @@ import me.chanjar.weixin.common.api.WxConsts; | |||||
| import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; | import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -16,15 +17,19 @@ import java.util.List; | |||||
| * @author chanjarster | * @author chanjarster | ||||
| */ | */ | ||||
| public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | public final class NewsBuilder extends BaseBuilder<NewsBuilder> { | ||||
| private List<WxMpKefuMessage.WxArticle> articles = new ArrayList<>(); | private List<WxMpKefuMessage.WxArticle> articles = new ArrayList<>(); | ||||
| public NewsBuilder() { | public NewsBuilder() { | ||||
| this.msgType = WxConsts.CUSTOM_MSG_NEWS; | this.msgType = WxConsts.CUSTOM_MSG_NEWS; | ||||
| } | } | ||||
| public NewsBuilder addArticle(WxMpKefuMessage.WxArticle article) { | |||||
| this.articles.add(article); | |||||
| public NewsBuilder addArticle(WxMpKefuMessage.WxArticle... articles) { | |||||
| Collections.addAll(this.articles, articles); | |||||
| return this; | |||||
| } | |||||
| public NewsBuilder articles(List<WxMpKefuMessage.WxArticle> articles) { | |||||
| this.articles = articles; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.builder.outxml; | |||||
| import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage; | import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -11,11 +12,15 @@ import java.util.List; | |||||
| * @author chanjarster | * @author chanjarster | ||||
| */ | */ | ||||
| public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxMpXmlOutNewsMessage> { | public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxMpXmlOutNewsMessage> { | ||||
| private List<WxMpXmlOutNewsMessage.Item> articles = new ArrayList<>(); | |||||
| protected final List<WxMpXmlOutNewsMessage.Item> articles = new ArrayList<>(); | |||||
| public NewsBuilder addArticle(WxMpXmlOutNewsMessage.Item... items) { | |||||
| Collections.addAll(this.articles, items); | |||||
| return this; | |||||
| } | |||||
| public NewsBuilder addArticle(WxMpXmlOutNewsMessage.Item item) { | |||||
| this.articles.add(item); | |||||
| public NewsBuilder articles(List<WxMpXmlOutNewsMessage.Item> articles){ | |||||
| this.articles = articles; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -54,15 +54,13 @@ public class WxMpXmlOutNewsMessageTest { | |||||
| WxMpXmlOutNewsMessage m = WxMpXmlOutMessage.NEWS() | WxMpXmlOutNewsMessage m = WxMpXmlOutMessage.NEWS() | ||||
| .fromUser("fromUser") | .fromUser("fromUser") | ||||
| .toUser("toUser") | .toUser("toUser") | ||||
| .addArticle(item) | |||||
| .addArticle(item) | |||||
| .addArticle(item,item) | |||||
| .build(); | .build(); | ||||
| String expected = "<xml>" | String expected = "<xml>" | ||||
| + "<ToUserName><![CDATA[toUser]]></ToUserName>" | + "<ToUserName><![CDATA[toUser]]></ToUserName>" | ||||
| + "<FromUserName><![CDATA[fromUser]]></FromUserName>" | + "<FromUserName><![CDATA[fromUser]]></FromUserName>" | ||||
| + "<CreateTime>1122</CreateTime>" | + "<CreateTime>1122</CreateTime>" | ||||
| + "<MsgType><![CDATA[news]]></MsgType>" | + "<MsgType><![CDATA[news]]></MsgType>" | ||||
| + " <ArticleCount>2</ArticleCount>" | |||||
| + " <Articles>" | + " <Articles>" | ||||
| + " <item>" | + " <item>" | ||||
| + " <Title><![CDATA[title]]></Title>" | + " <Title><![CDATA[title]]></Title>" | ||||
| @@ -77,6 +75,7 @@ public class WxMpXmlOutNewsMessageTest { | |||||
| + " <Url><![CDATA[url]]></Url>" | + " <Url><![CDATA[url]]></Url>" | ||||
| + " </item>" | + " </item>" | ||||
| + " </Articles>" | + " </Articles>" | ||||
| + " <ArticleCount>2</ArticleCount>" | |||||
| + "</xml>"; | + "</xml>"; | ||||
| System.out.println(m.toXml()); | System.out.println(m.toXml()); | ||||
| Assert.assertEquals( | Assert.assertEquals( | ||||