Skip to content

Commit c8952c1

Browse files
author
Javen
committed
Add more tests.
1 parent d55e125 commit c8952c1

File tree

10 files changed

+424
-45
lines changed

10 files changed

+424
-45
lines changed

src/cn/jpush/api/JPushClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public PushResult sendPush(PushPayload pushPayload) {
4747
return _pushClient.sendPush(pushPayload);
4848
}
4949

50+
public PushResult sendPush(String payloadString) {
51+
return _pushClient.sendPush(payloadString);
52+
}
53+
5054
/**
5155
* Get received report.
5256
*

src/cn/jpush/api/push/PushClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ public PushResult sendPush(PushPayload pushPayload) {
6363
return PushResult.fromResponse(response);
6464
}
6565

66+
public PushResult sendPush(String payloadString) {
67+
String url = HOST_NAME_SSL + PUSH_PATH;
68+
ResponseWrapper response = sendPost(url, payloadString, _authCode);
69+
70+
return PushResult.fromResponse(response);
71+
}
72+
73+
6674
}
6775

6876

src/cn/jpush/api/push/model/Message.java

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,28 @@ public class Message implements PushModel {
1313
public static final String MESSAGE = "message";
1414

1515
public static final String TITLE = "title";
16-
public static final String CONTENT = "content";
16+
public static final String MSG_CONTENT = "msg_content";
17+
public static final String CONTENT_TYPE = "content_type";
1718
public static final String EXTRAS = "extras";
1819

1920
private final String title;
20-
private final String content;
21+
private final String msgContent;
22+
private final String contentType;
2123
private final ImmutableMap<String, String> extras;
2224

23-
private Message(String title, String content, ImmutableMap<String, String> extras) {
25+
private Message(String title, String msgContent, String contentType, ImmutableMap<String, String> extras) {
2426
this.title = title;
25-
this.content = content;
27+
this.msgContent = msgContent;
28+
this.contentType = contentType;
2629
this.extras = extras;
2730
}
2831

2932
public static Builder newBuilder() {
3033
return new Builder();
3134
}
3235

33-
public static Message content(String content) {
34-
return new Builder().setContent(content).build();
36+
public static Message content(String msgContent) {
37+
return new Builder().setMsgContent(msgContent).build();
3538
}
3639

3740
@Override
@@ -40,8 +43,11 @@ public JsonElement toJSON() {
4043
if (null != title) {
4144
json.add(TITLE, new JsonPrimitive(title));
4245
}
43-
if (null != content) {
44-
json.add(CONTENT, new JsonPrimitive(content));
46+
if (null != msgContent) {
47+
json.add(MSG_CONTENT, new JsonPrimitive(msgContent));
48+
}
49+
if (null != contentType) {
50+
json.add(CONTENT_TYPE, new JsonPrimitive(contentType));
4551
}
4652
if (null != extras) {
4753
Gson gson = new Gson();
@@ -53,16 +59,22 @@ public JsonElement toJSON() {
5359

5460
public static class Builder {
5561
private String title;
56-
private String content;
62+
private String msgContent;
63+
private String contentType;
5764
private ImmutableMap.Builder<String, String> extrasBuilder;
5865

5966
public Builder setTitle(String title) {
6067
this.title = title;
6168
return this;
6269
}
6370

64-
public Builder setContent(String content) {
65-
this.content = content;
71+
public Builder setMsgContent(String msgContent) {
72+
this.msgContent = msgContent;
73+
return this;
74+
}
75+
76+
public Builder setContentType(String contentType) {
77+
this.contentType = contentType;
6678
return this;
6779
}
6880

@@ -75,7 +87,7 @@ public Builder addExtras(Map<String, String> extras) {
7587
}
7688

7789
public Builder addExtra(String key, String value) {
78-
Preconditions.checkArgument(null == key || null == value, "Key/Value should not be null.");
90+
Preconditions.checkArgument(! (null == key || null == value), "Key/Value should not be null.");
7991
if (null == extrasBuilder) {
8092
extrasBuilder = ImmutableMap.builder();
8193
}
@@ -84,10 +96,10 @@ public Builder addExtra(String key, String value) {
8496
}
8597

8698
public Message build() {
87-
Preconditions.checkArgument(!
88-
(null == title && null == content && null == extrasBuilder),
89-
"No any param is set.");
90-
return new Message(title, content, (null == extrasBuilder) ? null : extrasBuilder.build());
99+
Preconditions.checkArgument(! (null == msgContent),
100+
"msgConent should be set");
101+
return new Message(title, msgContent, contentType,
102+
(null == extrasBuilder) ? null : extrasBuilder.build());
91103
}
92104
}
93105
}

src/cn/jpush/api/push/model/PushPayload.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ public static PushPayload simpleMessageAll(String content) {
4444
.setMessage(Message.content(content)).build();
4545
}
4646

47+
public static PushPayload fromJSON(String payloadString) {
48+
return _gson.fromJson(payloadString, PushPayload.class);
49+
}
50+
4751
public void resetOptionsApnsProduction(boolean apnsProduction) {
4852
if (null == options) {
4953
options = Options.newBuilder().setApnsProduction(apnsProduction).build();

test/cn/jpush/api/push/AudienceTests.java

Lines changed: 122 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,36 @@
1313
import cn.jpush.api.push.model.audience.AudienceType;
1414
import cn.jpush.api.push.model.notification.Notification;
1515

16+
/**
17+
* Device1: 0900e8d85ef
18+
* Device2:
19+
*
20+
* tag1: Device1
21+
* tag2: Device2
22+
* tag_all: Device1, Device2
23+
* tag_no: no Device
24+
*
25+
* alias1: Device1
26+
* alias2: Device2
27+
* alias_no: no Device
28+
*
29+
*/
1630
public class AudienceTests {
1731
private static final String appKey ="dd1066407b044738b6479275";
1832
private static final String masterSecret = "2b38ce69b1de2a7fa95706ea";
19-
20-
private static final int SUCCEED_RESULT_CODE = 0;
21-
private static final String TAG = "tag1";
33+
34+
private static final String TAG1 = "tag1";
2235
private static final String TAG2 = "tag2";
23-
private static final String TAG3 = "tag3";
24-
private static final String ALIAS = "alias1";
36+
private static final String TAG_ALL = "tag_all";
37+
private static final String TAG_NO = "tag_no";
38+
private static final String ALIAS1 = "alias1";
2539
private static final String ALIAS2 = "alias2";
26-
private static final String ALIAS3 = "alias3";
27-
private static final String REGISTRATION = "0900e8d85ef";
28-
private static final String REGISTRATION2 = "0900e8d85ef";
40+
private static final String ALIAS_NO = "alias_no";
41+
private static final String REGISTRATION_ID1 = "0900e8d85ef";
42+
private static final String REGISTRATION_ID2 = "0a04ad7d8b4";
43+
44+
private static final int SUCCEED_RESULT_CODE = 0;
45+
private static final int NO_TARGET = 1011;
2946
private static final String ALERT = "JPush Test - alert";
3047
private static final String MSG_CONTENT = "JPush Test - msgContent";
3148

@@ -42,7 +59,7 @@ public void before() {
4259
public void sendByTag() {
4360
PushPayload payload = PushPayload.newBuilder()
4461
.setPlatform(Platform.all())
45-
.setAudience(Audience.tag(TAG))
62+
.setAudience(Audience.tag(TAG1))
4663
.setNotification(Notification.alert(ALERT))
4764
.build();
4865
PushResult result = _client.sendPush(payload);
@@ -53,7 +70,7 @@ public void sendByTag() {
5370
public void sendByTagAnd() {
5471
PushPayload payload = PushPayload.newBuilder()
5572
.setPlatform(Platform.all())
56-
.setAudience(Audience.tag_and(TAG))
73+
.setAudience(Audience.tag_and(TAG1))
5774
.setNotification(Notification.alert(ALERT))
5875
.build();
5976
PushResult result = _client.sendPush(payload);
@@ -64,7 +81,7 @@ public void sendByTagAnd() {
6481
public void sendByAlias() {
6582
PushPayload payload = PushPayload.newBuilder()
6683
.setPlatform(Platform.all())
67-
.setAudience(Audience.alias(ALIAS))
84+
.setAudience(Audience.alias(ALIAS1))
6885
.setNotification(Notification.alert(ALERT))
6986
.build();
7087
PushResult result = _client.sendPush(payload);
@@ -75,7 +92,7 @@ public void sendByAlias() {
7592
public void sendByRegistrationID() {
7693
PushPayload payload = PushPayload.newBuilder()
7794
.setPlatform(Platform.all())
78-
.setAudience(Audience.registrationId(REGISTRATION))
95+
.setAudience(Audience.registrationId(REGISTRATION_ID1))
7996
.setNotification(Notification.alert(ALERT))
8097
.build();
8198
PushResult result = _client.sendPush(payload);
@@ -88,7 +105,7 @@ public void sendByRegistrationID() {
88105
public void sendByTagMore() {
89106
PushPayload payload = PushPayload.newBuilder()
90107
.setPlatform(Platform.all())
91-
.setAudience(Audience.tag(TAG, TAG2))
108+
.setAudience(Audience.tag(TAG1, TAG2))
92109
.setNotification(Notification.alert(ALERT))
93110
.build();
94111
PushResult result = _client.sendPush(payload);
@@ -99,18 +116,29 @@ public void sendByTagMore() {
99116
public void sendByTagAndMore() {
100117
PushPayload payload = PushPayload.newBuilder()
101118
.setPlatform(Platform.all())
102-
.setAudience(Audience.tag_and(TAG, TAG3))
119+
.setAudience(Audience.tag_and(TAG1, TAG_ALL))
103120
.setNotification(Notification.alert(ALERT))
104121
.build();
105122
PushResult result = _client.sendPush(payload);
106123
assertEquals(SUCCEED_RESULT_CODE, result.getErrorCode());
107124
}
108-
125+
126+
@Test
127+
public void sendByTagAndMore_fail() {
128+
PushPayload payload = PushPayload.newBuilder()
129+
.setPlatform(Platform.all())
130+
.setAudience(Audience.tag_and(TAG1, TAG2))
131+
.setNotification(Notification.alert(ALERT))
132+
.build();
133+
PushResult result = _client.sendPush(payload);
134+
assertEquals(NO_TARGET, result.getErrorCode());
135+
}
136+
109137
@Test
110138
public void sendByAliasMore() {
111139
PushPayload payload = PushPayload.newBuilder()
112140
.setPlatform(Platform.all())
113-
.setAudience(Audience.alias(ALIAS, ALIAS2))
141+
.setAudience(Audience.alias(ALIAS1, ALIAS2))
114142
.setNotification(Notification.alert(ALERT))
115143
.build();
116144
PushResult result = _client.sendPush(payload);
@@ -122,7 +150,7 @@ public void sendByAliasMore() {
122150
public void sendByRegistrationIDMore() {
123151
PushPayload payload = PushPayload.newBuilder()
124152
.setPlatform(Platform.all())
125-
.setAudience(Audience.registrationId(REGISTRATION, REGISTRATION2))
153+
.setAudience(Audience.registrationId(REGISTRATION_ID1, REGISTRATION_ID2))
126154
.setNotification(Notification.alert(ALERT))
127155
.build();
128156
PushResult result = _client.sendPush(payload);
@@ -131,7 +159,7 @@ public void sendByRegistrationIDMore() {
131159

132160

133161

134-
// composite -------------------------
162+
// composite ok -------------------------
135163

136164
@Test
137165
public void sendByTagAlias() {
@@ -140,17 +168,91 @@ public void sendByTagAlias() {
140168
.setAudience(Audience.newBuilder()
141169
.addAudienceTarget(AudienceTarget.newBuilder()
142170
.setAudienceType(AudienceType.ALIAS)
143-
.addAudienceTargetValue(ALIAS).build())
171+
.addAudienceTargetValue(ALIAS1).build())
172+
.addAudienceTarget(AudienceTarget.newBuilder()
173+
.setAudienceType(AudienceType.TAG)
174+
.addAudienceTargetValue(TAG_ALL).build())
175+
.build())
176+
.setNotification(Notification.alert(ALERT))
177+
.build();
178+
PushResult result = _client.sendPush(payload);
179+
assertEquals(SUCCEED_RESULT_CODE, result.getErrorCode());
180+
}
181+
182+
@Test
183+
public void sendByTagRegistrationID() {
184+
PushPayload payload = PushPayload.newBuilder()
185+
.setPlatform(Platform.all())
186+
.setAudience(Audience.newBuilder()
187+
.addAudienceTarget(AudienceTarget.newBuilder()
188+
.setAudienceType(AudienceType.REGISTRATION_ID)
189+
.addAudienceTargetValue(REGISTRATION_ID1).build())
144190
.addAudienceTarget(AudienceTarget.newBuilder()
145191
.setAudienceType(AudienceType.TAG)
146-
.addAudienceTargetValue(TAG).build())
192+
.addAudienceTargetValue(TAG_ALL).build())
147193
.build())
148194
.setNotification(Notification.alert(ALERT))
149195
.build();
150196
PushResult result = _client.sendPush(payload);
151197
assertEquals(SUCCEED_RESULT_CODE, result.getErrorCode());
152198
}
153199

200+
// composite fail ------------------------
154201

202+
@Test
203+
public void sendByTagAlias_fail() {
204+
PushPayload payload = PushPayload.newBuilder()
205+
.setPlatform(Platform.all())
206+
.setAudience(Audience.newBuilder()
207+
.addAudienceTarget(AudienceTarget.newBuilder()
208+
.setAudienceType(AudienceType.ALIAS)
209+
.addAudienceTargetValue(ALIAS1).build())
210+
.addAudienceTarget(AudienceTarget.newBuilder()
211+
.setAudienceType(AudienceType.TAG)
212+
.addAudienceTargetValue(TAG2).build())
213+
.build())
214+
.setNotification(Notification.alert(ALERT))
215+
.build();
216+
PushResult result = _client.sendPush(payload);
217+
assertEquals(NO_TARGET, result.getErrorCode());
218+
}
219+
220+
@Test
221+
public void sendByTagAlias_fail2() {
222+
PushPayload payload = PushPayload.newBuilder()
223+
.setPlatform(Platform.all())
224+
.setAudience(Audience.newBuilder()
225+
.addAudienceTarget(AudienceTarget.newBuilder()
226+
.setAudienceType(AudienceType.ALIAS)
227+
.addAudienceTargetValue(ALIAS_NO).build())
228+
.addAudienceTarget(AudienceTarget.newBuilder()
229+
.setAudienceType(AudienceType.TAG)
230+
.addAudienceTargetValue(TAG_ALL).build())
231+
.build())
232+
.setNotification(Notification.alert(ALERT))
233+
.build();
234+
PushResult result = _client.sendPush(payload);
235+
assertEquals(NO_TARGET, result.getErrorCode());
236+
}
237+
238+
@Test
239+
public void sendByTagRegistrationID_fail() {
240+
PushPayload payload = PushPayload.newBuilder()
241+
.setPlatform(Platform.all())
242+
.setAudience(Audience.newBuilder()
243+
.addAudienceTarget(AudienceTarget.newBuilder()
244+
.setAudienceType(AudienceType.REGISTRATION_ID)
245+
.addAudienceTargetValue(REGISTRATION_ID1).build())
246+
.addAudienceTarget(AudienceTarget.newBuilder()
247+
.setAudienceType(AudienceType.TAG)
248+
.addAudienceTargetValue(TAG_NO).build())
249+
.build())
250+
.setNotification(Notification.alert(ALERT))
251+
.build();
252+
PushResult result = _client.sendPush(payload);
253+
assertEquals(NO_TARGET, result.getErrorCode());
254+
}
255+
256+
155257
}
156258

0 commit comments

Comments
 (0)