diff --git a/weixin-java-cp/pom.xml b/weixin-java-cp/pom.xml
index 3a867c93..def68232 100644
--- a/weixin-java-cp/pom.xml
+++ b/weixin-java-cp/pom.xml
@@ -34,6 +34,10 @@
redis.clients
jedis
+
+ org.slf4j
+ slf4j-api
+
org.testng
@@ -60,6 +64,11 @@
jetty-servlet
test
+
+ ch.qos.logback
+ logback-classic
+ test
+
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/AbstractWxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/AbstractWxCpServiceImpl.java
index 52cbc006..b8eebe38 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/AbstractWxCpServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/AbstractWxCpServiceImpl.java
@@ -34,7 +34,7 @@ import java.util.UUID;
public abstract class AbstractWxCpServiceImpl implements WxCpService, RequestHttp {
- protected final Logger log = LoggerFactory.getLogger(AbstractWxCpServiceImpl.class);
+ protected final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* 全局的是否正在刷新access token的锁
@@ -293,8 +293,7 @@ public abstract class AbstractWxCpServiceImpl implements WxCpService, Requ
String responseContent = get(url, params);
JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
return WxCpGsonBuilder.INSTANCE.create()
- .fromJson(
- tmpJsonElement.getAsJsonObject().get("userlist"),
+ .fromJson( tmpJsonElement.getAsJsonObject().get("userlist"),
new TypeToken>() {
}.getType()
);
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java
index a3adca98..fcf84de9 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java
@@ -14,19 +14,21 @@ import java.util.List;
public class WxCpUser implements Serializable {
private static final long serialVersionUID = -5696099236344075582L;
- private final List extAttrs = new ArrayList<>();
private String userId;
private String name;
private Integer[] departIds;
private String position;
private String mobile;
private String gender;
- private String tel;
private String email;
- private String weiXinId;
private String avatar;
private Integer status;
private Integer enable;
+ private Integer isLeader;
+ private final List extAttrs = new ArrayList<>();
+ private Integer hideMobile;
+ private String englishName;
+ private String telephone;
public static WxCpUser fromJson(String json) {
return WxCpGsonBuilder.INSTANCE.create().fromJson(json, WxCpUser.class);
@@ -80,12 +82,12 @@ public class WxCpUser implements Serializable {
this.mobile = mobile;
}
- public String getTel() {
- return this.tel;
+ public String getTelephone() {
+ return this.telephone;
}
- public void setTel(String tel) {
- this.tel = tel;
+ public void setTelephone(String telephone) {
+ this.telephone = telephone;
}
public String getEmail() {
@@ -96,14 +98,6 @@ public class WxCpUser implements Serializable {
this.email = email;
}
- public String getWeiXinId() {
- return this.weiXinId;
- }
-
- public void setWeiXinId(String weiXinId) {
- this.weiXinId = weiXinId;
- }
-
public String getAvatar() {
return this.avatar;
}
@@ -136,6 +130,30 @@ public class WxCpUser implements Serializable {
return this.extAttrs;
}
+ public Integer getIsLeader() {
+ return isLeader;
+ }
+
+ public void setIsLeader(Integer isLeader) {
+ this.isLeader = isLeader;
+ }
+
+ public Integer getHideMobile() {
+ return hideMobile;
+ }
+
+ public void setHideMobile(Integer hideMobile) {
+ this.hideMobile = hideMobile;
+ }
+
+ public String getEnglishName() {
+ return englishName;
+ }
+
+ public void setEnglishName(String englishName) {
+ this.englishName = englishName;
+ }
+
public String toJson() {
return WxCpGsonBuilder.INSTANCE.create().toJson(this);
}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java
index 4a8a9010..00cdea57 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java
@@ -24,8 +24,6 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri
throws JsonParseException {
JsonObject o = json.getAsJsonObject();
WxCpUser user = new WxCpUser();
- user.setUserId(GsonHelper.getString(o, "userid"));
- user.setName(GsonHelper.getString(o, "name"));
if (o.get("department") != null) {
JsonArray departJsonArray = o.get("department").getAsJsonArray();
@@ -37,14 +35,19 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri
user.setDepartIds(departIds);
}
+ user.setUserId(GsonHelper.getString(o, "userid"));
+ user.setName(GsonHelper.getString(o, "name"));
user.setPosition(GsonHelper.getString(o, "position"));
user.setMobile(GsonHelper.getString(o, "mobile"));
user.setGender(GsonHelper.getString(o, "gender"));
- user.setTel(GsonHelper.getString(o, "tel"));
user.setEmail(GsonHelper.getString(o, "email"));
- user.setWeiXinId(GsonHelper.getString(o, "weixinid"));
user.setAvatar(GsonHelper.getString(o, "avatar"));
user.setStatus(GsonHelper.getInteger(o, "status"));
+ user.setEnable(GsonHelper.getInteger(o, "enable"));
+ user.setIsLeader(GsonHelper.getInteger(o, "isleader"));
+ user.setHideMobile(GsonHelper.getInteger(o, "hide_mobile"));
+ user.setEnglishName(GsonHelper.getString(o, "english_name"));
+ user.setTelephone(GsonHelper.getString(o, "telephone"));
if (GsonHelper.isNotNull(o.get("extattr"))) {
JsonArray attrJsonElements = o.get("extattr").getAsJsonObject().get("attrs").getAsJsonArray();
@@ -84,15 +87,9 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri
if (user.getGender() != null) {
o.addProperty("gender", user.getGender());
}
- if (user.getTel() != null) {
- o.addProperty("tel", user.getTel());
- }
if (user.getEmail() != null) {
o.addProperty("email", user.getEmail());
}
- if (user.getWeiXinId() != null) {
- o.addProperty("weixinid", user.getWeiXinId());
- }
if (user.getAvatar() != null) {
o.addProperty("avatar", user.getAvatar());
}
@@ -102,6 +99,18 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri
if (user.getEnable() != null) {
o.addProperty("enable", user.getEnable());
}
+ if (user.getIsLeader() != null) {
+ o.addProperty("isleader", user.getIsLeader());
+ }
+ if (user.getHideMobile() != null) {
+ o.addProperty("hide_mobile", user.getHideMobile());
+ }
+ if (user.getEnglishName() != null) {
+ o.addProperty("english_name", user.getEnglishName());
+ }
+ if (user.getTelephone() != null) {
+ o.addProperty("telephone", user.getTelephone());
+ }
if (user.getExtAttrs().size() > 0) {
JsonArray attrsJsonArray = new JsonArray();
for (WxCpUser.Attr attr : user.getExtAttrs()) {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java
index d498cc5a..1c3fd5e7 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModule.java
@@ -5,7 +5,7 @@ import com.google.inject.Module;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import me.chanjar.weixin.common.util.xml.XStreamInitializer;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import java.io.IOException;
import java.io.InputStream;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBaseAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
similarity index 78%
rename from weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBaseAPITest.java
rename to weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
index b3271dc8..a778046a 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBaseAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBaseAPITest.java
@@ -1,12 +1,12 @@
-package me.chanjar.weixin.cp.api.impl.apache;
+package me.chanjar.weixin.cp.api;
import com.google.inject.Inject;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.ApiTestModule;
-import me.chanjar.weixin.cp.api.WxCpConfigStorage;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import org.apache.commons.lang3.StringUtils;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
/**
* 基础API测试
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBusyRetryTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBusyRetryTest.java
similarity index 92%
rename from weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBusyRetryTest.java
rename to weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBusyRetryTest.java
index 3b8e8fa3..2c964d30 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpBusyRetryTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpBusyRetryTest.java
@@ -1,10 +1,11 @@
-package me.chanjar.weixin.cp.api.impl.apache;
+package me.chanjar.weixin.cp.api;
import me.chanjar.weixin.common.bean.result.WxError;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
-import me.chanjar.weixin.cp.api.WxCpService;
-import org.testng.annotations.*;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpDepartAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpDepartAPITest.java
index 58c142ff..66db0ff3 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpDepartAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpDepartAPITest.java
@@ -2,19 +2,23 @@ package me.chanjar.weixin.cp.api;
import com.google.inject.Inject;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpDepart;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
import java.util.List;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+
/**
* 测试部门接口
*
* @author Daniel Qian
*/
-@Test(groups = "departAPI", dependsOnGroups = "baseAPI")
+@Test(groups = "departAPI")
@Guice(modules = ApiTestModule.class)
public class WxCpDepartAPITest {
@@ -23,6 +27,7 @@ public class WxCpDepartAPITest {
protected WxCpDepart depart;
+ @Test
public void testDepartCreate() throws WxErrorException {
WxCpDepart cpDepart = new WxCpDepart();
cpDepart.setName("子部门" + System.currentTimeMillis());
@@ -32,16 +37,16 @@ public class WxCpDepartAPITest {
System.out.println(departId);
}
- @Test(dependsOnMethods = "testDepartCreate")
+ @Test//(dependsOnMethods = "testDepartCreate")
public void testDepartGet() throws WxErrorException {
System.out.println("=================获取部门");
List departList = this.wxCpService.departGet();
- Assert.assertNotNull(departList);
- Assert.assertTrue(departList.size() > 0);
+ assertNotNull(departList);
+ assertTrue(departList.size() > 0);
for (WxCpDepart g : departList) {
this.depart = g;
System.out.println(this.depart.getId() + ":" + this.depart.getName());
- Assert.assertNotNull(g.getName());
+ assertNotNull(g.getName());
}
}
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMediaAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMediaAPITest.java
index b289bdbb..f10a8b7d 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMediaAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMediaAPITest.java
@@ -4,9 +4,11 @@ import com.google.inject.Inject;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
-import org.testng.*;
-import org.testng.annotations.*;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+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;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpMessageAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
similarity index 89%
rename from weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpMessageAPITest.java
rename to weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
index d6004dee..8b52ca82 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/apache/WxCpMessageAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageAPITest.java
@@ -1,11 +1,12 @@
-package me.chanjar.weixin.cp.api.impl.apache;
+package me.chanjar.weixin.cp.api;
import com.google.inject.Inject;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.ApiTestModule;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpMessage;
-import org.testng.annotations.*;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
/***
* 测试发送消息
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageRouterTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageRouterTest.java
index 13610982..67889365 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageRouterTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpMessageRouterTest.java
@@ -5,8 +5,9 @@ import me.chanjar.weixin.common.session.StandardSessionManager;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
import java.util.Map;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpTagAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpTagAPITest.java
index 170f386c..761b1a91 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpTagAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpTagAPITest.java
@@ -1,11 +1,12 @@
package me.chanjar.weixin.cp.api;
import com.google.inject.Inject;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpTag;
import me.chanjar.weixin.cp.bean.WxCpUser;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpUserAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpUserAPITest.java
index 1bfb7c60..c93cb884 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpUserAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxCpUserAPITest.java
@@ -2,28 +2,30 @@ package me.chanjar.weixin.cp.api;
import com.google.inject.Inject;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
-import me.chanjar.weixin.cp.bean.WxCpDepart;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpUser;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.testng.Assert;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
import java.util.List;
+import static org.testng.Assert.assertNotEquals;
+
/**
* 测试用户接口
*
* @author Daniel Qian
*/
-@Test(groups = "userAPI", dependsOnGroups = "baseAPI")
+@Test(groups = "userAPI")
@Guice(modules = ApiTestModule.class)
public class WxCpUserAPITest {
@Inject
protected WxCpServiceImpl wxCpService;
- protected WxCpDepart depart;
-
public void testUserCreate() throws WxErrorException {
WxCpUser user = new WxCpUser();
user.setUserId("some.woman");
@@ -33,7 +35,7 @@ public class WxCpUserAPITest {
user.setGender("女");
user.setMobile("13560084979");
user.setPosition("woman");
- user.setTel("3300393");
+ user.setTelephone("3300393");
user.addExtAttr("爱好", "table");
this.wxCpService.userCreate(user);
}
@@ -56,11 +58,19 @@ public class WxCpUserAPITest {
@Test(dependsOnMethods = "testUserGet")
public void testDepartGetUsers() throws WxErrorException {
List users = this.wxCpService.departGetUsers(1, true, 0);
- Assert.assertNotEquals(users.size(), 0);
+ assertNotEquals(users.size(), 0);
}
@Test(dependsOnMethods = "testDepartGetUsers")
public void testUserDelete() throws WxErrorException {
this.wxCpService.userDelete("some.woman");
}
+
+ public void testUserList() throws WxErrorException {
+ List users = this.wxCpService.userList(1, true, 0);
+ assertNotEquals(users.size(), 0);
+ for (WxCpUser user : users) {
+ System.out.println(ToStringBuilder.reflectionToString(user, ToStringStyle.MULTI_LINE_STYLE));
+ }
+ }
}
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java
index cdeeadf2..643ba330 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java
@@ -5,9 +5,11 @@ import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.bean.menu.WxMenu;
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
import me.chanjar.weixin.common.exception.WxErrorException;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
-import org.testng.*;
-import org.testng.annotations.*;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Guice;
+import org.testng.annotations.Test;
/**
* 测试菜单
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java
index cb3d2cdd..f41f3a55 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpMessageTest.java
@@ -3,9 +3,9 @@ package me.chanjar.weixin.cp.bean;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
import me.chanjar.weixin.cp.bean.article.NewArticle;
-import org.testng.annotations.*;
+import org.testng.annotations.Test;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
@Test
public class WxCpMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java
index 9a6eedf1..74b52616 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlMessageTest.java
@@ -1,8 +1,8 @@
package me.chanjar.weixin.cp.bean;
import me.chanjar.weixin.common.api.WxConsts;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutImageMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutImageMessageTest.java
index 26602434..6f366988 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutImageMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutImageMessageTest.java
@@ -1,7 +1,7 @@
package me.chanjar.weixin.cp.bean;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlOutImageMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutNewsMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutNewsMessageTest.java
index 2013e7a3..71dbf412 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutNewsMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutNewsMessageTest.java
@@ -1,7 +1,7 @@
package me.chanjar.weixin.cp.bean;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlOutNewsMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutTextMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutTextMessageTest.java
index 975eb5d1..4d73b27f 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutTextMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutTextMessageTest.java
@@ -1,7 +1,7 @@
package me.chanjar.weixin.cp.bean;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlOutTextMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVideoMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVideoMessageTest.java
index 5ad42ba7..b4124c61 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVideoMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVideoMessageTest.java
@@ -1,7 +1,7 @@
package me.chanjar.weixin.cp.bean;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlOutVideoMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVoiceMessageTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVoiceMessageTest.java
index 29379601..f414256a 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVoiceMessageTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpXmlOutVoiceMessageTest.java
@@ -1,7 +1,7 @@
package me.chanjar.weixin.cp.bean;
-import org.testng.*;
-import org.testng.annotations.*;
+import org.testng.Assert;
+import org.testng.annotations.Test;
@Test
public class WxCpXmlOutVoiceMessageTest {
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoServer.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoServer.java
index 6862347b..9c9b50c1 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoServer.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/demo/WxCpDemoServer.java
@@ -5,7 +5,7 @@ import me.chanjar.weixin.cp.api.WxCpConfigStorage;
import me.chanjar.weixin.cp.api.WxCpMessageHandler;
import me.chanjar.weixin.cp.api.WxCpMessageRouter;
import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.api.impl.apache.WxCpServiceImpl;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
import me.chanjar.weixin.cp.bean.WxCpXmlOutTextMessage;
diff --git a/weixin-java-cp/src/test/resources/testng.xml b/weixin-java-cp/src/test/resources/testng.xml
index 04f960ed..ba92bc0c 100644
--- a/weixin-java-cp/src/test/resources/testng.xml
+++ b/weixin-java-cp/src/test/resources/testng.xml
@@ -3,9 +3,9 @@
-
-
-
+
+
+