/** * @dataProvider providerPayloadFactory */ public function testPayloadFactory($identifier, $expires, $token, $body) { $message = new Message(); $message->setIdentifier($identifier)->setExpires($expires)->setDeviceToken($token)->setBody($body); $payload = new PayloadFactory(); $this->assertNotNull($payload->createPayload($message)); $jsonData = json_encode($message->getPayloadData(), JSON_FORCE_OBJECT); $payloadEqData = pack('CNNnH*', 1, $identifier, $expires->format('U'), 32, $token) . pack('n', mb_strlen($jsonData)) . $jsonData; $this->assertEquals($payloadEqData, $payload->createPayload($message)); }