This repository was archived by the owner on Jan 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathPolymorphicCollectionTest.php
More file actions
65 lines (53 loc) · 2.33 KB
/
PolymorphicCollectionTest.php
File metadata and controls
65 lines (53 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/*
* This file is part of JSON-API.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Tobscure\Tests\JsonApi\Element;
use Tobscure\JsonApi\PolymorphicCollection;
use Tobscure\JsonApi\PolymorphicResource;
use Tobscure\Tests\JsonApi\AbstractTestCase;
use Tobscure\Tests\JsonApi\Stubs\Serializables\Bike;
use Tobscure\Tests\JsonApi\Stubs\Serializables\Car;
use Tobscure\Tests\JsonApi\Stubs\Serializables\Garage;
use Tobscure\Tests\JsonApi\Stubs\Serializers\VehicleSerializerRegistry;
class PolymorphicCollectionTest extends AbstractTestCase
{
public function testToArrayReturnsArrayOfResources()
{
$car = new Car(1);
$bike = new Bike(2);
$garage = new Garage(4, [$car, $bike]);
$serializerRegistry = new VehicleSerializerRegistry();
$collection = new PolymorphicCollection($garage->vehicles, $serializerRegistry);
$resource1 = new PolymorphicResource($car, $serializerRegistry);
$resource2 = new PolymorphicResource($bike, $serializerRegistry);
$this->assertSame([$resource1->toArray(), $resource2->toArray()], $collection->toArray());
}
public function testToArrayReturnsArrayOfPolymorphicResources()
{
$car = new Car(1);
$bike = new Bike(2);
$garage = new Garage(4, [$car, $bike]);
$serializerRegistry = new VehicleSerializerRegistry();
$collection = new PolymorphicCollection($garage->vehicles, $serializerRegistry);
$resources = $collection->getResources();
$this->assertSame('cars', $resources[0]->getType());
$this->assertSame('bikes', $resources[1]->getType());
}
public function testToIdentifierReturnsArrayOfResourceIdentifiers()
{
$car = new Car(1);
$bike = new Bike(2);
$garage = new Garage(4, [$car, $bike]);
$serializerRegistry = new VehicleSerializerRegistry();
$collection = new PolymorphicCollection($garage->vehicles, $serializerRegistry);
$resource1 = new PolymorphicResource($car, $serializerRegistry);
$resource2 = new PolymorphicResource($bike, $serializerRegistry);
$this->assertSame([$resource1->toIdentifier(), $resource2->toIdentifier()], $collection->toIdentifier());
}
}