| 
<?phpnamespace WebPower\gcm\server;
 
 class MessageTest extends \PHPUnit_Framework_TestCase
 {
 public function testRequiredParameters()
 {
 $message = Message::builder()->build();
 $this->assertNull($message->getCollapseKey());
 $this->assertNull($message->isDelayWhileIdle());
 $this->assertEmpty($message->getData());
 $this->assertNull($message->getTimeToLive());
 $toString = $message->__toString();
 $this->assertNotContains('collapsekey', $toString);
 $this->assertNotContains('timeToLive', $toString);
 $this->assertNotContains('delayWhileIdle', $toString);
 $this->assertNotContains('data', $toString);
 }
 
 public function testOptionalParameters()
 {
 $message = Message::builder()
 ->collapseKey('108')
 ->delayWhileIdle(true)
 ->timeToLive(42)
 ->addData('k1', 'old value')
 ->addData('k1', 'v1')
 ->addData('k2', 'v2')
 ->build()
 ;
 
 $this->assertEquals("108", $message->getCollapseKey());
 $this->assertTrue($message->isDelayWhileIdle());
 $this->assertEquals(42, $message->getTimeToLive());
 $data = $message->getData();
 $this->assertEquals(2, count($data));
 $this->assertEquals('v1', $data['k1']);
 $this->assertEquals('v2', $data['k2']);
 
 $toString = $message->__toString();
 $this->assertContains('collapseKey=108', $toString);
 $this->assertContains('timeToLive=42', $toString);
 $this->assertContains('delayWhileIdle=true', $toString);
 $this->assertContains('k1=v1', $toString);
 $this->assertContains('k2=v2', $toString);
 }
 }
 
 |