71 lines
1.6 KiB
PHP
71 lines
1.6 KiB
PHP
<?php
|
|
|
|
use GuzzleHttp\Client;
|
|
use GuzzleHttp\Psr7\Response;
|
|
use LaravelFCM\Sender\FCMSender;
|
|
|
|
class ResponseTest extends FCMTestCase {
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function it_send_a_notification_to_a_device()
|
|
{
|
|
$response = new Response(200, [], '{
|
|
"multicast_id": 216,
|
|
"success": 3,
|
|
"failure": 3,
|
|
"canonical_ids": 1,
|
|
"results": [
|
|
{ "message_id": "1:0408" }
|
|
]
|
|
}' );
|
|
|
|
$client = Mockery::mock(Client::class);
|
|
$client->shouldReceive('post')->once()->andReturn($response);
|
|
$this->app->singleton('fcm.client', function($app) use($client) {
|
|
return $client;
|
|
});
|
|
|
|
$tokens = 'uniqueToken';
|
|
|
|
$fcm = new FCMSender();
|
|
$fcm->sendTo($tokens);
|
|
}
|
|
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function it_send_a_notification_to_more_than_1000_devices()
|
|
{
|
|
$response = new Response(200, [], '{
|
|
"multicast_id": 216,
|
|
"success": 3,
|
|
"failure": 3,
|
|
"canonical_ids": 1,
|
|
"results": [
|
|
{ "message_id": "1:0408" },
|
|
{ "error": "Unavailable" },
|
|
{ "error": "InvalidRegistration" },
|
|
{ "message_id": "1:1516" },
|
|
{ "message_id": "1:2342", "registration_id": "32" },
|
|
{ "error": "NotRegistered"}
|
|
]
|
|
}' );
|
|
|
|
$client = Mockery::mock(Client::class);
|
|
$client->shouldReceive('post')->times(10)->andReturn($response);
|
|
$this->app->singleton('fcm.client', function($app) use($client) {
|
|
return $client;
|
|
});
|
|
|
|
$tokens = [];
|
|
for ($i=0 ; $i<10000 ; $i++) {
|
|
$tokens[$i] = 'token_'.$i;
|
|
}
|
|
|
|
$fcm = new FCMSender();
|
|
$fcm->sendTo($tokens);
|
|
}
|
|
} |