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.