public function testIsRegisteringAppleDeviceWithPayload() { $client = $this->getClientMock(new Response(200)); $device = new AppleDevice('123456789'); $device->setAlias('Luke Skywalker')->addTag('republic')->addTag('pilot')->setBadge(1)->setQuietTime('22:00', '23:00')->setTimezone('America/Sao_Paulo'); $client->register($device); $request = $this->getLastMockedRequest(); $this->assertEquals('go.urbanairship.com', $request->getHost()); $this->assertEquals('/api/device_tokens/123456789/', $request->getPath()); $this->assertEquals('PUT', $request->getMethod()); $this->assertEquals('abc', $request->getUsername()); $this->assertEquals('xyz', $request->getPassword()); $this->assertEquals('application/json', $request->getHeader('Content-Type', true)); $this->assertEquals('{"alias":"Luke Skywalker","tags":["republic","pilot"],"badge":1,"quiettime":{"start":"22:00","end":"23:00"},"tz":"America\\/Sao_Paulo"}', $request->getBody()->__toString()); }
protected function getDevicePage($url) { $data = $this->get($url)->send()->json(); $devices = array(); $devices['device_tokens'] = array(); foreach ($data['device_tokens'] as $item) { $device = new AppleDevice($item['device_token']); $device->setActive($item['active']); $device->setTags($item['tags']); $device->setAlias($item['alias']); $devices['device_tokens'][] = $device; } $devices['device_tokens_count'] = $data['device_tokens_count']; $devices['active_device_tokens_count'] = $data['active_device_tokens_count']; if (isset($data['next_page'])) { $output = $this->getDevicePage($data['next_page']); $devices['device_tokens'] = array_merge($devices['device_tokens'], $output['device_tokens']); } return $devices; }
public function testIsBatchPushing() { $client = $this->getClientMock(new Response(200)); $device = new AppleDevice('123456789'); $device->setAlias('Luke Skywalker')->addTag('republic')->addTag('pilot'); $notification = new AppleNotification(); $notification->addDevice($device); $notification->setAlert('Hey dude!'); $notification->setBadge(1); $notification->setSound('cat.caf'); $notification->addTag('sci-fi')->addTag('starwars'); $notification->setAlias('Test'); $notification2 = new AppleNotification(); $notification2->addDevice($device); $notification2->setAlert('Hey girl!'); $notification2->setBadge(1); $batch = new BatchPush(); $batch->addNotification($notification)->addNotification($notification2); $client->push($batch); $request = $this->getLastMockedRequest(); $this->assertEquals('go.urbanairship.com', $request->getHost()); $this->assertEquals('/api/push/batch/', $request->getPath()); $this->assertEquals('POST', $request->getMethod()); $this->assertEquals('abc', $request->getUsername()); $this->assertEquals('xyz', $request->getPassword()); $this->assertEquals('application/json', $request->getHeader('Content-Type', true)); $this->assertEquals('[{"device_tokens":["123456789"],"aliases":"Test","tags":["sci-fi","starwars"],"aps":{"badge":1,"alert":"Hey dude!","sound":"cat.caf"}},{"device_tokens":["123456789"],"aps":{"badge":1,"alert":"Hey girl!"}}]', $request->getBody()->__toString()); }