mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-06-28 13:16:19 +08:00
重构单元测试代码
This commit is contained in:
parent
f326d7e72e
commit
771ddef37e
23
pom.xml
23
pom.xml
@ -63,10 +63,33 @@
|
|||||||
<version>1.9.5</version>
|
<version>1.9.5</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.inject</groupId>
|
||||||
|
<artifactId>guice</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-lang3</artifactId>
|
<artifactId>commons-lang3</artifactId>
|
||||||
<version>3.1</version>
|
<version>3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>2.17</version>
|
||||||
|
<configuration>
|
||||||
|
<suiteXmlFiles>
|
||||||
|
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
|
||||||
|
</suiteXmlFiles>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
29
src/test/java/chanjarster/weixin/api/ApiTestModule.java
Normal file
29
src/test/java/chanjarster/weixin/api/ApiTestModule.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package chanjarster.weixin.api;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBException;
|
||||||
|
|
||||||
|
import chanjarster.weixin.api.WxBaseAPITest.WxXmlConfigStorage;
|
||||||
|
import chanjarster.weixin.util.xml.XmlTransformer;
|
||||||
|
|
||||||
|
import com.google.inject.Binder;
|
||||||
|
import com.google.inject.Module;
|
||||||
|
|
||||||
|
public class ApiTestModule implements Module {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configure(Binder binder) {
|
||||||
|
try {
|
||||||
|
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
||||||
|
WxXmlConfigStorage config = XmlTransformer.fromXml(WxXmlConfigStorage.class, is1);
|
||||||
|
WxServiceImpl wxService = new WxServiceImpl();
|
||||||
|
wxService.setWxConfigStorage(config);
|
||||||
|
|
||||||
|
binder.bind(WxServiceImpl.class).toInstance(wxService);
|
||||||
|
} catch (JAXBException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
113
src/test/java/chanjarster/weixin/api/WxBaseAPITest.java
Normal file
113
src/test/java/chanjarster/weixin/api/WxBaseAPITest.java
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package chanjarster.weixin.api;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlRootElement;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.DataProvider;
|
||||||
|
import org.testng.annotations.Guice;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import chanjarster.weixin.bean.result.WxMediaUploadResult;
|
||||||
|
import chanjarster.weixin.exception.WxErrorException;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
|
@Test(groups="baseAPI")
|
||||||
|
@Guice(modules = ApiTestModule.class)
|
||||||
|
public class WxBaseAPITest {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected WxServiceImpl wxService;
|
||||||
|
|
||||||
|
private List<String> media_ids = new ArrayList<String>();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRefreshAccessToken() throws WxErrorException {
|
||||||
|
WxConfigStorage configStorage = wxService.wxConfigStorage;
|
||||||
|
String before = configStorage.getAccessToken();
|
||||||
|
wxService.refreshAccessToken();
|
||||||
|
|
||||||
|
String after = configStorage.getAccessToken();
|
||||||
|
|
||||||
|
Assert.assertNotEquals(before, after);
|
||||||
|
Assert.assertTrue(StringUtils.isNotBlank(after));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = { "testRefreshAccessToken" }, dataProvider="uploadMedia", enabled = true)
|
||||||
|
public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException {
|
||||||
|
InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
|
||||||
|
WxMediaUploadResult res = wxService.uploadMedia(mediaType, fileType, inputStream);
|
||||||
|
Assert.assertNotNull(res.getType());
|
||||||
|
Assert.assertNotNull(res.getCreated_at());
|
||||||
|
Assert.assertTrue(res.getMedia_id() != null || res.getThumb_media_id() != null);
|
||||||
|
|
||||||
|
if (res.getMedia_id() != null) {
|
||||||
|
media_ids.add(res.getMedia_id());
|
||||||
|
}
|
||||||
|
if (res.getThumb_media_id() != null) {
|
||||||
|
media_ids.add(res.getThumb_media_id());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] uploadMedia() {
|
||||||
|
return new Object[][] {
|
||||||
|
new Object[] { WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, "mm.jpeg" },
|
||||||
|
new Object[] { WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, "mm.mp3" },
|
||||||
|
new Object[] { WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, "mm.mp4" },
|
||||||
|
new Object[] { WxConsts.MEDIA_THUMB, WxConsts.FILE_JPG, "mm.jpeg" }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia")
|
||||||
|
public void testDownloadMedia(String media_id) throws WxErrorException {
|
||||||
|
wxService.downloadMedia(media_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider
|
||||||
|
public Object[][] downloadMedia() {
|
||||||
|
Object[][] params = new Object[this.media_ids.size()][];
|
||||||
|
for (int i = 0; i < this.media_ids.size(); i++) {
|
||||||
|
params[i] = new Object[] { this.media_ids.get(i) };
|
||||||
|
}
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(enabled = true)
|
||||||
|
public void testCheckSignature() throws WxErrorException {
|
||||||
|
String timestamp = "23234235423246";
|
||||||
|
String nonce = "y7didfkcmvnbd90sdofjkiefhsd";
|
||||||
|
String signature = "77b6651628dfb9a64bfb0d3432ee053ac566a459";
|
||||||
|
Assert.assertTrue(wxService.checkSignature(timestamp, nonce, signature));
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlRootElement(name = "xml")
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
public static class WxXmlConfigStorage extends WxInMemoryConfigStorage {
|
||||||
|
|
||||||
|
protected String openId;
|
||||||
|
|
||||||
|
public String getOpenId() {
|
||||||
|
return openId;
|
||||||
|
}
|
||||||
|
public void setOpenId(String openId) {
|
||||||
|
this.openId = openId;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "SimpleWxConfigProvider [appId=" + appId + ", secret=" + secret + ", accessToken=" + accessToken
|
||||||
|
+ ", expiresIn=" + expiresIn + ", token=" + token + ", openId=" + openId + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package chanjarster.weixin.api;
|
||||||
|
|
||||||
|
import org.testng.annotations.Guice;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
|
import chanjarster.weixin.api.WxBaseAPITest.WxXmlConfigStorage;
|
||||||
|
import chanjarster.weixin.bean.WxCustomMessage;
|
||||||
|
import chanjarster.weixin.exception.WxErrorException;
|
||||||
|
|
||||||
|
@Test(dependsOnGroups="baseAPI")
|
||||||
|
@Guice(modules = ApiTestModule.class)
|
||||||
|
public class WxCustomMessageAPITest {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected WxServiceImpl wxService;
|
||||||
|
|
||||||
|
@Test(enabled = true)
|
||||||
|
public void testSendCustomMessage() throws WxErrorException {
|
||||||
|
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigStorage;
|
||||||
|
WxCustomMessage message = new WxCustomMessage();
|
||||||
|
message.setMsgtype(WxConsts.CUSTOM_MSG_TEXT);
|
||||||
|
message.setTouser(configProvider.getOpenId());
|
||||||
|
message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");
|
||||||
|
|
||||||
|
wxService.sendCustomMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
86
src/test/java/chanjarster/weixin/api/WxMenuAPITest.java
Normal file
86
src/test/java/chanjarster/weixin/api/WxMenuAPITest.java
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
package chanjarster.weixin.api;
|
||||||
|
|
||||||
|
import javax.xml.bind.JAXBException;
|
||||||
|
|
||||||
|
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 chanjarster.weixin.bean.WxMenu;
|
||||||
|
import chanjarster.weixin.bean.WxMenu.WxMenuButton;
|
||||||
|
import chanjarster.weixin.exception.WxErrorException;
|
||||||
|
|
||||||
|
@Test(dependsOnGroups="baseAPI")
|
||||||
|
@Guice(modules = ApiTestModule.class)
|
||||||
|
public class WxMenuAPITest {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
protected WxServiceImpl wxService;
|
||||||
|
|
||||||
|
@Test(dataProvider = "menu", enabled = true)
|
||||||
|
public void testCreateMenu(WxMenu wxMenu) throws WxErrorException {
|
||||||
|
wxService.createMenu(wxMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = { "testCreateMenu"}, enabled = true)
|
||||||
|
public void testGetMenu() throws WxErrorException {
|
||||||
|
Assert.assertNotNull(wxService.getMenu());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(dependsOnMethods = { "testGetMenu"}, enabled = true)
|
||||||
|
public void testDeleteMenu() throws WxErrorException {
|
||||||
|
wxService.deleteMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
@DataProvider(name="menu")
|
||||||
|
public Object[][] getMenu() throws JAXBException {
|
||||||
|
WxMenu menu = new WxMenu();
|
||||||
|
WxMenuButton button1 = new WxMenuButton();
|
||||||
|
button1.setType("click");
|
||||||
|
button1.setName("今日歌曲");
|
||||||
|
button1.setKey("V1001_TODAY_MUSIC");
|
||||||
|
|
||||||
|
WxMenuButton button2 = new WxMenuButton();
|
||||||
|
button2.setType("click");
|
||||||
|
button2.setName("歌手简介");
|
||||||
|
button2.setKey("V1001_TODAY_SINGER");
|
||||||
|
|
||||||
|
WxMenuButton button3 = new WxMenuButton();
|
||||||
|
button3.setName("菜单");
|
||||||
|
|
||||||
|
menu.getButton().add(button1);
|
||||||
|
menu.getButton().add(button2);
|
||||||
|
menu.getButton().add(button3);
|
||||||
|
|
||||||
|
WxMenuButton button31 = new WxMenuButton();
|
||||||
|
button31.setType("view");
|
||||||
|
button31.setName("搜索");
|
||||||
|
button31.setUrl("http://www.soso.com/");
|
||||||
|
|
||||||
|
WxMenuButton button32 = new WxMenuButton();
|
||||||
|
button32.setType("view");
|
||||||
|
button32.setName("视频");
|
||||||
|
button32.setUrl("http://v.qq.com/");
|
||||||
|
|
||||||
|
WxMenuButton button33 = new WxMenuButton();
|
||||||
|
button33.setType("click");
|
||||||
|
button33.setName("赞一下我们");
|
||||||
|
button33.setKey("V1001_GOOD");
|
||||||
|
|
||||||
|
button3.getSub_button().add(button31);
|
||||||
|
button3.getSub_button().add(button32);
|
||||||
|
button3.getSub_button().add(button33);
|
||||||
|
|
||||||
|
return new Object[][] {
|
||||||
|
new Object[] {
|
||||||
|
menu
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -46,11 +46,6 @@ public class WxMessageRouterTest {
|
|||||||
Assert.assertEquals(sb.toString(), expected);
|
Assert.assertEquals(sb.toString(), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test()
|
|
||||||
public void test() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@DataProvider(name="messages-1")
|
@DataProvider(name="messages-1")
|
||||||
public Object[][] messages2() {
|
public Object[][] messages2() {
|
||||||
WxXmlMessage message1 = new WxXmlMessage();
|
WxXmlMessage message1 = new WxXmlMessage();
|
||||||
|
@ -1,195 +0,0 @@
|
|||||||
package chanjarster.weixin.api;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.xml.bind.JAXBException;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.testng.Assert;
|
|
||||||
import org.testng.annotations.BeforeTest;
|
|
||||||
import org.testng.annotations.DataProvider;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import chanjarster.weixin.bean.WxCustomMessage;
|
|
||||||
import chanjarster.weixin.bean.WxMenu;
|
|
||||||
import chanjarster.weixin.bean.WxMenu.WxMenuButton;
|
|
||||||
import chanjarster.weixin.bean.result.WxMediaUploadResult;
|
|
||||||
import chanjarster.weixin.exception.WxErrorException;
|
|
||||||
import chanjarster.weixin.util.xml.XmlTransformer;
|
|
||||||
|
|
||||||
public class WxServiceTest {
|
|
||||||
|
|
||||||
private WxServiceImpl wxService;
|
|
||||||
|
|
||||||
private List<String> media_ids = new ArrayList<String>();
|
|
||||||
|
|
||||||
@BeforeTest
|
|
||||||
public void prepare() throws JAXBException {
|
|
||||||
this.wxService = null;
|
|
||||||
InputStream is1 = ClassLoader.getSystemResourceAsStream("test-config.xml");
|
|
||||||
WxXmlConfigStorage config = XmlTransformer.fromXml(WxXmlConfigStorage.class, is1);
|
|
||||||
this.wxService = new WxServiceImpl();
|
|
||||||
this.wxService.setWxConfigStorage(config);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test()
|
|
||||||
public void testRefreshAccessToken() throws WxErrorException {
|
|
||||||
WxConfigStorage configStorage = wxService.wxConfigStorage;
|
|
||||||
String before = configStorage.getAccessToken();
|
|
||||||
wxService.refreshAccessToken();
|
|
||||||
|
|
||||||
String after = configStorage.getAccessToken();
|
|
||||||
|
|
||||||
Assert.assertNotEquals(before, after);
|
|
||||||
Assert.assertTrue(StringUtils.isNotBlank(after));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dependsOnMethods = "testRefreshAccessToken", enabled = true)
|
|
||||||
public void sendCustomMessage() throws WxErrorException {
|
|
||||||
WxXmlConfigStorage configProvider = (WxXmlConfigStorage) wxService.wxConfigStorage;
|
|
||||||
WxCustomMessage message = new WxCustomMessage();
|
|
||||||
message.setMsgtype(WxConsts.CUSTOM_MSG_TEXT);
|
|
||||||
message.setTouser(configProvider.getOpenId());
|
|
||||||
message.setContent("欢迎欢迎,热烈欢迎\n换行测试\n超链接:<a href=\"http://www.baidu.com\">Hello World</a>");
|
|
||||||
|
|
||||||
wxService.sendCustomMessage(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dataProvider = "menu", dependsOnMethods = "testRefreshAccessToken", enabled = true)
|
|
||||||
public void testCreateMenu(WxMenu wxMenu) throws WxErrorException {
|
|
||||||
wxService.createMenu(wxMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dependsOnMethods = { "testRefreshAccessToken" , "testCreateMenu"}, enabled = true)
|
|
||||||
public void testGetMenu() throws WxErrorException {
|
|
||||||
Assert.assertNotNull(wxService.getMenu());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dependsOnMethods = { "testRefreshAccessToken", "testGetMenu"}, enabled = true)
|
|
||||||
public void testDeleteMenu() throws WxErrorException {
|
|
||||||
wxService.deleteMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dependsOnMethods = { "testRefreshAccessToken" }, dataProvider="uploadMedia", enabled = true)
|
|
||||||
public void testUploadMedia1(String mediaType, String fileType, String fileName) throws WxErrorException, IOException {
|
|
||||||
InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
|
|
||||||
WxMediaUploadResult res = wxService.uploadMedia(mediaType, fileType, inputStream);
|
|
||||||
Assert.assertNotNull(res.getType());
|
|
||||||
Assert.assertNotNull(res.getCreated_at());
|
|
||||||
Assert.assertTrue(res.getMedia_id() != null || res.getThumb_media_id() != null);
|
|
||||||
|
|
||||||
if (res.getMedia_id() != null) {
|
|
||||||
media_ids.add(res.getMedia_id());
|
|
||||||
}
|
|
||||||
if (res.getThumb_media_id() != null) {
|
|
||||||
media_ids.add(res.getThumb_media_id());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@DataProvider
|
|
||||||
public Object[][] uploadMedia() {
|
|
||||||
return new Object[][] {
|
|
||||||
new Object[] { WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, "mm.jpeg" },
|
|
||||||
new Object[] { WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, "mm.mp3" },
|
|
||||||
new Object[] { WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, "mm.mp4" },
|
|
||||||
new Object[] { WxConsts.MEDIA_THUMB, WxConsts.FILE_JPG, "mm.jpeg" }
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(dependsOnMethods = { "testUploadMedia1" }, dataProvider="downloadMedia")
|
|
||||||
public void testDownloadMedia(String media_id) throws WxErrorException {
|
|
||||||
wxService.downloadMedia(media_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@DataProvider
|
|
||||||
public Object[][] downloadMedia() {
|
|
||||||
Object[][] params = new Object[this.media_ids.size()][];
|
|
||||||
for (int i = 0; i < this.media_ids.size(); i++) {
|
|
||||||
params[i] = new Object[] { this.media_ids.get(i) };
|
|
||||||
}
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test(enabled = true)
|
|
||||||
public void testCheckSignature() throws WxErrorException {
|
|
||||||
String timestamp = "23234235423246";
|
|
||||||
String nonce = "y7didfkcmvnbd90sdofjkiefhsd";
|
|
||||||
String signature = "77b6651628dfb9a64bfb0d3432ee053ac566a459";
|
|
||||||
Assert.assertTrue(wxService.checkSignature(timestamp, nonce, signature));
|
|
||||||
}
|
|
||||||
|
|
||||||
@DataProvider(name="menu")
|
|
||||||
public Object[][] getMenu() throws JAXBException {
|
|
||||||
WxMenu menu = new WxMenu();
|
|
||||||
WxMenuButton button1 = new WxMenuButton();
|
|
||||||
button1.setType("click");
|
|
||||||
button1.setName("今日歌曲");
|
|
||||||
button1.setKey("V1001_TODAY_MUSIC");
|
|
||||||
|
|
||||||
WxMenuButton button2 = new WxMenuButton();
|
|
||||||
button2.setType("click");
|
|
||||||
button2.setName("歌手简介");
|
|
||||||
button2.setKey("V1001_TODAY_SINGER");
|
|
||||||
|
|
||||||
WxMenuButton button3 = new WxMenuButton();
|
|
||||||
button3.setName("菜单");
|
|
||||||
|
|
||||||
menu.getButton().add(button1);
|
|
||||||
menu.getButton().add(button2);
|
|
||||||
menu.getButton().add(button3);
|
|
||||||
|
|
||||||
WxMenuButton button31 = new WxMenuButton();
|
|
||||||
button31.setType("view");
|
|
||||||
button31.setName("搜索");
|
|
||||||
button31.setUrl("http://www.soso.com/");
|
|
||||||
|
|
||||||
WxMenuButton button32 = new WxMenuButton();
|
|
||||||
button32.setType("view");
|
|
||||||
button32.setName("视频");
|
|
||||||
button32.setUrl("http://v.qq.com/");
|
|
||||||
|
|
||||||
WxMenuButton button33 = new WxMenuButton();
|
|
||||||
button33.setType("click");
|
|
||||||
button33.setName("赞一下我们");
|
|
||||||
button33.setKey("V1001_GOOD");
|
|
||||||
|
|
||||||
button3.getSub_button().add(button31);
|
|
||||||
button3.getSub_button().add(button32);
|
|
||||||
button3.getSub_button().add(button33);
|
|
||||||
|
|
||||||
return new Object[][] {
|
|
||||||
new Object[] {
|
|
||||||
menu
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@XmlRootElement(name = "xml")
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
public static class WxXmlConfigStorage extends WxInMemoryConfigStorage {
|
|
||||||
|
|
||||||
protected String openId;
|
|
||||||
|
|
||||||
public String getOpenId() {
|
|
||||||
return openId;
|
|
||||||
}
|
|
||||||
public void setOpenId(String openId) {
|
|
||||||
this.openId = openId;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "SimpleWxConfigProvider [appId=" + appId + ", secret=" + secret + ", accessToken=" + accessToken
|
|
||||||
+ ", expiresIn=" + expiresIn + ", token=" + token + ", openId=" + openId + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -57,7 +57,7 @@ public class WxMenuTest {
|
|||||||
Assert.assertEquals(menu.toJson(), json);
|
Assert.assertEquals(menu.toJson(), json);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dataProvider="wxReturnMenu")
|
@DataProvider
|
||||||
public Object[][] wxReturnMenu() {
|
public Object[][] wxReturnMenu() {
|
||||||
Object[][] res = menuJson();
|
Object[][] res = menuJson();
|
||||||
String json = "{ \"menu\" : " + res[0][0] + " }";
|
String json = "{ \"menu\" : " + res[0][0] + " }";
|
||||||
|
22
src/test/resources/testng.xml
Normal file
22
src/test/resources/testng.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
|
||||||
|
|
||||||
|
<suite name="Weixin-java-tool-suite" verbose="1">
|
||||||
|
<test name="API_Test">
|
||||||
|
<classes>
|
||||||
|
<class name="chanjarster.weixin.api.WxBaseAPITest" />
|
||||||
|
<class name="chanjarster.weixin.api.WxCustomMessageAPITest" />
|
||||||
|
<class name="chanjarster.weixin.api.WxMenuAPITest" />
|
||||||
|
<class name="chanjarster.weixin.api.WxMessageRouterTest" />
|
||||||
|
</classes>
|
||||||
|
</test>
|
||||||
|
|
||||||
|
<test name="Util_Test">
|
||||||
|
<classes>
|
||||||
|
<class name="chanjarster.weixin.bean.WxAccessTokenTest" />
|
||||||
|
<class name="chanjarster.weixin.bean.WxCustomMessageTest" />
|
||||||
|
<class name="chanjarster.weixin.bean.WxErrorTest" />
|
||||||
|
<class name="chanjarster.weixin.bean.WxMenuTest" />
|
||||||
|
<class name="chanjarster.weixin.bean.WxXmlMessageTest" />
|
||||||
|
</classes>
|
||||||
|
</test>
|
||||||
|
</suite>
|
Loading…
Reference in New Issue
Block a user