fix some warnings in test files

This commit is contained in:
BinaryWang 2016-09-01 09:57:54 +08:00
parent 585b721827
commit 66cd7cda43
16 changed files with 251 additions and 168 deletions

View File

@ -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());

View File

@ -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);
} }

View File

@ -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 = this.wxService.getMaterialService()
WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, inputStream); .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() };
} }
/** /**
* 图片素材 * 图片素材
*/ */
{ try (InputStream inputStream = ClassLoader
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.jpeg"); .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());
messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() }; messages[1] = new Object[] { WxConsts.MASS_MSG_IMAGE, uploadMediaRes.getMediaId() };
} }
/** /**
* 语音素材 * 语音素材
*/ */
{ try (InputStream inputStream = ClassLoader
InputStream inputStream = ClassLoader.getSystemResourceAsStream("mm.mp3"); .getSystemResourceAsStream("mm.mp3")) {
WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, inputStream); 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 = this.wxService.getMaterialService()
WxMediaUploadResult uploadMediaRes = wxService.getMaterialService().mediaUpload(WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, inputStream); .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;
} }

View File

@ -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;
} }

View File

@ -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);

View File

@ -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);
} }

View File

@ -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);
} }

View File

@ -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.group.setName("分组改名");
this.wxService.getGroupService().groupUpdate(group); this.wxService.getGroupService().groupUpdate(this.group);
} }
} }

View File

@ -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 me.chanjar.weixin.mp.bean.result.WxMpMaterialCountResult;
import org.apache.commons.io.IOUtils; import me.chanjar.weixin.mp.bean.result.WxMpMaterialFileBatchGetResult;
import org.testng.Assert; import me.chanjar.weixin.mp.bean.result.WxMpMaterialNewsBatchGetResult;
import org.testng.annotations.DataProvider; import me.chanjar.weixin.mp.bean.result.WxMpMaterialUploadResult;
import org.testng.annotations.Guice; import me.chanjar.weixin.mp.bean.result.WxMpMaterialVideoInfoResult;
import org.testng.annotations.Test;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
/** /**
* 素材管理相关接口的测试 * 素材管理相关接口的测试
@ -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) { if (this.wxMaterialCountResultBeforeTest == null) {
wxMaterialCountResultBeforeTest = this.wxService.getMaterialService().materialCount(); this.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();
} }
Map<String, Object> materialInfo = new HashMap<>(); try (InputStream inputStream = ClassLoader
materialInfo.put("media_id", res.getMediaId()); .getSystemResourceAsStream(fileName)) {
materialInfo.put("length", tempFile.length()); File tempFile = FileUtils.createTmpFile(inputStream,
materialInfo.put("filename", tempFile.getName()); UUID.randomUUID().toString(), fileType);
media_ids.put(res.getMediaId(), materialInfo); WxMpMaterial wxMaterial = new WxMpMaterial();
wxMaterial.setFile(tempFile);
wxMaterial.setName(fileName);
if (WxConsts.MEDIA_VIDEO.equals(mediaType)) {
wxMaterial.setVideoTitle("title");
wxMaterial.setVideoIntroduction("test video description");
}
System.out.println(res); WxMpMaterialUploadResult res = this.wxService.getMaterialService()
.materialFileUpload(mediaType, wxMaterial);
assertNotNull(res.getMediaId());
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()); assertEquals(
Assert.assertEquals(wxMaterialCountResultBeforeTest.getVideoCount() + 1, wxMaterialCountResult.getVideoCount()); this.wxMaterialCountResultBeforeTest.getVoiceCount() + 1,
Assert.assertEquals(wxMaterialCountResultBeforeTest.getImageCount() + 2, wxMaterialCountResult.getImageCount()); wxMaterialCountResult.getVoiceCount());
Assert.assertEquals(wxMaterialCountResultBeforeTest.getNewsCount() + 2, wxMaterialCountResult.getNewsCount()); 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); Map<String, Object> materialInfo = this.media_ids.get(media_id);
Assert.assertNotNull(materialInfo); 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); try (InputStream inputStream = this.wxService.getMaterialService()
Assert.assertNotNull(inputStream); .materialImageOrVoiceDownload(media_id)) {
IOUtils.closeQuietly(inputStream); 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); assertNotNull(wxMaterialVideoInfoResult);
Assert.assertNotNull(wxMaterialVideoInfoResult.getDownUrl()); 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 wxMpMaterialNewsSingle = this.wxService
WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); .getMaterialService().materialNewsInfo(this.singleNewsMediaId);
Assert.assertNotNull(wxMpMaterialNewsSingle); WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService
Assert.assertNotNull(wxMpMaterialNewsMultiple); .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); WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService
Assert.assertNotNull(wxMpMaterialNewsSingle); .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); assertTrue(resultSingle);
wxMpMaterialNewsSingle = this.wxService.getMaterialService().materialNewsInfo(singleNewsMediaId); wxMpMaterialNewsSingle = this.wxService.getMaterialService()
Assert.assertNotNull(wxMpMaterialNewsSingle); .materialNewsInfo(this.singleNewsMediaId);
Assert.assertEquals("content single update", wxMpMaterialNewsSingle.getArticles().get(0).getContent()); assertNotNull(wxMpMaterialNewsSingle);
assertEquals("content single update",
wxMpMaterialNewsSingle.getArticles().get(0).getContent());
WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); WxMpMaterialNews wxMpMaterialNewsMultiple = this.wxService
Assert.assertNotNull(wxMpMaterialNewsMultiple); .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); assertTrue(resultMulti);
wxMpMaterialNewsMultiple = this.wxService.getMaterialService().materialNewsInfo(multiNewsMediaId); wxMpMaterialNewsMultiple = this.wxService.getMaterialService()
Assert.assertNotNull(wxMpMaterialNewsMultiple); .materialNewsInfo(this.multiNewsMediaId);
Assert.assertEquals("content 2 update", wxMpMaterialNewsMultiple.getArticles().get(1).getContent()); 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()); assertNotNull(res.getType());
Assert.assertNotNull(res.getCreatedAt()); assertNotNull(res.getCreatedAt());
Assert.assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null); 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());
} }

View File

@ -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());
} }

View File

@ -16,8 +16,8 @@ public class WxRedpackResultTest {
@Before @Before
public void setup() { public void setup() {
xstream = XStreamInitializer.getInstance(); this.xstream = XStreamInitializer.getInstance();
xstream.processAnnotations(WxRedpackResult.class); 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());

View File

@ -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));
} }

View File

@ -15,8 +15,8 @@ class WxMpDemoInMemoryConfigStorage extends WxMpInMemoryConfigStorage {
@Override @Override
public String toString() { public String toString() {
return "SimpleWxConfigProvider [appId=" + appId + ", secret=" + secret + ", accessToken=" + accessToken return "SimpleWxConfigProvider [appId=" + this.appId + ", secret=" + this.secret + ", accessToken=" + this.accessToken
+ ", expiresTime=" + expiresTime + ", token=" + token + ", aesKey=" + aesKey + "]"; + ", expiresTime=" + this.expiresTime + ", token=" + this.token + ", aesKey=" + this.aesKey + "]";
} }

View File

@ -1,13 +1,18 @@
package me.chanjar.weixin.mp.demo; package me.chanjar.weixin.mp.demo;
import me.chanjar.weixin.common.api.WxConsts; import java.io.IOException;
import me.chanjar.weixin.mp.api.*; import java.io.InputStream;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
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"); try (InputStream is1 = ClassLoader
WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage.fromXml(is1); .getSystemResourceAsStream("test-config.xml")) {
WxMpDemoInMemoryConfigStorage config = WxMpDemoInMemoryConfigStorage
.fromXml(is1);
wxMpConfigStorage = config; wxMpConfigStorage = config;
wxMpService = new WxMpServiceImpl(); wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(config); wxMpService.setWxMpConfigStorage(config);
WxMpMessageHandler logHandler = new DemoLogHandler(); WxMpMessageHandler logHandler = new DemoLogHandler();
WxMpMessageHandler textHandler = new DemoTextHandler(); WxMpMessageHandler textHandler = new DemoTextHandler();
WxMpMessageHandler imageHandler = new DemoImageHandler(); WxMpMessageHandler imageHandler = new DemoImageHandler();
WxMpMessageHandler oauth2handler = new DemoOAuth2Handler(); WxMpMessageHandler oauth2handler = new DemoOAuth2Handler();
DemoGuessNumberHandler guessNumberHandler = new DemoGuessNumberHandler(); 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()
;
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();
}
} }
} }

View File

@ -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); WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(request.getInputStream(), this.wxMpConfigStorage, timestamp, nonce, msgSignature);
WxMpXmlOutMessage outMessage = wxMpMessageRouter.route(inMessage); WxMpXmlOutMessage outMessage = this.wxMpMessageRouter.route(inMessage);
response.getWriter().write(outMessage.toEncryptedXml(wxMpConfigStorage)); response.getWriter().write(outMessage.toEncryptedXml(this.wxMpConfigStorage));
return; return;
} }

View File

@ -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());