| @@ -21,7 +21,7 @@ public class WxMpCustomMessageAPITest { | |||||
| protected WxMpServiceImpl wxService; | protected WxMpServiceImpl wxService; | ||||
| public void testSendCustomMessage() throws WxErrorException { | public void testSendCustomMessage() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| WxMpCustomMessage message = new WxMpCustomMessage(); | WxMpCustomMessage message = new WxMpCustomMessage(); | ||||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | ||||
| message.setToUser(configStorage.getOpenId()); | message.setToUser(configStorage.getOpenId()); | ||||
| @@ -31,7 +31,7 @@ public class WxMpCustomMessageAPITest { | |||||
| } | } | ||||
| public void testSendCustomMessageWithKfAccount() throws WxErrorException { | public void testSendCustomMessageWithKfAccount() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| WxMpCustomMessage message = new WxMpCustomMessage(); | WxMpCustomMessage message = new WxMpCustomMessage(); | ||||
| message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | ||||
| message.setToUser(configStorage.getOpenId()); | message.setToUser(configStorage.getOpenId()); | ||||
| @@ -24,7 +24,7 @@ public class WxMpJsAPITest { | |||||
| public void testJsapiTicket() throws WxErrorException { | public void testJsapiTicket() throws WxErrorException { | ||||
| String jsapiTicket = wxService.getJsapiTicket(false); | |||||
| String jsapiTicket = this.wxService.getJsapiTicket(false); | |||||
| System.out.println(jsapiTicket); | System.out.println(jsapiTicket); | ||||
| Assert.assertNotNull(jsapiTicket); | Assert.assertNotNull(jsapiTicket); | ||||
| } | } | ||||
| @@ -1,6 +1,15 @@ | |||||
| package me.chanjar.weixin.mp.api; | package me.chanjar.weixin.mp.api; | ||||
| import java.io.IOException; | |||||
| import java.io.InputStream; | |||||
| import org.testng.Assert; | |||||
| import org.testng.annotations.DataProvider; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
| import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | ||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
| @@ -11,13 +20,6 @@ import me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage; | |||||
| import me.chanjar.weixin.mp.bean.WxMpMassVideo; | import me.chanjar.weixin.mp.bean.WxMpMassVideo; | ||||
| import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; | ||||
| import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | import me.chanjar.weixin.mp.bean.result.WxMpMassUploadResult; | ||||
| import org.testng.Assert; | |||||
| import org.testng.annotations.DataProvider; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import java.io.IOException; | |||||
| import java.io.InputStream; | |||||
| /** | /** | ||||
| * 测试群发消息 | * 测试群发消息 | ||||
| @@ -34,27 +36,32 @@ public class WxMpMassMessageAPITest { | |||||
| @Test | @Test | ||||
| public void testTextMassOpenIdsMessageSend() throws WxErrorException { | public void testTextMassOpenIdsMessageSend() throws WxErrorException { | ||||
| // 发送群发消息 | // 发送群发消息 | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
| .getWxMpConfigStorage(); | |||||
| WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | ||||
| massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | ||||
| massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | ||||
| massMessage.getToUsers().add(configProvider.getOpenId()); | massMessage.getToUsers().add(configProvider.getOpenId()); | ||||
| WxMpMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage); | |||||
| WxMpMassSendResult massResult = this.wxService | |||||
| .massOpenIdsMessageSend(massMessage); | |||||
| Assert.assertNotNull(massResult); | Assert.assertNotNull(massResult); | ||||
| Assert.assertNotNull(massResult.getMsgId()); | Assert.assertNotNull(massResult.getMsgId()); | ||||
| } | } | ||||
| @Test(dataProvider="massMessages") | @Test(dataProvider="massMessages") | ||||
| public void testMediaMassOpenIdsMessageSend(String massMsgType, String mediaId) throws WxErrorException, IOException { | |||||
| public void testMediaMassOpenIdsMessageSend(String massMsgType, | |||||
| String mediaId) throws WxErrorException { | |||||
| // 发送群发消息 | // 发送群发消息 | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
| .getWxMpConfigStorage(); | |||||
| WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | ||||
| massMessage.setMsgType(massMsgType); | massMessage.setMsgType(massMsgType); | ||||
| massMessage.setMediaId(mediaId); | massMessage.setMediaId(mediaId); | ||||
| massMessage.getToUsers().add(configProvider.getOpenId()); | massMessage.getToUsers().add(configProvider.getOpenId()); | ||||
| WxMpMassSendResult massResult = wxService.massOpenIdsMessageSend(massMessage); | |||||
| WxMpMassSendResult massResult = this.wxService | |||||
| .massOpenIdsMessageSend(massMessage); | |||||
| Assert.assertNotNull(massResult); | Assert.assertNotNull(massResult); | ||||
| Assert.assertNotNull(massResult.getMsgId()); | Assert.assertNotNull(massResult.getMsgId()); | ||||
| } | } | ||||
| @@ -64,21 +71,26 @@ public class WxMpMassMessageAPITest { | |||||
| WxMpMassGroupMessage massMessage = new WxMpMassGroupMessage(); | WxMpMassGroupMessage massMessage = new WxMpMassGroupMessage(); | ||||
| massMessage.setMsgtype(WxConsts.MASS_MSG_TEXT); | massMessage.setMsgtype(WxConsts.MASS_MSG_TEXT); | ||||
| massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | massMessage.setContent("测试群发消息\n欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>"); | ||||
| massMessage.setGroupId(wxService.getGroupService().groupGet().get(0).getId()); | |||||
| massMessage | |||||
| .setGroupId(this.wxService.getGroupService().groupGet().get(0).getId()); | |||||
| WxMpMassSendResult massResult = wxService.massGroupMessageSend(massMessage); | |||||
| WxMpMassSendResult massResult = this.wxService | |||||
| .massGroupMessageSend(massMessage); | |||||
| Assert.assertNotNull(massResult); | Assert.assertNotNull(massResult); | ||||
| Assert.assertNotNull(massResult.getMsgId()); | Assert.assertNotNull(massResult.getMsgId()); | ||||
| } | } | ||||
| @Test(dataProvider="massMessages") | @Test(dataProvider="massMessages") | ||||
| public void testMediaMassGroupMessageSend(String massMsgType, String mediaId) throws WxErrorException, IOException { | |||||
| public void testMediaMassGroupMessageSend(String massMsgType, String mediaId) | |||||
| throws WxErrorException { | |||||
| WxMpMassGroupMessage massMessage = new WxMpMassGroupMessage(); | WxMpMassGroupMessage massMessage = new WxMpMassGroupMessage(); | ||||
| massMessage.setMsgtype(massMsgType); | massMessage.setMsgtype(massMsgType); | ||||
| massMessage.setMediaId(mediaId); | massMessage.setMediaId(mediaId); | ||||
| massMessage.setGroupId(wxService.getGroupService().groupGet().get(0).getId()); | |||||
| massMessage | |||||
| .setGroupId(this.wxService.getGroupService().groupGet().get(0).getId()); | |||||
| WxMpMassSendResult massResult = wxService.massGroupMessageSend(massMessage); | |||||
| WxMpMassSendResult massResult = this.wxService | |||||
| .massGroupMessageSend(massMessage); | |||||
| Assert.assertNotNull(massResult); | Assert.assertNotNull(massResult); | ||||
| Assert.assertNotNull(massResult.getMsgId()); | Assert.assertNotNull(massResult.getMsgId()); | ||||
| } | } | ||||
| @@ -86,13 +98,15 @@ public class WxMpMassMessageAPITest { | |||||
| @DataProvider | @DataProvider | ||||
| public Object[][] massMessages() throws WxErrorException, IOException { | public Object[][] massMessages() throws WxErrorException, IOException { | ||||
| Object[][] messages = new Object[4][]; | Object[][] messages = new Object[4][]; | ||||
| /* | /* | ||||
| * 视频素材 | * 视频素材 | ||||
| */ | */ | ||||
| { | |||||
| try (InputStream inputStream = ClassLoader | |||||
| .getSystemResourceAsStream("mm.mp4")) { | |||||
| // 上传视频到媒体库 | // 上传视频到媒体库 | ||||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp4"); | |||||
| WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); | |||||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||||
| .mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); | |||||
| Assert.assertNotNull(uploadMediaRes); | Assert.assertNotNull(uploadMediaRes); | ||||
| Assert.assertNotNull(uploadMediaRes.getMediaId()); | Assert.assertNotNull(uploadMediaRes.getMediaId()); | ||||
| @@ -101,38 +115,44 @@ public class WxMpMassMessageAPITest { | |||||
| video.setTitle("测试标题"); | video.setTitle("测试标题"); | ||||
| video.setDescription("测试描述"); | video.setDescription("测试描述"); | ||||
| video.setMediaId(uploadMediaRes.getMediaId()); | video.setMediaId(uploadMediaRes.getMediaId()); | ||||
| WxMpMassUploadResult uploadResult = wxService.massVideoUpload(video); | |||||
| WxMpMassUploadResult uploadResult = this.wxService.massVideoUpload(video); | |||||
| Assert.assertNotNull(uploadResult); | Assert.assertNotNull(uploadResult); | ||||
| Assert.assertNotNull(uploadResult.getMediaId()); | Assert.assertNotNull(uploadResult.getMediaId()); | ||||
| messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId() }; | messages[0] = new Object[] { WxConsts.MASS_MSG_VIDEO, uploadResult.getMediaId() }; | ||||
| } | } | ||||
| /** | /** | ||||
| * 图片素材 | * 图片素材 | ||||
| */ | */ | ||||
| { | |||||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg"); | |||||
| WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||||
| try (InputStream inputStream = ClassLoader | |||||
| .getSystemResourceAsStream("mm.jpeg")) { | |||||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||||
| .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||||
| Assert.assertNotNull(uploadMediaRes); | Assert.assertNotNull(uploadMediaRes); | ||||
| Assert.assertNotNull(uploadMediaRes.getMediaId()); | Assert.assertNotNull(uploadMediaRes.getMediaId()); | ||||
| messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() }; | messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() }; | ||||
| } | } | ||||
| /** | /** | ||||
| * 语音素材 | * 语音素材 | ||||
| */ | */ | ||||
| { | |||||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp3"); | |||||
| WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); | |||||
| try (InputStream inputStream = ClassLoader | |||||
| .getSystemResourceAsStream("mm.mp3")) { | |||||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||||
| .mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); | |||||
| Assert.assertNotNull(uploadMediaRes); | Assert.assertNotNull(uploadMediaRes); | ||||
| Assert.assertNotNull(uploadMediaRes.getMediaId()); | Assert.assertNotNull(uploadMediaRes.getMediaId()); | ||||
| messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId() }; | messages[2] = new Object[] { WxConsts.MASS_MSG_VOICE, uploadMediaRes.getMediaId() }; | ||||
| } | } | ||||
| /** | /** | ||||
| * 图文素材 | * 图文素材 | ||||
| */ | */ | ||||
| { | |||||
| try (InputStream inputStream = ClassLoader | |||||
| .getSystemResourceAsStream("mm.jpeg")) { | |||||
| // 上传照片到媒体库 | // 上传照片到媒体库 | ||||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg"); | |||||
| WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||||
| WxMediaUploadResult uploadMediaRes = this.wxService.getMaterialService() | |||||
| .mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); | |||||
| Assert.assertNotNull(uploadMediaRes); | Assert.assertNotNull(uploadMediaRes); | ||||
| Assert.assertNotNull(uploadMediaRes.getMediaId()); | Assert.assertNotNull(uploadMediaRes.getMediaId()); | ||||
| @@ -154,11 +174,13 @@ public class WxMpMassMessageAPITest { | |||||
| article2.setDigest("摘要2"); | article2.setDigest("摘要2"); | ||||
| news.addArticle(article2); | news.addArticle(article2); | ||||
| WxMpMassUploadResult massUploadResult = wxService.massNewsUpload(news); | |||||
| WxMpMassUploadResult massUploadResult = this.wxService | |||||
| .massNewsUpload(news); | |||||
| Assert.assertNotNull(massUploadResult); | Assert.assertNotNull(massUploadResult); | ||||
| Assert.assertNotNull(uploadMediaRes.getMediaId()); | Assert.assertNotNull(uploadMediaRes.getMediaId()); | ||||
| messages[3] = new Object[] { WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId() }; | messages[3] = new Object[] { WxConsts.MASS_MSG_NEWS, massUploadResult.getMediaId() }; | ||||
| } | } | ||||
| return messages; | return messages; | ||||
| } | } | ||||
| @@ -163,7 +163,7 @@ public class WxMpMessageRouterTest { | |||||
| @Override | @Override | ||||
| public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, | public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, | ||||
| WxSessionManager sessionManager) { | WxSessionManager sessionManager) { | ||||
| sb.append(this.echoStr).append(','); | |||||
| this.sb.append(this.echoStr).append(','); | |||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -23,7 +23,7 @@ public class WxMpMiscAPITest { | |||||
| @Test | @Test | ||||
| public void testGetCallbackIP() throws WxErrorException { | public void testGetCallbackIP() throws WxErrorException { | ||||
| String[] ipArray = wxService.getCallbackIP(); | |||||
| String[] ipArray = this.wxService.getCallbackIP(); | |||||
| System.out.println(Arrays.toString(ipArray)); | System.out.println(Arrays.toString(ipArray)); | ||||
| Assert.assertNotNull(ipArray); | Assert.assertNotNull(ipArray); | ||||
| Assert.assertNotEquals(ipArray.length, 0); | Assert.assertNotEquals(ipArray.length, 0); | ||||
| @@ -20,7 +20,7 @@ public class WxMpShortUrlAPITest { | |||||
| protected WxMpServiceImpl wxService; | protected WxMpServiceImpl wxService; | ||||
| public void testShortUrl() throws WxErrorException { | public void testShortUrl() throws WxErrorException { | ||||
| String shortUrl = wxService.shortUrl("www.baidu.com"); | |||||
| String shortUrl = this.wxService.shortUrl("www.baidu.com"); | |||||
| Assert.assertNotNull(shortUrl); | Assert.assertNotNull(shortUrl); | ||||
| } | } | ||||
| @@ -42,7 +42,7 @@ public class WxMpCardServiceImplTest { | |||||
| public void testCreateCardApiSignature() throws Exception { | public void testCreateCardApiSignature() throws Exception { | ||||
| //app_id, card_id, card_type, code, openid, location_id | //app_id, card_id, card_type, code, openid, location_id | ||||
| String[] param = {"123", cardId, "", code, openid, ""}; | |||||
| String[] param = {"123", this.cardId, "", this.code, this.openid, ""}; | |||||
| WxCardApiSignature cardApiSignature = this.wxService.getCardService().createCardApiSignature(param); | WxCardApiSignature cardApiSignature = this.wxService.getCardService().createCardApiSignature(param); | ||||
| assertNotNull(cardApiSignature); | assertNotNull(cardApiSignature); | ||||
| System.out.println(cardApiSignature); | System.out.println(cardApiSignature); | ||||
| @@ -58,34 +58,34 @@ public class WxMpCardServiceImplTest { | |||||
| @Test | @Test | ||||
| public void testQueryCardCode() throws Exception { | public void testQueryCardCode() throws Exception { | ||||
| WxMpCardResult wxMpCardResult = this.wxService.getCardService().queryCardCode(cardId, code, false); | |||||
| WxMpCardResult wxMpCardResult = this.wxService.getCardService().queryCardCode(this.cardId, this.code, false); | |||||
| assertNotNull(wxMpCardResult); | assertNotNull(wxMpCardResult); | ||||
| System.out.println(wxMpCardResult); | System.out.println(wxMpCardResult); | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testConsumeCardCode() throws Exception { | public void testConsumeCardCode() throws Exception { | ||||
| String result = this.wxService.getCardService().consumeCardCode(code); | |||||
| String result = this.wxService.getCardService().consumeCardCode(this.code); | |||||
| assertNotNull(result); | assertNotNull(result); | ||||
| System.out.println(result); | System.out.println(result); | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testConsumeCardCodeWithCardId() throws Exception { | public void testConsumeCardCodeWithCardId() throws Exception { | ||||
| String result = this.wxService.getCardService().consumeCardCode(code, cardId); | |||||
| String result = this.wxService.getCardService().consumeCardCode(this.code, this.cardId); | |||||
| assertNotNull(result); | assertNotNull(result); | ||||
| System.out.println(result); | System.out.println(result); | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testMarkCardCode() throws Exception { | public void testMarkCardCode() throws Exception { | ||||
| this.wxService.getCardService().markCardCode(code, cardId, openid, true); | |||||
| this.wxService.getCardService().markCardCode(this.code, this.cardId, this.openid, true); | |||||
| System.out.println("done"); | System.out.println("done"); | ||||
| } | } | ||||
| @Test | @Test | ||||
| public void testGetCardDetail() throws Exception { | public void testGetCardDetail() throws Exception { | ||||
| String result = this.wxService.getCardService().getCardDetail(cardId); | |||||
| String result = this.wxService.getCardService().getCardDetail(this.cardId); | |||||
| assertNotNull(result); | assertNotNull(result); | ||||
| System.out.println(result); | System.out.println(result); | ||||
| } | } | ||||
| @@ -35,15 +35,15 @@ public class WxMpGroupServiceImplTest { | |||||
| Assert.assertNotNull(groupList); | Assert.assertNotNull(groupList); | ||||
| Assert.assertTrue(groupList.size() > 0); | Assert.assertTrue(groupList.size() > 0); | ||||
| for (WxMpGroup g : groupList) { | for (WxMpGroup g : groupList) { | ||||
| group = g; | |||||
| this.group = g; | |||||
| Assert.assertNotNull(g.getName()); | Assert.assertNotNull(g.getName()); | ||||
| } | } | ||||
| } | } | ||||
| @Test(dependsOnMethods={"testGroupGet", "testGroupCreate"}) | @Test(dependsOnMethods={"testGroupGet", "testGroupCreate"}) | ||||
| public void getGroupUpdate() throws WxErrorException { | public void getGroupUpdate() throws WxErrorException { | ||||
| group.setName("分组改名"); | |||||
| this.wxService.getGroupService().groupUpdate(group); | |||||
| this.group.setName("分组改名"); | |||||
| this.wxService.getGroupService().groupUpdate(this.group); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,6 +1,26 @@ | |||||
| package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||
| import static org.junit.Assert.assertEquals; | |||||
| import static org.junit.Assert.assertNotNull; | |||||
| import static org.junit.Assert.assertTrue; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.io.InputStream; | |||||
| import java.util.ArrayList; | |||||
| import java.util.HashMap; | |||||
| import java.util.Iterator; | |||||
| import java.util.LinkedHashMap; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.util.UUID; | |||||
| import org.testng.annotations.DataProvider; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
| import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; | ||||
| import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
| @@ -9,17 +29,11 @@ import me.chanjar.weixin.mp.api.ApiTestModule; | |||||
| import me.chanjar.weixin.mp.bean.WxMpMaterial; | import me.chanjar.weixin.mp.bean.WxMpMaterial; | ||||
| import me.chanjar.weixin.mp.bean.WxMpMaterialArticleUpdate; | import me.chanjar.weixin.mp.bean.WxMpMaterialArticleUpdate; | ||||
| import me.chanjar.weixin.mp.bean.WxMpMaterialNews; | import me.chanjar.weixin.mp.bean.WxMpMaterialNews; | ||||
| import me.chanjar.weixin.mp.bean.result.*; | |||||
| import org.apache.commons.io.IOUtils; | |||||
| import org.testng.Assert; | |||||
| import org.testng.annotations.DataProvider; | |||||
| import org.testng.annotations.Guice; | |||||
| import org.testng.annotations.Test; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.io.InputStream; | |||||
| import java.util.*; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpMaterialCountResult; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpMaterialFileBatchGetResult; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpMaterialNewsBatchGetResult; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpMaterialUploadResult; | |||||
| import me.chanjar.weixin.mp.bean.result.WxMpMaterialVideoInfoResult; | |||||
| /** | /** | ||||
| * 素材管理相关接口的测试 | * 素材管理相关接口的测试 | ||||
| @@ -56,34 +70,44 @@ public class WxMpMaterialServiceImplTest { | |||||
| @Test(dataProvider = "uploadMedia") | @Test(dataProvider = "uploadMedia") | ||||
| public void testUploadMaterial(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { | public void testUploadMaterial(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { | ||||
| if (wxMaterialCountResultBeforeTest == null) { | |||||
| wxMaterialCountResultBeforeTest = this.wxService.getMaterialService().materialCount(); | |||||
| } | |||||
| InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName); | |||||
| File tempFile = FileUtils.createTmpFile(inputStream, UUID.randomUUID().toString(), fileType); | |||||
| WxMpMaterial wxMaterial = new WxMpMaterial(); | |||||
| wxMaterial.setFile(tempFile); | |||||
| wxMaterial.setName(fileName); | |||||
| if (WxConsts.MEDIA_VIDEO.equals(mediaType)) { | |||||
| wxMaterial.setVideoTitle("title"); | |||||
| wxMaterial.setVideoIntroduction("test video description"); | |||||
| } | |||||
| WxMpMaterialUploadResult res = this.wxService.getMaterialService().materialFileUpload(mediaType, wxMaterial); | |||||
| Assert.assertNotNull(res.getMediaId()); | |||||
| if (WxConsts.MEDIA_IMAGE.equals(mediaType) || WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||||
| Assert.assertNotNull(res.getUrl()); | |||||
| } | |||||
| if (WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||||
| thumbMediaId = res.getMediaId(); | |||||
| if (this.wxMaterialCountResultBeforeTest == null) { | |||||
| this.wxMaterialCountResultBeforeTest = this.wxService.getMaterialService() | |||||
| .materialCount(); | |||||
| } | } | ||||
| Map<String, Object> materialInfo = new HashMap<>(); | |||||
| materialInfo.put("media_id", res.getMediaId()); | |||||
| materialInfo.put("length", tempFile.length()); | |||||
| materialInfo.put("filename", tempFile.getName()); | |||||
| media_ids.put(res.getMediaId(), materialInfo); | |||||
| try (InputStream inputStream = ClassLoader | |||||
| .getSystemResourceAsStream(fileName)) { | |||||
| File tempFile = FileUtils.createTmpFile(inputStream, | |||||
| UUID.randomUUID().toString(), fileType); | |||||
| WxMpMaterial wxMaterial = new WxMpMaterial(); | |||||
| wxMaterial.setFile(tempFile); | |||||
| wxMaterial.setName(fileName); | |||||
| if (WxConsts.MEDIA_VIDEO.equals(mediaType)) { | |||||
| wxMaterial.setVideoTitle("title"); | |||||
| wxMaterial.setVideoIntroduction("test video description"); | |||||
| } | |||||
| WxMpMaterialUploadResult res = this.wxService.getMaterialService() | |||||
| .materialFileUpload(mediaType, wxMaterial); | |||||
| assertNotNull(res.getMediaId()); | |||||
| System.out.println(res); | |||||
| if (WxConsts.MEDIA_IMAGE.equals(mediaType) | |||||
| || WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||||
| assertNotNull(res.getUrl()); | |||||
| } | |||||
| if (WxConsts.MEDIA_THUMB.equals(mediaType)) { | |||||
| this.thumbMediaId = res.getMediaId(); | |||||
| } | |||||
| Map<String, Object> materialInfo = new HashMap<>(); | |||||
| materialInfo.put("media_id", res.getMediaId()); | |||||
| materialInfo.put("length", tempFile.length()); | |||||
| materialInfo.put("filename", tempFile.getName()); | |||||
| this.media_ids.put(res.getMediaId(), materialInfo); | |||||
| System.out.println(res); | |||||
| } | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testUploadMaterial"}) | @Test(dependsOnMethods = {"testUploadMaterial"}) | ||||
| @@ -93,7 +117,7 @@ public class WxMpMaterialServiceImplTest { | |||||
| WxMpMaterialNews wxMpMaterialNewsSingle = new WxMpMaterialNews(); | WxMpMaterialNews wxMpMaterialNewsSingle = new WxMpMaterialNews(); | ||||
| WxMpMaterialNews.WxMpMaterialNewsArticle mpMaterialNewsArticleSingle = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | WxMpMaterialNews.WxMpMaterialNewsArticle mpMaterialNewsArticleSingle = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | ||||
| mpMaterialNewsArticleSingle.setAuthor("author"); | mpMaterialNewsArticleSingle.setAuthor("author"); | ||||
| mpMaterialNewsArticleSingle.setThumbMediaId(thumbMediaId); | |||||
| mpMaterialNewsArticleSingle.setThumbMediaId(this.thumbMediaId); | |||||
| mpMaterialNewsArticleSingle.setTitle("single title"); | mpMaterialNewsArticleSingle.setTitle("single title"); | ||||
| mpMaterialNewsArticleSingle.setContent("single content"); | mpMaterialNewsArticleSingle.setContent("single content"); | ||||
| mpMaterialNewsArticleSingle.setContentSourceUrl("content url"); | mpMaterialNewsArticleSingle.setContentSourceUrl("content url"); | ||||
| @@ -105,7 +129,7 @@ public class WxMpMaterialServiceImplTest { | |||||
| WxMpMaterialNews wxMpMaterialNewsMultiple = new WxMpMaterialNews(); | WxMpMaterialNews wxMpMaterialNewsMultiple = new WxMpMaterialNews(); | ||||
| WxMpMaterialNews.WxMpMaterialNewsArticle wxMpMaterialNewsArticleMultiple1 = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | WxMpMaterialNews.WxMpMaterialNewsArticle wxMpMaterialNewsArticleMultiple1 = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | ||||
| wxMpMaterialNewsArticleMultiple1.setAuthor("author1"); | wxMpMaterialNewsArticleMultiple1.setAuthor("author1"); | ||||
| wxMpMaterialNewsArticleMultiple1.setThumbMediaId(thumbMediaId); | |||||
| wxMpMaterialNewsArticleMultiple1.setThumbMediaId(this.thumbMediaId); | |||||
| wxMpMaterialNewsArticleMultiple1.setTitle("multi title1"); | wxMpMaterialNewsArticleMultiple1.setTitle("multi title1"); | ||||
| wxMpMaterialNewsArticleMultiple1.setContent("content 1"); | wxMpMaterialNewsArticleMultiple1.setContent("content 1"); | ||||
| wxMpMaterialNewsArticleMultiple1.setContentSourceUrl("content url"); | wxMpMaterialNewsArticleMultiple1.setContentSourceUrl("content url"); | ||||
| @@ -114,7 +138,7 @@ public class WxMpMaterialServiceImplTest { | |||||
| WxMpMaterialNews.WxMpMaterialNewsArticle wxMpMaterialNewsArticleMultiple2 = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | WxMpMaterialNews.WxMpMaterialNewsArticle wxMpMaterialNewsArticleMultiple2 = new WxMpMaterialNews.WxMpMaterialNewsArticle(); | ||||
| wxMpMaterialNewsArticleMultiple2.setAuthor("author2"); | wxMpMaterialNewsArticleMultiple2.setAuthor("author2"); | ||||
| wxMpMaterialNewsArticleMultiple2.setThumbMediaId(thumbMediaId); | |||||
| wxMpMaterialNewsArticleMultiple2.setThumbMediaId(this.thumbMediaId); | |||||
| wxMpMaterialNewsArticleMultiple2.setTitle("multi title2"); | wxMpMaterialNewsArticleMultiple2.setTitle("multi title2"); | ||||
| wxMpMaterialNewsArticleMultiple2.setContent("content 2"); | wxMpMaterialNewsArticleMultiple2.setContent("content 2"); | ||||
| wxMpMaterialNewsArticleMultiple2.setContentSourceUrl("content url"); | wxMpMaterialNewsArticleMultiple2.setContentSourceUrl("content url"); | ||||
| @@ -125,81 +149,97 @@ public class WxMpMaterialServiceImplTest { | |||||
| wxMpMaterialNewsMultiple.addArticle(wxMpMaterialNewsArticleMultiple2); | wxMpMaterialNewsMultiple.addArticle(wxMpMaterialNewsArticleMultiple2); | ||||
| WxMpMaterialUploadResult resSingle = this.wxService.getMaterialService().materialNewsUpload(wxMpMaterialNewsSingle); | WxMpMaterialUploadResult resSingle = this.wxService.getMaterialService().materialNewsUpload(wxMpMaterialNewsSingle); | ||||
| singleNewsMediaId = resSingle.getMediaId(); | |||||
| this.singleNewsMediaId = resSingle.getMediaId(); | |||||
| WxMpMaterialUploadResult resMulti = this.wxService.getMaterialService().materialNewsUpload(wxMpMaterialNewsMultiple); | WxMpMaterialUploadResult resMulti = this.wxService.getMaterialService().materialNewsUpload(wxMpMaterialNewsMultiple); | ||||
| multiNewsMediaId = resMulti.getMediaId(); | |||||
| this.multiNewsMediaId = resMulti.getMediaId(); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testAddNews"}) | @Test(dependsOnMethods = {"testAddNews"}) | ||||
| public void testMaterialCount() throws WxErrorException { | public void testMaterialCount() throws WxErrorException { | ||||
| WxMpMaterialCountResult wxMaterialCountResult = this.wxService.getMaterialService().materialCount(); | WxMpMaterialCountResult wxMaterialCountResult = this.wxService.getMaterialService().materialCount(); | ||||
| // 测试上传过程中添加了一个音频,一个视频,两个图片,两个图文消息 | // 测试上传过程中添加了一个音频,一个视频,两个图片,两个图文消息 | ||||
| Assert.assertEquals(wxMaterialCountResultBeforeTest.getVoiceCount() + 1, wxMaterialCountResult.getVoiceCount()); | |||||
| Assert.assertEquals(wxMaterialCountResultBeforeTest.getVideoCount() + 1, wxMaterialCountResult.getVideoCount()); | |||||
| Assert.assertEquals(wxMaterialCountResultBeforeTest.getImageCount() + 2, wxMaterialCountResult.getImageCount()); | |||||
| Assert.assertEquals(wxMaterialCountResultBeforeTest.getNewsCount() + 2, wxMaterialCountResult.getNewsCount()); | |||||
| assertEquals( | |||||
| this.wxMaterialCountResultBeforeTest.getVoiceCount() + 1, | |||||
| wxMaterialCountResult.getVoiceCount()); | |||||
| assertEquals( | |||||
| this.wxMaterialCountResultBeforeTest.getVideoCount() + 1, | |||||
| wxMaterialCountResult.getVideoCount()); | |||||
| assertEquals( | |||||
| this.wxMaterialCountResultBeforeTest.getImageCount() + 2, | |||||
| wxMaterialCountResult.getImageCount()); | |||||
| assertEquals(this.wxMaterialCountResultBeforeTest.getNewsCount() + 2, | |||||
| wxMaterialCountResult.getNewsCount()); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testMaterialCount"}, dataProvider = "downloadMaterial") | @Test(dependsOnMethods = {"testMaterialCount"}, dataProvider = "downloadMaterial") | ||||
| public void testDownloadMaterial(String media_id) throws WxErrorException, IOException { | public void testDownloadMaterial(String media_id) throws WxErrorException, IOException { | ||||
| Map<String, Object> materialInfo = media_ids.get(media_id); | |||||
| Assert.assertNotNull(materialInfo); | |||||
| Map<String, Object> materialInfo = this.media_ids.get(media_id); | |||||
| assertNotNull(materialInfo); | |||||
| String filename = materialInfo.get("filename").toString(); | String filename = materialInfo.get("filename").toString(); | ||||
| if (filename.endsWith(".mp3") || filename.endsWith(".jpeg")) { | if (filename.endsWith(".mp3") || filename.endsWith(".jpeg")) { | ||||
| InputStream inputStream = this.wxService.getMaterialService().materialImageOrVoiceDownload(media_id); | |||||
| Assert.assertNotNull(inputStream); | |||||
| IOUtils.closeQuietly(inputStream); | |||||
| try (InputStream inputStream = this.wxService.getMaterialService() | |||||
| .materialImageOrVoiceDownload(media_id)) { | |||||
| assertNotNull(inputStream); | |||||
| } | |||||
| } | } | ||||
| if (filename.endsWith("mp4")) { | if (filename.endsWith("mp4")) { | ||||
| WxMpMaterialVideoInfoResult wxMaterialVideoInfoResult = this.wxService.getMaterialService().materialVideoInfo(media_id); | WxMpMaterialVideoInfoResult wxMaterialVideoInfoResult = this.wxService.getMaterialService().materialVideoInfo(media_id); | ||||
| Assert.assertNotNull(wxMaterialVideoInfoResult); | |||||
| Assert.assertNotNull(wxMaterialVideoInfoResult.getDownUrl()); | |||||
| assertNotNull(wxMaterialVideoInfoResult); | |||||
| assertNotNull(wxMaterialVideoInfoResult.getDownUrl()); | |||||
| } | } | ||||
| } | } | ||||
| @Test(dependsOnMethods = {"testAddNews"}) | @Test(dependsOnMethods = {"testAddNews"}) | ||||
| public void testGetNewsInfo() throws WxErrorException { | public void testGetNewsInfo() throws WxErrorException { | ||||
| WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService.getMaterialService().materialNewsInfo(singleNewsMediaId); | |||||
| WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); | |||||
| Assert.assertNotNull(wxMpMaterialNewsSingle); | |||||
| Assert.assertNotNull(wxMpMaterialNewsMultiple); | |||||
| WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService | |||||
| .getMaterialService().materialNewsInfo(this.singleNewsMediaId); | |||||
| WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService | |||||
| .getMaterialService().materialNewsInfo(this.multiNewsMediaId); | |||||
| assertNotNull(wxMpMaterialNewsSingle); | |||||
| assertNotNull(wxMpMaterialNewsMultiple); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testGetNewsInfo"}) | @Test(dependsOnMethods = {"testGetNewsInfo"}) | ||||
| public void testUpdateNewsInfo() throws WxErrorException { | public void testUpdateNewsInfo() throws WxErrorException { | ||||
| WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService.getMaterialService().materialNewsInfo(singleNewsMediaId); | |||||
| Assert.assertNotNull(wxMpMaterialNewsSingle); | |||||
| WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService | |||||
| .getMaterialService().materialNewsInfo(this.singleNewsMediaId); | |||||
| assertNotNull(wxMpMaterialNewsSingle); | |||||
| WxMpMaterialArticleUpdate wxMpMaterialArticleUpdateSingle = new WxMpMaterialArticleUpdate(); | WxMpMaterialArticleUpdate wxMpMaterialArticleUpdateSingle = new WxMpMaterialArticleUpdate(); | ||||
| WxMpMaterialNews.WxMpMaterialNewsArticle articleSingle = wxMpMaterialNewsSingle.getArticles().get(0); | WxMpMaterialNews.WxMpMaterialNewsArticle articleSingle = wxMpMaterialNewsSingle.getArticles().get(0); | ||||
| articleSingle.setContent("content single update"); | articleSingle.setContent("content single update"); | ||||
| wxMpMaterialArticleUpdateSingle.setMediaId(singleNewsMediaId); | |||||
| wxMpMaterialArticleUpdateSingle.setMediaId(this.singleNewsMediaId); | |||||
| wxMpMaterialArticleUpdateSingle.setArticles(articleSingle); | wxMpMaterialArticleUpdateSingle.setArticles(articleSingle); | ||||
| wxMpMaterialArticleUpdateSingle.setIndex(0); | wxMpMaterialArticleUpdateSingle.setIndex(0); | ||||
| boolean resultSingle = this.wxService.getMaterialService().materialNewsUpdate(wxMpMaterialArticleUpdateSingle); | boolean resultSingle = this.wxService.getMaterialService().materialNewsUpdate(wxMpMaterialArticleUpdateSingle); | ||||
| Assert.assertTrue(resultSingle); | |||||
| wxMpMaterialNewsSingle = this.wxService.getMaterialService().materialNewsInfo(singleNewsMediaId); | |||||
| Assert.assertNotNull(wxMpMaterialNewsSingle); | |||||
| Assert.assertEquals("content single update", wxMpMaterialNewsSingle.getArticles().get(0).getContent()); | |||||
| assertTrue(resultSingle); | |||||
| wxMpMaterialNewsSingle = this.wxService.getMaterialService() | |||||
| .materialNewsInfo(this.singleNewsMediaId); | |||||
| assertNotNull(wxMpMaterialNewsSingle); | |||||
| assertEquals("content single update", | |||||
| wxMpMaterialNewsSingle.getArticles().get(0).getContent()); | |||||
| WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); | |||||
| Assert.assertNotNull(wxMpMaterialNewsMultiple); | |||||
| WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService | |||||
| .getMaterialService().materialNewsInfo(this.multiNewsMediaId); | |||||
| assertNotNull(wxMpMaterialNewsMultiple); | |||||
| WxMpMaterialArticleUpdate wxMpMaterialArticleUpdateMulti = new WxMpMaterialArticleUpdate(); | WxMpMaterialArticleUpdate wxMpMaterialArticleUpdateMulti = new WxMpMaterialArticleUpdate(); | ||||
| WxMpMaterialNews.WxMpMaterialNewsArticle articleMulti = wxMpMaterialNewsMultiple.getArticles().get(1); | WxMpMaterialNews.WxMpMaterialNewsArticle articleMulti = wxMpMaterialNewsMultiple.getArticles().get(1); | ||||
| articleMulti.setContent("content 2 update"); | articleMulti.setContent("content 2 update"); | ||||
| wxMpMaterialArticleUpdateMulti.setMediaId(multiNewsMediaId); | |||||
| wxMpMaterialArticleUpdateMulti.setMediaId(this.multiNewsMediaId); | |||||
| wxMpMaterialArticleUpdateMulti.setArticles(articleMulti); | wxMpMaterialArticleUpdateMulti.setArticles(articleMulti); | ||||
| wxMpMaterialArticleUpdateMulti.setIndex(1); | wxMpMaterialArticleUpdateMulti.setIndex(1); | ||||
| boolean resultMulti = this.wxService.getMaterialService().materialNewsUpdate(wxMpMaterialArticleUpdateMulti); | boolean resultMulti = this.wxService.getMaterialService().materialNewsUpdate(wxMpMaterialArticleUpdateMulti); | ||||
| Assert.assertTrue(resultMulti); | |||||
| wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); | |||||
| Assert.assertNotNull(wxMpMaterialNewsMultiple); | |||||
| Assert.assertEquals("content 2 update", wxMpMaterialNewsMultiple.getArticles().get(1).getContent()); | |||||
| assertTrue(resultMulti); | |||||
| wxMpMaterialNewsMultiple = this.wxService.getMaterialService() | |||||
| .materialNewsInfo(this.multiNewsMediaId); | |||||
| assertNotNull(wxMpMaterialNewsMultiple); | |||||
| assertEquals("content 2 update", | |||||
| wxMpMaterialNewsMultiple.getArticles().get(1).getContent()); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testUpdateNewsInfo"}) | @Test(dependsOnMethods = {"testUpdateNewsInfo"}) | ||||
| public void testMaterialNewsList() throws WxErrorException { | public void testMaterialNewsList() throws WxErrorException { | ||||
| WxMpMaterialNewsBatchGetResult wxMpMaterialNewsBatchGetResult = this.wxService.getMaterialService().materialNewsBatchGet(0, 20); | WxMpMaterialNewsBatchGetResult wxMpMaterialNewsBatchGetResult = this.wxService.getMaterialService().materialNewsBatchGet(0, 20); | ||||
| return; | |||||
| assertNotNull(wxMpMaterialNewsBatchGetResult); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testMaterialNewsList"}) | @Test(dependsOnMethods = {"testMaterialNewsList"}) | ||||
| @@ -207,13 +247,15 @@ public class WxMpMaterialServiceImplTest { | |||||
| WxMpMaterialFileBatchGetResult wxMpMaterialVoiceBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VOICE, 0, 20); | WxMpMaterialFileBatchGetResult wxMpMaterialVoiceBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VOICE, 0, 20); | ||||
| WxMpMaterialFileBatchGetResult wxMpMaterialVideoBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VIDEO, 0, 20); | WxMpMaterialFileBatchGetResult wxMpMaterialVideoBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_VIDEO, 0, 20); | ||||
| WxMpMaterialFileBatchGetResult wxMpMaterialImageBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_IMAGE, 0, 20); | WxMpMaterialFileBatchGetResult wxMpMaterialImageBatchGetResult = this.wxService.getMaterialService().materialFileBatchGet(WxConsts.MATERIAL_IMAGE, 0, 20); | ||||
| return; | |||||
| assertNotNull(wxMpMaterialVoiceBatchGetResult); | |||||
| assertNotNull(wxMpMaterialVideoBatchGetResult); | |||||
| assertNotNull(wxMpMaterialImageBatchGetResult); | |||||
| } | } | ||||
| @Test(dependsOnMethods = {"testMaterialFileList"}, dataProvider = "allTestMaterial") | @Test(dependsOnMethods = {"testMaterialFileList"}, dataProvider = "allTestMaterial") | ||||
| public void testDeleteMaterial(String mediaId) throws WxErrorException { | public void testDeleteMaterial(String mediaId) throws WxErrorException { | ||||
| boolean result = this.wxService.getMaterialService().materialDelete(mediaId); | boolean result = this.wxService.getMaterialService().materialDelete(mediaId); | ||||
| Assert.assertTrue(result); | |||||
| assertTrue(result); | |||||
| } | } | ||||
| @DataProvider | @DataProvider | ||||
| @@ -244,9 +286,9 @@ public class WxMpMaterialServiceImplTest { | |||||
| public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { | public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { | ||||
| try(InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName)){ | try(InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName)){ | ||||
| WxMediaUploadResult res = this.wxService.getMaterialService().mediaUpload(mediaType, fileType, inputStream); | WxMediaUploadResult res = this.wxService.getMaterialService().mediaUpload(mediaType, fileType, inputStream); | ||||
| Assert.assertNotNull(res.getType()); | |||||
| Assert.assertNotNull(res.getCreatedAt()); | |||||
| Assert.assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null); | |||||
| assertNotNull(res.getType()); | |||||
| assertNotNull(res.getCreatedAt()); | |||||
| assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null); | |||||
| if (res.getMediaId() != null) { | if (res.getMediaId() != null) { | ||||
| this.mediaIds.add(res.getMediaId()); | this.mediaIds.add(res.getMediaId()); | ||||
| @@ -263,7 +305,7 @@ public class WxMpMaterialServiceImplTest { | |||||
| @Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia") | @Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia") | ||||
| public void testDownloadMedia(String media_id) throws WxErrorException { | public void testDownloadMedia(String media_id) throws WxErrorException { | ||||
| File file = this.wxService.getMaterialService().mediaDownload(media_id); | File file = this.wxService.getMaterialService().mediaDownload(media_id); | ||||
| Assert.assertNotNull(file); | |||||
| assertNotNull(file); | |||||
| System.out.println(file.getAbsolutePath()); | System.out.println(file.getAbsolutePath()); | ||||
| } | } | ||||
| @@ -25,12 +25,12 @@ public class WxMpUserServiceImplTest { | |||||
| protected WxMpServiceImpl wxService; | protected WxMpServiceImpl wxService; | ||||
| public void testUserUpdateRemark() throws WxErrorException { | public void testUserUpdateRemark() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| this.wxService.getUserService().userUpdateRemark(configProvider.getOpenId(), "测试备注名"); | this.wxService.getUserService().userUpdateRemark(configProvider.getOpenId(), "测试备注名"); | ||||
| } | } | ||||
| public void testUserInfo() throws WxErrorException { | public void testUserInfo() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| WxMpUser user = this.wxService.getUserService().userInfo(configProvider.getOpenId(), null); | WxMpUser user = this.wxService.getUserService().userInfo(configProvider.getOpenId(), null); | ||||
| Assert.assertNotNull(user); | Assert.assertNotNull(user); | ||||
| System.out.println(user); | System.out.println(user); | ||||
| @@ -46,13 +46,13 @@ public class WxMpUserServiceImplTest { | |||||
| } | } | ||||
| public void testGroupQueryUserGroup() throws WxErrorException { | public void testGroupQueryUserGroup() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| long groupid = this.wxService.getGroupService().userGetGroup(configStorage.getOpenId()); | long groupid = this.wxService.getGroupService().userGetGroup(configStorage.getOpenId()); | ||||
| Assert.assertTrue(groupid != -1l); | Assert.assertTrue(groupid != -1l); | ||||
| } | } | ||||
| public void testGroupMoveUser() throws WxErrorException { | public void testGroupMoveUser() throws WxErrorException { | ||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) wxService.getWxMpConfigStorage(); | |||||
| ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
| this.wxService.getGroupService().userUpdateGroup(configStorage.getOpenId(), this.wxService.getGroupService().groupGet().get(3).getId()); | this.wxService.getGroupService().userUpdateGroup(configStorage.getOpenId(), this.wxService.getGroupService().groupGet().get(3).getId()); | ||||
| } | } | ||||
| @@ -16,8 +16,8 @@ public class WxRedpackResultTest { | |||||
| @Before | @Before | ||||
| public void setup() { | public void setup() { | ||||
| xstream = XStreamInitializer.getInstance(); | |||||
| xstream.processAnnotations(WxRedpackResult.class); | |||||
| this.xstream = XStreamInitializer.getInstance(); | |||||
| this.xstream.processAnnotations(WxRedpackResult.class); | |||||
| } | } | ||||
| @Test public void loadSuccessResult() { | @Test public void loadSuccessResult() { | ||||
| @@ -35,7 +35,7 @@ public class WxRedpackResultTest { | |||||
| "<send_listid>100000000020150520314766074200</send_listid>\n" + | "<send_listid>100000000020150520314766074200</send_listid>\n" + | ||||
| "<send_time>20150520102602</send_time>\n" + | "<send_time>20150520102602</send_time>\n" + | ||||
| "</xml>"; | "</xml>"; | ||||
| WxRedpackResult wxMpRedpackResult = (WxRedpackResult) xstream.fromXML(successSample); | |||||
| WxRedpackResult wxMpRedpackResult = (WxRedpackResult) this.xstream.fromXML(successSample); | |||||
| assertEquals("SUCCESS", wxMpRedpackResult.getReturnCode()); | assertEquals("SUCCESS", wxMpRedpackResult.getReturnCode()); | ||||
| assertEquals("SUCCESS", wxMpRedpackResult.getResultCode()); | assertEquals("SUCCESS", wxMpRedpackResult.getResultCode()); | ||||
| assertEquals("20150520102602", wxMpRedpackResult.getSendTime()); | assertEquals("20150520102602", wxMpRedpackResult.getSendTime()); | ||||
| @@ -54,7 +54,7 @@ public class WxRedpackResultTest { | |||||
| "<re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>\n" + | "<re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>\n" + | ||||
| "<total_amount>1</total_amount>\n" + | "<total_amount>1</total_amount>\n" + | ||||
| "</xml>"; | "</xml>"; | ||||
| WxRedpackResult wxMpRedpackResult = (WxRedpackResult) xstream.fromXML(failureSample); | |||||
| WxRedpackResult wxMpRedpackResult = (WxRedpackResult) this.xstream.fromXML(failureSample); | |||||
| assertEquals("FAIL", wxMpRedpackResult.getReturnCode()); | assertEquals("FAIL", wxMpRedpackResult.getReturnCode()); | ||||
| assertEquals("FAIL", wxMpRedpackResult.getResultCode()); | assertEquals("FAIL", wxMpRedpackResult.getResultCode()); | ||||
| assertEquals("onqOjjmM1tad-3ROpncN-yUfa6uI", wxMpRedpackResult.getReOpenid()); | assertEquals("onqOjjmM1tad-3ROpncN-yUfa6uI", wxMpRedpackResult.getReOpenid()); | ||||
| @@ -30,7 +30,7 @@ public class DemoGuessNumberHandler implements WxMpMessageHandler, WxMpMessageMa | |||||
| } | } | ||||
| private boolean isUserAnswering(WxMpXmlMessage message) { | private boolean isUserAnswering(WxMpXmlMessage message) { | ||||
| return pattern.matcher(message.getContent()).matches(); | |||||
| return this.pattern.matcher(message.getContent()).matches(); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -68,7 +68,7 @@ public class DemoGuessNumberHandler implements WxMpMessageHandler, WxMpMessageMa | |||||
| } | } | ||||
| session.setAttribute("guessing", Boolean.TRUE); | session.setAttribute("guessing", Boolean.TRUE); | ||||
| session.setAttribute("number", random.nextInt(100)); | |||||
| session.setAttribute("number", this.random.nextInt(100)); | |||||
| } | } | ||||
| @@ -15,8 +15,8 @@ class WxMpDemoInMemoryConfigStorage extends WxMpInMemoryConfigStorage { | |||||
| @Override | @Override | ||||
| public String toString() { | public String toString() { | ||||
| return "SimpleWxConfigProvider [appId=" + appId + ", secret=" + secret + ", accessToken=" + accessToken | |||||
| + ", expiresTime=" + expiresTime + ", token=" + token + ", aesKey=" + aesKey + "]"; | |||||
| return "SimpleWxConfigProvider [appId=" + this.appId + ", secret=" + this.secret + ", accessToken=" + this.accessToken | |||||
| + ", expiresTime=" + this.expiresTime + ", token=" + this.token + ", aesKey=" + this.aesKey + "]"; | |||||
| } | } | ||||
| @@ -1,13 +1,18 @@ | |||||
| package me.chanjar.weixin.mp.demo; | package me.chanjar.weixin.mp.demo; | ||||
| import me.chanjar.weixin.common.api.WxConsts; | |||||
| import me.chanjar.weixin.mp.api.*; | |||||
| import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; | |||||
| import java.io.IOException; | |||||
| import java.io.InputStream; | |||||
| import org.eclipse.jetty.server.Server; | import org.eclipse.jetty.server.Server; | ||||
| import org.eclipse.jetty.servlet.ServletHandler; | import org.eclipse.jetty.servlet.ServletHandler; | ||||
| import org.eclipse.jetty.servlet.ServletHolder; | import org.eclipse.jetty.servlet.ServletHolder; | ||||
| import java.io.InputStream; | |||||
| import me.chanjar.weixin.common.api.WxConsts; | |||||
| import me.chanjar.weixin.mp.api.WxMpConfigStorage; | |||||
| import me.chanjar.weixin.mp.api.WxMpMessageHandler; | |||||
| import me.chanjar.weixin.mp.api.WxMpMessageRouter; | |||||
| import me.chanjar.weixin.mp.api.WxMpService; | |||||
| import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; | |||||
| public class WxMpDemoServer { | public class WxMpDemoServer { | ||||
| @@ -23,10 +28,13 @@ public class WxMpDemoServer { | |||||
| ServletHandler servletHandler = new ServletHandler(); | ServletHandler servletHandler = new ServletHandler(); | ||||
| server.setHandler(servletHandler); | server.setHandler(servletHandler); | ||||
| ServletHolder endpointServletHolder = new ServletHolder(new WxMpEndpointServlet(wxMpConfigStorage, wxMpService, wxMpMessageRouter)); | |||||
| ServletHolder endpointServletHolder = new ServletHolder( | |||||
| new WxMpEndpointServlet(wxMpConfigStorage, wxMpService, | |||||
| wxMpMessageRouter)); | |||||
| servletHandler.addServletWithMapping(endpointServletHolder, "/*"); | servletHandler.addServletWithMapping(endpointServletHolder, "/*"); | ||||
| ServletHolder oauthServletHolder = new ServletHolder(new WxMpOAuth2Servlet(wxMpService)); | |||||
| ServletHolder oauthServletHolder = new ServletHolder( | |||||
| new WxMpOAuth2Servlet(wxMpService)); | |||||
| servletHandler.addServletWithMapping(oauthServletHolder, "/oauth2/*"); | servletHandler.addServletWithMapping(oauthServletHolder, "/oauth2/*"); | ||||
| server.start(); | server.start(); | ||||
| @@ -34,27 +42,30 @@ public class WxMpDemoServer { | |||||
| } | } | ||||
| private static void initWeixin() { | private static void initWeixin() { | ||||
| InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml"); | |||||
| WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage.fromXml(is1); | |||||
| wxMpConfigStorage = config; | |||||
| wxMpService = new WxMpServiceImpl(); | |||||
| wxMpService.setWxMpConfigStorage(config); | |||||
| WxMpMessageHandler logHandler = new DemoLogHandler(); | |||||
| WxMpMessageHandler textHandler = new DemoTextHandler(); | |||||
| WxMpMessageHandler imageHandler = new DemoImageHandler(); | |||||
| WxMpMessageHandler oauth2handler = new DemoOAuth2Handler(); | |||||
| DemoGuessNumberHandler guessNumberHandler = new DemoGuessNumberHandler(); | |||||
| wxMpMessageRouter = new WxMpMessageRouter(wxMpService); | |||||
| wxMpMessageRouter | |||||
| .rule().handler(logHandler).next() | |||||
| .rule().msgType(WxConsts.XML_MSG_TEXT).matcher(guessNumberHandler).handler(guessNumberHandler).end() | |||||
| .rule().async(false).content("哈哈").handler(textHandler).end() | |||||
| .rule().async(false).content("图片").handler(imageHandler).end() | |||||
| .rule().async(false).content("oauth").handler(oauth2handler).end() | |||||
| ; | |||||
| try (InputStream is1 = ClassLoader | |||||
| .getSystemResourceAsStream("test-config.xml")) { | |||||
| WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage | |||||
| .fromXml(is1); | |||||
| wxMpConfigStorage = config; | |||||
| wxMpService = new WxMpServiceImpl(); | |||||
| wxMpService.setWxMpConfigStorage(config); | |||||
| WxMpMessageHandler logHandler = new DemoLogHandler(); | |||||
| WxMpMessageHandler textHandler = new DemoTextHandler(); | |||||
| WxMpMessageHandler imageHandler = new DemoImageHandler(); | |||||
| WxMpMessageHandler oauth2handler = new DemoOAuth2Handler(); | |||||
| DemoGuessNumberHandler guessNumberHandler = new DemoGuessNumberHandler(); | |||||
| wxMpMessageRouter = new WxMpMessageRouter(wxMpService); | |||||
| wxMpMessageRouter.rule().handler(logHandler).next().rule() | |||||
| .msgType(WxConsts.XML_MSG_TEXT).matcher(guessNumberHandler) | |||||
| .handler(guessNumberHandler).end().rule().async(false).content("哈哈") | |||||
| .handler(textHandler).end().rule().async(false).content("图片") | |||||
| .handler(imageHandler).end().rule().async(false).content("oauth") | |||||
| .handler(oauth2handler).end(); | |||||
| } catch (IOException e) { | |||||
| e.printStackTrace(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -18,6 +18,10 @@ import java.io.IOException; | |||||
| */ | */ | ||||
| public class WxMpEndpointServlet extends HttpServlet { | public class WxMpEndpointServlet extends HttpServlet { | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = 1L; | |||||
| protected WxMpConfigStorage wxMpConfigStorage; | protected WxMpConfigStorage wxMpConfigStorage; | ||||
| protected WxMpService wxMpService; | protected WxMpService wxMpService; | ||||
| protected WxMpMessageRouter wxMpMessageRouter; | protected WxMpMessageRouter wxMpMessageRouter; | ||||
| @@ -39,7 +43,7 @@ public class WxMpEndpointServlet extends HttpServlet { | |||||
| String nonce = request.getParameter("nonce"); | String nonce = request.getParameter("nonce"); | ||||
| String timestamp = request.getParameter("timestamp"); | String timestamp = request.getParameter("timestamp"); | ||||
| if (!wxMpService.checkSignature(timestamp, nonce, signature)) { | |||||
| if (!this.wxMpService.checkSignature(timestamp, nonce, signature)) { | |||||
| // 消息签名不正确,说明不是公众平台发过来的消息 | // 消息签名不正确,说明不是公众平台发过来的消息 | ||||
| response.getWriter().println("非法请求"); | response.getWriter().println("非法请求"); | ||||
| return; | return; | ||||
| @@ -59,7 +63,7 @@ public class WxMpEndpointServlet extends HttpServlet { | |||||
| if ("raw".equals(encryptType)) { | if ("raw".equals(encryptType)) { | ||||
| // 明文传输的消息 | // 明文传输的消息 | ||||
| WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(request.getInputStream()); | WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(request.getInputStream()); | ||||
| WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage); | |||||
| WxMpXmlOutMessage outMessage = this.wxMpMessageRouter.route(inMessage); | |||||
| if (outMessage != null) { | if (outMessage != null) { | ||||
| response.getWriter().write(outMessage.toXml()); | response.getWriter().write(outMessage.toXml()); | ||||
| } | } | ||||
| @@ -69,9 +73,9 @@ public class WxMpEndpointServlet extends HttpServlet { | |||||
| if ("aes".equals(encryptType)) { | if ("aes".equals(encryptType)) { | ||||
| // 是aes加密的消息 | // 是aes加密的消息 | ||||
| String msgSignature = request.getParameter("msg_signature"); | String msgSignature = request.getParameter("msg_signature"); | ||||
| WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(request.getInputStream(), wxMpConfigStorage, timestamp, nonce, msgSignature); | |||||
| WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage); | |||||
| response.getWriter().write(outMessage.toEncryptedXml(wxMpConfigStorage)); | |||||
| WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(request.getInputStream(), this.wxMpConfigStorage, timestamp, nonce, msgSignature); | |||||
| WxMpXmlOutMessage outMessage = this.wxMpMessageRouter.route(inMessage); | |||||
| response.getWriter().write(outMessage.toEncryptedXml(this.wxMpConfigStorage)); | |||||
| return; | return; | ||||
| } | } | ||||
| @@ -13,6 +13,10 @@ import java.io.IOException; | |||||
| public class WxMpOAuth2Servlet extends HttpServlet { | public class WxMpOAuth2Servlet extends HttpServlet { | ||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = 1L; | |||||
| protected WxMpService wxMpService; | protected WxMpService wxMpService; | ||||
| public WxMpOAuth2Servlet(WxMpService wxMpService) { | public WxMpOAuth2Servlet(WxMpService wxMpService) { | ||||
| @@ -30,15 +34,15 @@ public class WxMpOAuth2Servlet extends HttpServlet { | |||||
| response.getWriter().println("<h1>code</h1>"); | response.getWriter().println("<h1>code</h1>"); | ||||
| response.getWriter().println(code); | response.getWriter().println(code); | ||||
| WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code); | |||||
| WxMpOAuth2AccessToken wxMpOAuth2AccessToken = this.wxMpService.oauth2getAccessToken(code); | |||||
| response.getWriter().println("<h1>access token</h1>"); | response.getWriter().println("<h1>access token</h1>"); | ||||
| response.getWriter().println(wxMpOAuth2AccessToken.toString()); | response.getWriter().println(wxMpOAuth2AccessToken.toString()); | ||||
| WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null); | |||||
| WxMpUser wxMpUser = this.wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null); | |||||
| response.getWriter().println("<h1>user info</h1>"); | response.getWriter().println("<h1>user info</h1>"); | ||||
| response.getWriter().println(wxMpUser.toString()); | response.getWriter().println(wxMpUser.toString()); | ||||
| wxMpOAuth2AccessToken = wxMpService.oauth2refreshAccessToken(wxMpOAuth2AccessToken.getRefreshToken()); | |||||
| wxMpOAuth2AccessToken = this.wxMpService.oauth2refreshAccessToken(wxMpOAuth2AccessToken.getRefreshToken()); | |||||
| response.getWriter().println("<h1>after refresh</h1>"); | response.getWriter().println("<h1>after refresh</h1>"); | ||||
| response.getWriter().println(wxMpOAuth2AccessToken.toString()); | response.getWriter().println(wxMpOAuth2AccessToken.toString()); | ||||