/** * @inheritdoc */ public function getRandomIdsForUri($uri, \Closure $idOverride = null, $idPlaceholder = '{random_id}') { if ($idOverride) { $idMap = $idOverride($uri, $idPlaceholder); if ($idMap) { return $idMap; } } return $this->idRetriever->getRandomIds($this->uriParser->entities($uri, $idPlaceholder), $this->uriParser->idEntities($uri, $idPlaceholder)); }
function it_gets_random_ids_for_the_last_entity_not_in_pivot(Parser $parser, \LaraPackage\RandomId\Contracts\Retriever $idRetriever) { $resource = '/sites/1/products/2/images'; $entities = ['sites', 'products', 'images']; $idEntities = ['sites', 'products']; $ids = [1, 2]; $randomIdNotInPivot = ['id' => 56]; $count = 2; $parser->entities($resource)->shouldBeCalled()->willReturn($entities); $parser->idEntities($resource)->shouldBeCalled()->willReturn($idEntities); $parser->ids($resource)->shouldBeCalled()->willReturn($ids); $idRetriever->getRandomIdsNotInPivot($entities, $idEntities, $ids, $count)->shouldBeCalled()->willReturn($randomIdNotInPivot); $this->getRandomIdsForLastEntityNotInPivot($resource, $count)->shouldReturn($randomIdNotInPivot); }
/** * @return array */ protected function idEntities() { return $this->parser->idEntities($this->uri()); }
function it_returns_an_item_column(Request $request, Parser $parser, TableHelper $tableHelper) { $uri = '/sites/1/products/2/images/1,2,4'; $entities = ['sites', 'products', 'images']; $idEntities = ['sites', 'products', 'images']; $result = 'image_id'; $request->getRequestUri()->shouldBeCalled()->willReturn($uri); $parser->entities($uri)->shouldBeCalled()->willReturn($entities); $parser->idEntities($uri)->shouldBeCalled()->willReturn($idEntities); $tableHelper->getLastEntityAsIdColumnName($entities)->willReturn($result); $this->itemColumn()->shouldReturn($result); }