package com.notnoop.apns;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Map;
import java.util.Random;
import static org.hamcrest.CoreMatchers.*;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;
import static org.junit.matchers.JUnitMatchers.*;
import com.notnoop.apns.internal.Utilities;
public class PayloadBuilderTest {
@Test
public void testEmpty() {
PayloadBuilder builder = new PayloadBuilder();
String expected = "{\"aps\":{}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void testOneAps() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("test");
String expected = "{\"aps\":{\"alert\":\"test\"}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void testTwoAps() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("test");
builder.badge(9);
String expected = "{\"aps\":{\"alert\":\"test\",\"badge\":9}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void testTwoApsMultipleBuilds() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("test");
builder.badge(9);
String expected = "{\"aps\":{\"alert\":\"test\",\"badge\":9}}";
assertEqualsJson(expected, builder.build());
assertEqualsJson(expected, builder.build());
}
@Test
public void testIncludeBadge() {
String badge0 = APNS.newPayload().badge(0).toString();
String badgeNo = APNS.newPayload().clearBadge().toString();
String expected = "{\"aps\":{\"badge\":0}}";
assertEqualsJson(expected, badge0);
assertEqualsJson(expected, badgeNo);
}
@Test
public void localizedOneWithArray() {
PayloadBuilder builder = new PayloadBuilder()
.localizedKey("GAME_PLAY_REQUEST_FORMAT")
.localizedArguments(new String[] { "Jenna", "Frank" });
builder.sound("chime");
String expected = "{\"aps\":{\"sound\":\"chime\",\"alert\":{\"loc-key\":\"GAME_PLAY_REQUEST_FORMAT\",\"loc-args\":[\"Jenna\",\"Frank\"]}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void localizedOneWithVarargs() {
PayloadBuilder builder = new PayloadBuilder()
.localizedKey("GAME_PLAY_REQUEST_FORMAT")
.localizedArguments("Jenna", "Frank");
builder.sound("chime");
String expected = "{\"aps\":{\"sound\":\"chime\",\"alert\":{\"loc-key\":\"GAME_PLAY_REQUEST_FORMAT\",\"loc-args\":[\"Jenna\",\"Frank\"]}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void localizedTwo() {
PayloadBuilder builder =
new PayloadBuilder()
.sound("chime")
.localizedKey("GAME_PLAY_REQUEST_FORMAT")
.localizedArguments(new String[] { "Jenna", "Frank" });
String expected = "{\"aps\":{\"sound\":\"chime\",\"alert\":{\"loc-key\":\"GAME_PLAY_REQUEST_FORMAT\",\"loc-args\":[\"Jenna\",\"Frank\"]}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void customFieldSimple() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("test");
builder.customField("ache1", "what");
builder.customField("ache2", 2);
String expected = "{\"ache1\":\"what\",\"ache2\":2,\"aps\":{\"alert\":\"test\"}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void customFieldArray() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("test");
builder.customField("ache1", Arrays.asList("a1", "a2"));
builder.customField("ache2", new int[] { 1, 2 } );
String expected = "{\"ache1\":[\"a1\",\"a2\"],\"ache2\":[1,2],\"aps\":{\"alert\":\"test\"}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void customBody() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("what").actionKey("Cancel");
String expected = "{\"aps\":{\"alert\":{\"action-loc-key\":\"Cancel\",\"body\":\"what\"}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void multipleBuildCallsWithCustomBody() {
PayloadBuilder builder = new PayloadBuilder();
builder.alertBody("what").actionKey("Cancel");
String expected = "{\"aps\":{\"alert\":{\"action-loc-key\":\"Cancel\",\"body\":\"what\"}}}";
assertEqualsJson(expected, builder.build());
assertEqualsJson(expected, builder.build());
}
@Test
public void customBodyReverseOrder() {
PayloadBuilder builder = new PayloadBuilder();
builder.actionKey("Cancel").alertBody("what");
String expected = "{\"aps\":{\"alert\":{\"action-loc-key\":\"Cancel\",\"body\":\"what\"}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void alertNoView() {
PayloadBuilder builder = new PayloadBuilder();
builder.actionKey(null).alertBody("what");
String expected = "{\"aps\":{\"alert\":{\"action-loc-key\":null,\"body\":\"what\"}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void alertNoViewSimpler() {
PayloadBuilder builder = new PayloadBuilder();
builder.noActionButton().alertBody("what");
String expected = "{\"aps\":{\"alert\":{\"action-loc-key\":null,\"body\":\"what\"}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void emptyApsWithFields() {
PayloadBuilder builder = new PayloadBuilder();
builder.customField("achme2", new int[] { 5, 8 } );
String expected = "{\"achme2\":[5,8],\"aps\":{}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void abitComplicated() {
PayloadBuilder builder = new PayloadBuilder();
builder.customField("achme", "foo");
builder.sound("chime");
builder.localizedKey("GAME_PLAY_REQUEST_FORMAT")
.localizedArguments(new String[] { "Jenna", "Frank"});
String expected = "{\"achme\":\"foo\",\"aps\":{\"sound\":\"chime\",\"alert\":{\"loc-key\":\"GAME_PLAY_REQUEST_FORMAT\",\"loc-args\":[\"Jenna\",\"Frank\"]}}}";
String actual = builder.toString();
assertEqualsJson(expected, actual);
}
@Test
public void multipleBuildAbitComplicated() {
PayloadBuilder builder = new PayloadBuilder();
builder.customField("achme", "foo");
builder.sound("chime");
builder.localizedKey("GAME_PLAY_REQUEST_FORMAT")
.localizedArguments(new String[] { "Jenna", "Frank"});
String expected = "{\"achme\":\"foo\",\"aps\":{\"sound\":\"chime\",\"alert\":{\"loc-key\":\"GAME_PLAY_REQUEST_FORMAT\",\"loc-args\":[\"Jenna\",\"Frank\"]}}}";
assertEqualsJson(expected, builder.build());
assertEqualsJson(expected, builder.build());
}
@Test
public void copyReturnsNewInstance() {
PayloadBuilder builder = new PayloadBuilder();
builder.sound("chime");
PayloadBuilder copy = builder.copy();
copy.badge(5);
assertNotSame(builder, copy);
String expected = "{\"aps\":{\"sound\":\"chime\"}}";
assertEqualsJson(expected, builder.build());
String copyExpected = "{\"aps\":{\"sound\":\"chime\",\"badge\":5}}";
assertEqualsJson(copyExpected, copy.build());
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
notnoop-java-apns-apns-0.1.4-0-g78d725f.tar.gz (46个子文件)
notnoop-java-apns-5a65bc7
.gitignore 91B
pom.xml 5KB
.gitmodules 165B
Makefile.release 1KB
LICENSE 1KB
README.markdown 2KB
src
test
resources
serverStore.p12 2KB
logback-test.xml 85B
clientStore.p12 2KB
java
com
notnoop
apns
ApnsNotificationTest.java 3KB
integration
ApnsConnectionTest.java 2KB
FeedbackTest.java 2KB
utils
ApnsServerStub.java 5KB
FixedCertificates.java 2KB
PayloadBuilderTest.java 14KB
APNSTest.java 613B
internal
ApnsConnectionTest.java 2KB
ApnsServiceImplTest.java 1009B
MockingUtils.java 3KB
UtilitiesTest.java 2KB
ApnsFeedbackParsingUtils.java 5KB
QueuedApnsServiceTest.java 3KB
QueuedApnsServiceTCTest.java 2KB
ApnsFeedbackConnectionTest.java 3KB
SillyTests.java 1KB
main
java
com
notnoop
apns
ApnsService.java 6KB
ApnsServiceBuilder.java 13KB
ReconnectPolicy.java 4KB
ApnsDelegate.java 3KB
internal
ApnsConnection.java 2KB
QueuedApnsService.java 3KB
ReconnectPolicies.java 3KB
Utilities.java 9KB
ApnsConnectionImpl.java 6KB
ApnsFeedbackConnection.java 3KB
MinaAdaptor.java 2KB
ApnsPooledConnection.java 2KB
ApnsServiceImpl.java 2KB
AbstractApnsService.java 3KB
PayloadBuilder.java 12KB
ApnsNotification.java 4KB
APNS.java 2KB
exceptions
ApnsException.java 2KB
InvalidSSLConfig.java 3KB
RuntimeIOException.java 2KB
NetworkIOException.java 2KB
共 46 条
- 1
liqiang70
- 粉丝: 1
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页