Skip to content

Commit a52b775

Browse files
committed
PHPC-89: Bundle generated fixtures and make them easily loadable
1 parent fa1a263 commit a52b775

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

tests/utils/PHONGO-FIXTURES.json.gz

73.9 KB
Binary file not shown.

tests/utils/tools.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,30 @@ function makeCollectionNameFromFilename($filename)
6060
return preg_replace(array_keys($replacements), array_values($replacements), $filename);
6161
}
6262

63+
function LOAD($uri, $dbname = DATABASE_NAME, $collname = COLLECTION_NAME, $filename = null) {
64+
if (!$filename) {
65+
$filename = "compress.zlib://" . __DIR__ . "/" . "PHONGO-FIXTURES.json.gz";
66+
}
67+
68+
$manager = new MongoDB\Driver\Manager($uri);
69+
$bulk = new MongoDB\Driver\BulkWrite(false);
70+
71+
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY));
72+
73+
$data = file_get_contents($filename);
74+
$array = json_decode($data);
75+
76+
foreach($array as $document) {
77+
$bulk->insert($document);
78+
}
79+
80+
$retval = $server->executeBulkWrite("$dbname.$collname", $bulk);
81+
82+
if ($retval->getInsertedCount() !== count($array)) {
83+
exit(sprintf('skip Fixtures were not loaded (expected: %d, actual: %d)', $total, $retval->getInsertedCount()));
84+
}
85+
}
86+
6387
function CLEANUP($uri, $dbname = DATABASE_NAME, $collname = COLLECTION_NAME) {
6488
try {
6589
$manager = new MongoDB\Driver\Manager($uri);

0 commit comments

Comments
 (0)