187 lines
7.0 KiB
PHP
187 lines
7.0 KiB
PHP
<?php
|
|
/**
|
|
* Zend Framework (http://framework.zend.com/).
|
|
*
|
|
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
|
*
|
|
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
|
|
* @license http://framework.zend.com/license/new-bsd New BSD License
|
|
*
|
|
* @category ZendService
|
|
*/
|
|
namespace ZendServiceTest\Google\Gcm;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use ZendService\Google\Gcm\Message;
|
|
|
|
/**
|
|
* @category ZendService
|
|
* @group ZendService
|
|
* @group ZendService_Google
|
|
* @group ZendService_Google_Gcm
|
|
*/
|
|
class MessageTest extends TestCase
|
|
{
|
|
protected $validRegistrationIds = [
|
|
'1234567890',
|
|
'0987654321',
|
|
];
|
|
|
|
protected $validData = [
|
|
'key' => 'value',
|
|
'key2' => [
|
|
'value',
|
|
],
|
|
];
|
|
|
|
/**
|
|
* @var Message
|
|
*/
|
|
private $m;
|
|
|
|
public function setUp()
|
|
{
|
|
$this->m = new Message();
|
|
}
|
|
|
|
public function testExpectedRegistrationIdBehavior()
|
|
{
|
|
self::assertEquals($this->m->getRegistrationIds(), []);
|
|
self::assertNotContains('registration_ids', $this->m->toJson());
|
|
$this->m->setRegistrationIds($this->validRegistrationIds);
|
|
self::assertEquals($this->m->getRegistrationIds(), $this->validRegistrationIds);
|
|
foreach ($this->validRegistrationIds as $id) {
|
|
$this->m->addRegistrationId($id);
|
|
}
|
|
self::assertEquals($this->m->getRegistrationIds(), $this->validRegistrationIds);
|
|
self::assertContains('registration_ids', $this->m->toJson());
|
|
$this->m->clearRegistrationIds();
|
|
self::assertEquals($this->m->getRegistrationIds(), []);
|
|
self::assertNotContains('registration_ids', $this->m->toJson());
|
|
$this->m->addRegistrationId('1029384756');
|
|
self::assertEquals($this->m->getRegistrationIds(), ['1029384756']);
|
|
self::assertContains('registration_ids', $this->m->toJson());
|
|
}
|
|
|
|
public function testInvalidRegistrationIdThrowsException()
|
|
{
|
|
$this->expectException(\InvalidArgumentException::class);
|
|
$this->m->addRegistrationId(['1234']);
|
|
}
|
|
|
|
public function testExpectedCollapseKeyBehavior()
|
|
{
|
|
self::assertEquals($this->m->getCollapseKey(), null);
|
|
self::assertNotContains('collapse_key', $this->m->toJson());
|
|
$this->m->setCollapseKey('my collapse key');
|
|
self::assertEquals($this->m->getCollapseKey(), 'my collapse key');
|
|
self::assertContains('collapse_key', $this->m->toJson());
|
|
$this->m->setCollapseKey(null);
|
|
self::assertEquals($this->m->getCollapseKey(), null);
|
|
self::assertNotContains('collapse_key', $this->m->toJson());
|
|
}
|
|
|
|
public function testInvalidCollapseKeyThrowsException()
|
|
{
|
|
$this->expectException(\InvalidArgumentException::class);
|
|
$this->m->setCollapseKey(['1234']);
|
|
}
|
|
|
|
public function testExpectedDataBehavior()
|
|
{
|
|
self::assertEquals($this->m->getData(), []);
|
|
self::assertNotContains('data', $this->m->toJson());
|
|
$this->m->setData($this->validData);
|
|
self::assertEquals($this->m->getData(), $this->validData);
|
|
self::assertContains('data', $this->m->toJson());
|
|
$this->m->clearData();
|
|
self::assertEquals($this->m->getData(), []);
|
|
self::assertNotContains('data', $this->m->toJson());
|
|
$this->m->addData('mykey', 'myvalue');
|
|
self::assertEquals($this->m->getData(), ['mykey' => 'myvalue']);
|
|
self::assertContains('data', $this->m->toJson());
|
|
}
|
|
|
|
public function testExpectedNotificationBehavior()
|
|
{
|
|
$this->assertEquals($this->m->getNotification(), []);
|
|
$this->assertNotContains('notification', $this->m->toJson());
|
|
$this->m->setNotification($this->validData);
|
|
$this->assertEquals($this->m->getNotification(), $this->validData);
|
|
$this->assertContains('notification', $this->m->toJson());
|
|
$this->m->clearNotification();
|
|
$this->assertEquals($this->m->getNotification(), []);
|
|
$this->assertNotContains('notification', $this->m->toJson());
|
|
$this->m->addNotification('mykey', 'myvalue');
|
|
$this->assertEquals($this->m->getNotification(), ['mykey' => 'myvalue']);
|
|
$this->assertContains('notification', $this->m->toJson());
|
|
}
|
|
|
|
public function testInvalidDataThrowsException()
|
|
{
|
|
$this->expectException(\InvalidArgumentException::class);
|
|
$this->m->addData(['1234'], 'value');
|
|
}
|
|
|
|
public function testDuplicateDataKeyThrowsException()
|
|
{
|
|
$this->expectException(\RuntimeException::class);
|
|
$this->m->setData($this->validData);
|
|
$this->m->addData('key', 'value');
|
|
}
|
|
|
|
public function testExpectedDelayWhileIdleBehavior()
|
|
{
|
|
self::assertEquals($this->m->getDelayWhileIdle(), false);
|
|
self::assertNotContains('delay_while_idle', $this->m->toJson());
|
|
$this->m->setDelayWhileIdle(true);
|
|
self::assertEquals($this->m->getDelayWhileIdle(), true);
|
|
self::assertContains('delay_while_idle', $this->m->toJson());
|
|
$this->m->setDelayWhileIdle(false);
|
|
self::assertEquals($this->m->getDelayWhileIdle(), false);
|
|
self::assertNotContains('delay_while_idle', $this->m->toJson());
|
|
}
|
|
|
|
public function testExpectedTimeToLiveBehavior()
|
|
{
|
|
self::assertEquals($this->m->getTimeToLive(), 2419200);
|
|
self::assertNotContains('time_to_live', $this->m->toJson());
|
|
$this->m->setTimeToLive(12345);
|
|
self::assertEquals($this->m->getTimeToLive(), 12345);
|
|
self::assertContains('time_to_live', $this->m->toJson());
|
|
$this->m->setTimeToLive(2419200);
|
|
self::assertEquals($this->m->getTimeToLive(), 2419200);
|
|
self::assertNotContains('time_to_live', $this->m->toJson());
|
|
}
|
|
|
|
public function testExpectedRestrictedPackageBehavior()
|
|
{
|
|
self::assertEquals($this->m->getRestrictedPackageName(), null);
|
|
self::assertNotContains('restricted_package_name', $this->m->toJson());
|
|
$this->m->setRestrictedPackageName('my.package.name');
|
|
self::assertEquals($this->m->getRestrictedPackageName(), 'my.package.name');
|
|
self::assertContains('restricted_package_name', $this->m->toJson());
|
|
$this->m->setRestrictedPackageName(null);
|
|
self::assertEquals($this->m->getRestrictedPackageName(), null);
|
|
self::assertNotContains('restricted_package_name', $this->m->toJson());
|
|
}
|
|
|
|
public function testInvalidRestrictedPackageThrowsException()
|
|
{
|
|
$this->expectException(\InvalidArgumentException::class);
|
|
$this->m->setRestrictedPackageName(['1234']);
|
|
}
|
|
|
|
public function testExpectedDryRunBehavior()
|
|
{
|
|
self::assertEquals($this->m->getDryRun(), false);
|
|
self::assertNotContains('dry_run', $this->m->toJson());
|
|
$this->m->setDryRun(true);
|
|
self::assertEquals($this->m->getDryRun(), true);
|
|
self::assertContains('dry_run', $this->m->toJson());
|
|
$this->m->setDryRun(false);
|
|
self::assertEquals($this->m->getDryRun(), false);
|
|
self::assertNotContains('dry_run', $this->m->toJson());
|
|
}
|
|
}
|