-
-
Notifications
You must be signed in to change notification settings - Fork 113
Expand file tree
/
Copy pathTable.cache.observer.phpt
More file actions
45 lines (33 loc) · 1.05 KB
/
Table.cache.observer.phpt
File metadata and controls
45 lines (33 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/**
* Test: Nette\Database\Table: Cache observer.
* @dataProvider? ../databases.ini
*/
use Nette\Caching\Storages\MemoryStorage;
use Tester\Assert;
use Nette\Database\ResultSet;
require __DIR__ . '/../connect.inc.php'; // create $connection
Nette\Database\Helpers::loadFromFile($connection, __DIR__ . "/../files/{$driverName}-nette_test1.sql");
class CacheMock extends MemoryStorage
{
}
$cacheStorage = new CacheMock;
$context = new Nette\Database\Context($connection, $structure, $conventions, $cacheStorage);
$queries = 0;
$connection->onQuery[] = function($dao, ResultSet $result) use (& $queries) {
if (!preg_match('#SHOW|CONSTRAINT_NAME|pg_catalog|sys\.|SET|PRAGMA|FROM sqlite_#i', $result->getQueryString())) {
$queries++;
}
};
$authors = $context->table('author');
$stack = array();
foreach ($authors as $author) {
foreach ($stack[] = $author->related('book') as $book) {
$book->title;
}
}
unset($book, $author);
foreach ($stack as $selection) $selection->__destruct();
$authors->__destruct();
Assert::same(2, $queries);
Mockery::close();