19 declare(strict_types=1);
    28         array $returns_on_query
    31             public array $exposed_queries = [];
    33             public function __construct(
protected array $returns_on_query)
    37             protected function query(
string $query): \Generator
    39                 $this->exposed_queries[] = $query;
    40                 yield 
from $this->returns_on_query;
    43             protected function manipulate(
string $query): 
void    45                 $this->exposed_queries[] = $query;
    48             protected function quoteInteger(
int $integer): 
string    50                 return '~int:' . $integer . 
'~';
    53             protected function inWithIntegers(
string $field, 
int ...$integers): 
string    55                 return '~' . $field . 
'~in~(' . implode(
',', $integers) . 
')~';
    64         $blocked = $repo->isHarvestingBlocked(32);
    67             [
'SELECT' . 
' blocked FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
    68             $repo->exposed_queries
    70         $this->assertTrue($blocked);
    77         $blocked = $repo->isHarvestingBlocked(32);
    80             [
'SELECT' . 
' blocked FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
    81             $repo->exposed_queries
    83         $this->assertFalse($blocked);
    90         $blocked = $repo->isHarvestingBlocked(32);
    93             [
'SELECT' . 
' blocked FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
    94             $repo->exposed_queries
    96         $this->assertFalse($blocked);
   103         $repo->setHarvestingBlocked(32, 
true);
   107                 'INSERT' . 
' INTO il_meta_oer_stat (obj_id, href_id, blocked) VALUES (' .
   108                 '~int:32~, ~int:0~, ~int:1~) ON DUPLICATE KEY UPDATE blocked = ~int:1~'   110             $repo->exposed_queries
   118         $repo->setHarvestingBlocked(32, 
false);
   122                 'INSERT' . 
' INTO il_meta_oer_stat (obj_id, href_id, blocked) VALUES (' .
   123                 '~int:32~, ~int:0~, ~int:0~) ON DUPLICATE KEY UPDATE blocked = ~int:0~'   125             $repo->exposed_queries
   133         $harvested = $repo->isAlreadyHarvested(32);
   136             [
'SELECT' . 
' href_id FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
   137             $repo->exposed_queries
   139         $this->assertTrue($harvested);
   146         $harvested = $repo->isAlreadyHarvested(32);
   149             [
'SELECT' . 
' href_id FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
   150             $repo->exposed_queries
   152         $this->assertFalse($harvested);
   159         $harvested = $repo->isAlreadyHarvested(32);
   162             [
'SELECT' . 
' href_id FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
   163             $repo->exposed_queries
   165         $this->assertFalse($harvested);
   170         $repo = $this->
getRepository([[
'obj_id' => 
'32'], [
'obj_id' => 
'909'], [
'obj_id' => 
'55']]);
   172         $obj_ids = iterator_to_array($repo->getAllHarvestedObjIDs());
   175             [
'SELECT obj_id FROM il_meta_oer_stat WHERE href_id > 0'],
   176             $repo->exposed_queries
   178         $this->assertCount(3, $obj_ids);
   179         $this->assertSame(32, $obj_ids[0]);
   180         $this->assertSame(909, $obj_ids[1]);
   181         $this->assertSame(55, $obj_ids[2]);
   188         $href_id = $repo->getHarvestRefID(32);
   191             [
'SELECT' . 
' href_id FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
   192             $repo->exposed_queries
   194         $this->assertSame(90, $href_id);
   201         $href_id = $repo->getHarvestRefID(32);
   204             [
'SELECT' . 
' href_id FROM il_meta_oer_stat WHERE obj_id = ~int:32~'],
   205             $repo->exposed_queries
   207         $this->assertSame(0, $href_id);
   214         $repo->setHarvestRefID(32, 90);
   218                 'INSERT' . 
' INTO il_meta_oer_stat (obj_id, href_id, blocked) VALUES (' .
   219                 '~int:32~, ~int:90~, ~int:0~) ON DUPLICATE KEY UPDATE href_id = ~int:90~'   221             $repo->exposed_queries
   229         $repo->deleteHarvestRefID(32);
   232             [
'UPDATE' . 
' il_meta_oer_stat SET href_id = 0 WHERE obj_id = ~int:32~'],
   233             $repo->exposed_queries
   239         $repo = $this->
getRepository([[
'obj_id' => 
'5'], [
'obj_id' => 
'123'], [
'obj_id' => 
'876']]);
   241         $obj_ids = iterator_to_array($repo->filterOutBlockedObjects(32, 5, 909, 123, 876, 55));
   245                 'SELECT' . 
' obj_id FROM il_meta_oer_stat WHERE blocked = 1 AND ' .
   246                 '~obj_id~in~(32,5,909,123,876,55)~'   248             $repo->exposed_queries
   250         $this->assertCount(3, $obj_ids);
   251         $this->assertSame(32, $obj_ids[0]);
   252         $this->assertSame(909, $obj_ids[1]);
   253         $this->assertSame(55, $obj_ids[2]);
   260         $repo->deleteStatus(32);
   263             [
'DELETE FROM' . 
' il_meta_oer_stat WHERE obj_id = ~int:32~'],
   264             $repo->exposed_queries
 
__construct()
Constructor setup ILIAS global object  public.