function it_gets_random_ids_for_an_entity_that_are_not_in_a_pivot(TableFetcher $tableFetcher, TableHelper $tableHelper) { $entities = ['sites', 'products', 'images']; $idEntities = ['sites', 'products']; $table = 'images'; $pivotColumn = 'image_id'; $pivot = 'image_product_site'; $ids = [1, 2]; $imageId = [5]; $columns = ['site_id', 'product_id']; $count = 2; $tableHelper->getLastEntityAsIdColumnName($entities)->shouldBeCalled()->willReturn($pivotColumn); $tableHelper->getTable($entities)->shouldBeCalled()->willReturn($pivot); $tableHelper->getIdColumnNames($entities, $idEntities)->shouldBeCalled()->willReturn($columns); $tableFetcher->getRandomIdsFromTableWhereNotInPivot($table, $pivot, $pivotColumn, $count, array_combine($columns, $ids))->shouldBeCalled()->willReturn($imageId); $this->getRandomIdsNotInPivot($entities, $idEntities, $ids, $count); }
/** * @inheritdoc */ public function itemColumn() { $this->isAnItemResource(); return $this->tableHelper->getLastEntityAsIdColumnName($this->entities()); }
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); }