From 131402f8f6edfd46ff54d3ca6a17e06b35a7b436 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 2 Jul 2017 15:30:08 +0800 Subject: [PATCH] =?UTF-8?q?#265=20=E5=87=A0=E4=B8=AANewsBuilder=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=9B=B4=E6=8E=A5=E8=AE=BE=E7=BD=AEArticle=E6=88=96It?= =?UTF-8?q?em=E5=AF=B9=E8=B1=A1=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/cp/bean/messagebuilder/MpnewsBuilder.java | 10 ++++++++-- .../weixin/cp/bean/messagebuilder/NewsBuilder.java | 10 ++++++++-- .../weixin/cp/bean/outxmlbuilder/NewsBuilder.java | 11 ++++++++--- .../me/chanjar/weixin/cp/bean/WxCpMessageTest.java | 10 ++++------ .../chanjar/weixin/mp/builder/kefu/NewsBuilder.java | 11 ++++++++--- .../chanjar/weixin/mp/builder/outxml/NewsBuilder.java | 11 ++++++++--- .../mp/bean/message/WxMpXmlOutNewsMessageTest.java | 5 ++--- 7 files changed, 46 insertions(+), 22 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MpnewsBuilder.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MpnewsBuilder.java index 21ab2549..55ed20ab 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MpnewsBuilder.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/MpnewsBuilder.java @@ -5,6 +5,7 @@ import me.chanjar.weixin.cp.bean.WxCpMessage; import me.chanjar.weixin.cp.bean.article.MpnewsArticle; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -30,8 +31,13 @@ public final class MpnewsBuilder extends BaseBuilder { 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 articles) { + this.articles = articles; return this; } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/NewsBuilder.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/NewsBuilder.java index e0df095e..dd239412 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/NewsBuilder.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/messagebuilder/NewsBuilder.java @@ -5,6 +5,7 @@ import me.chanjar.weixin.cp.bean.WxCpMessage; import me.chanjar.weixin.cp.bean.article.NewArticle; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -24,8 +25,13 @@ public final class NewsBuilder extends BaseBuilder { 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 articles) { + this.articles = articles; return this; } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/NewsBuilder.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/NewsBuilder.java index 3e910d8d..5a67056a 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/NewsBuilder.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/outxmlbuilder/NewsBuilder.java @@ -4,6 +4,7 @@ import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage; import me.chanjar.weixin.cp.bean.WxCpXmlOutNewsMessage.Item; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -12,11 +13,15 @@ import java.util.List; * @author Daniel Qian */ public final class NewsBuilder extends BaseBuilder { + private List articles = new ArrayList<>(); - protected final List 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 articles){ + this.articles = articles; return this; } diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java index f41f3a55..f97c0c79 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java @@ -3,9 +3,9 @@ package me.chanjar.weixin.cp.bean; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.cp.bean.article.MpnewsArticle; 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 public class WxCpMessageTest { @@ -127,11 +127,9 @@ public class WxCpMessageTest { .thumbMediaId("thumb") .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() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/NewsBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/NewsBuilder.java index 1626f77e..11e866e8 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/NewsBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/NewsBuilder.java @@ -4,6 +4,7 @@ import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -16,15 +17,19 @@ import java.util.List; * @author chanjarster */ public final class NewsBuilder extends BaseBuilder { - private List articles = new ArrayList<>(); public NewsBuilder() { 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 articles) { + this.articles = articles; return this; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/outxml/NewsBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/outxml/NewsBuilder.java index 4f9e22e6..01af0d62 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/outxml/NewsBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/outxml/NewsBuilder.java @@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.builder.outxml; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutNewsMessage; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -11,11 +12,15 @@ import java.util.List; * @author chanjarster */ public final class NewsBuilder extends BaseBuilder { + private List articles = new ArrayList<>(); - protected final List 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 articles){ + this.articles = articles; return this; } diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessageTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessageTest.java index c9a1f982..f8f72c9e 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessageTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/message/WxMpXmlOutNewsMessageTest.java @@ -54,15 +54,13 @@ public class WxMpXmlOutNewsMessageTest { WxMpXmlOutNewsMessage m = WxMpXmlOutMessage.NEWS() .fromUser("fromUser") .toUser("toUser") - .addArticle(item) - .addArticle(item) + .addArticle(item,item) .build(); String expected = "" + "" + "" + "1122" + "" - + " 2" + " " + " " + " <![CDATA[title]]>" @@ -77,6 +75,7 @@ public class WxMpXmlOutNewsMessageTest { + " " + " " + " " + + " 2" + ""; System.out.println(m.toXml()); Assert.assertEquals(