Skip to content

Commit

Permalink
fix: format properties for sideload mode
Browse files Browse the repository at this point in the history
  • Loading branch information
pmccarren committed Jul 21, 2017
1 parent 4054406 commit 059fbe8
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/ModeResolver/SideloadModeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,13 @@ private function mergeRootCollection(&$collection, $object)
*/
private function addResourceToRootCollectionIfNonExistant(&$collection, $resource)
{
$identifier = Utility::getProperty($resource, 'id');
$identifier = Utility::getProperty($resource, 'id', true);
$exists = false;

$copy = $collection instanceof Collection ? $collection->toArray() : $collection;

foreach ($copy as $rootResource) {
if ((int) Utility::getProperty($rootResource, 'id') === (int) $identifier) {
if (Utility::getProperty($rootResource, 'id', true) === $identifier) {
$exists = true;
break;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/ModeResolver/IdsModeResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public function testIdsModeResolverOnNestedChildrenOnArrayCollections()
], $second);
}

public function testStringIdsModeResolverOnNestedChildrenOnArrayCollections()
public function testIdsModeResolverOnNestedChildrenOnArrayCollectionsAndStringKeys()
{
$controller = new Controller;

Expand Down
40 changes: 40 additions & 0 deletions tests/ModeResolver/SideloadModeResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,46 @@ public function testSideloadModeResolverOnNestedChildrenOnVanillaCollections()
]);
}

public function testSideloadModeResolverOnNestedChildrenOnVanillaCollectionsAndStringKeys()
{
$controller = new Controller;

$modes = [
'children.nestedChildren' => 'sideload'
];
$parsed = $controller->getCollection(2, $modes, 2, 2, false, true);
$collection = $parsed['collection'];
$nestedChildren = $parsed['children.nestedChildren'];

$first = $collection->get(0);
$this->assertEquals([
'aaa1', 'aaa2', 'aaa3', 'aaa4', 'aaa1', 'aaa2', 'aaa3', 'aaa4'
], [
$first['children']->get(0)['nestedChildren']->get(0),
$first['children']->get(0)['nestedChildren']->get(1),
$first['children']->get(1)['nestedChildren']->get(0),
$first['children']->get(1)['nestedChildren']->get(1),
$nestedChildren->get(0)['id'],
$nestedChildren->get(1)['id'],
$nestedChildren->get(2)['id'],
$nestedChildren->get(3)['id']
]);

$second = $collection->get(1);
$this->assertEquals([
'aaa5', 'aaa6', 'aaa7', 'aaa8', 'aaa5', 'aaa6', 'aaa7', 'aaa8'
], [
$second['children']->get(0)['nestedChildren']->get(0),
$second['children']->get(0)['nestedChildren']->get(1),
$second['children']->get(1)['nestedChildren']->get(0),
$second['children']->get(1)['nestedChildren']->get(1),
$nestedChildren->get(4)['id'],
$nestedChildren->get(5)['id'],
$nestedChildren->get(6)['id'],
$nestedChildren->get(7)['id']
]);
}

public function testSideloadModeResolverOnParentAndNestedChildrenOnVanillaCollections()
{
$controller = new Controller;
Expand Down

0 comments on commit 059fbe8

Please sign in to comment.