/**
* @test
*/
public function it_construct_a_response_with_multiple_failures()
{
$tokens = ["first_token", "second_token", "third_token", "fourth_token"];
$response = new Response(200, [], "{\n\t\t \"multicast_id\": 108,\n \"success\": 0,\n \"failure\": 3,\n \"canonical_ids\": 0,\n \"results\": [\n { \"error\": \"NotRegistered\" },\n { \"error\": \"InvalidRegistration\" },\n { \"error\": \"NotRegistered\" },\n { \"error\": \"MissingRegistration\"}\n ]\n\t\t\t\t\t\t}");
$downstreamResponse = new DownstreamResponse($response, $tokens);
$this->assertEquals(0, $downstreamResponse->numberSuccess());
$this->assertEquals(3, $downstreamResponse->numberFailure());
$this->assertEquals(0, $downstreamResponse->numberModification());
$this->assertTrue($downstreamResponse->hasMissingToken());
$this->assertCount(3, $downstreamResponse->tokensToDelete());
$this->assertEquals($tokens[0], $downstreamResponse->tokensToDelete()[0]);
$this->assertEquals($tokens[1], $downstreamResponse->tokensToDelete()[1]);
$this->assertEquals($tokens[2], $downstreamResponse->tokensToDelete()[2]);
$this->assertCount(0, $downstreamResponse->tokensToModify());
}