/**
  * @test
  */
 public function it_merges_device_into_notification()
 {
     $notification = new Notification('title', 'message');
     $notification->badge(5)->sound('sound')->ttl(1234)->metadata('key1', 'value1')->metadata('key2', 'value2');
     $device = Device::apns('apns', 'uuid');
     $device->title('deviceTitle')->message('deviceMessage')->badge(10)->sound('deviceSound')->ttl(4321)->metadata('key1', 'deviceValue1')->metadata('deviceKey2', 'value2');
     $payload = $notification->merge($device);
     $this->assertEquals('deviceTitle', $payload->title);
     $this->assertEquals('deviceMessage', $payload->message);
     $this->assertEquals(10, $payload->badge);
     $this->assertEquals('deviceSound', $payload->sound);
     $this->assertEquals(4321, $payload->ttl);
     $this->assertEquals(['key1' => 'deviceValue1', 'key2' => 'value2', 'deviceKey2' => 'value2'], $payload->metadata);
 }
 /**
  * @test
  */
 public function it_builds_a_complex_apple_device_with_chaining()
 {
     $device = Device::apns(self::APPLE_TOKEN, self::UUID);
     $device->title('title')->message('message')->badge(5)->sound('sound')->ttl(1234)->metadata('key1', 'value1')->metadata('key2', 'value2');
     $this->assertEquals(self::APPLE_TOKEN, $device->token);
     $this->assertEquals(self::UUID, $device->uuid);
     $this->assertFalse($device->isGcm());
     $this->assertTrue($device->isApns());
     $this->assertEquals('title', $device->title);
     $this->assertEquals('message', $device->message);
     $this->assertEquals(5, $device->badge);
     $this->assertEquals('sound', $device->sound);
     $this->assertEquals(1234, $device->ttl);
     $this->assertEquals(['key1' => 'value1', 'key2' => 'value2'], $device->metadata);
 }