Пример #1
0
 function it_gets_random_ids_for_supplied_entities(TableFetcher $tableFetcher, TableHelper $tableHelper)
 {
     $entities = ['sites', 'products', 'images'];
     $idEntities = ['sites', 'products'];
     $columns = ['site_id', 'product_id'];
     $table = 'image_product_site';
     $result = [1, 2];
     $tableFetcher->getRandomColumnEntries($table, $columns)->shouldBeCalled()->willReturn($result);
     $tableHelper->getTable($entities)->shouldBeCalled()->willReturn($table);
     $tableHelper->getIdColumnNames($entities, $idEntities)->willReturn($columns);
     $this->getRandomIds($entities, $idEntities)->shouldReturn($result);
 }
Пример #2
0
 /**
  * @inheritdoc
  */
 public function relationIds()
 {
     $entities = $this->entities();
     $idEntities = $this->idEntities();
     $ids = $this->ids();
     $columnNames = $this->tableHelper->getIdColumnNames($entities, $idEntities);
     if (count($entities) === count($idEntities)) {
         array_pop($ids);
         array_pop($columnNames);
         return array_combine($columnNames, $ids);
     } elseif (count($entities) > count($idEntities)) {
         return array_combine($columnNames, $ids);
     }
     throw new StupidProgrammerMistakeException('the entities identities count is off');
 }
Пример #3
0
 function it_gets_relation_ids_from_an_item_resource(Request $request, Parser $parser, TableHelper $tableHelper)
 {
     $uri = '/sites/1/products/2/images/1,4,5';
     $entities = ['sites', 'products', 'images'];
     $idEntities = ['sites', 'products', 'images'];
     $ids = [1, 2, [1, 4, 5]];
     $result = ['site_id' => 1, 'product_id' => 2];
     $idEntityColumnNames = ['site_id', 'product_id', 'image_id'];
     $request->getRequestUri()->shouldBeCalled()->willReturn($uri);
     $parser->entities($uri)->shouldBeCalled()->willReturn($entities);
     $parser->idEntities($uri)->shouldBeCalled()->willReturn($idEntities);
     $parser->ids($uri)->shouldBeCalled()->willReturn($ids);
     $tableHelper->getIdColumnNames($entities, $idEntities)->willReturn($idEntityColumnNames);
     $this->relationIds()->shouldReturn($result);
 }