Skip to content

Commit dbfe578

Browse files
committed
PHPC-31: Test for PLAIN authentication mechanism
1 parent e2b0f5c commit dbfe578

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
--TEST--
2+
MongoDB\Write\Batch: #001 Variety Batch
3+
--SKIPIF--
4+
<?php require "tests/utils/basic-skipif.inc"?>
5+
--FILE--
6+
<?php
7+
require_once "tests/utils/basic.inc";
8+
9+
$username = "root";
10+
$password = "toor";
11+
$database = "admin";
12+
13+
$parsed = parse_url(MONGODB_STANDALONE_PLAIN_URI);
14+
$dsn = sprintf("mongodb://%s:%s@%s:%d/%s", $username, $password, $parsed["host"], $parsed["port"], $database);
15+
$adminmanager = new MongoDB\Manager($dsn);
16+
17+
$cmd = array(
18+
"createUser" => "bugs",
19+
"roles" => [["role" => "readWrite", "db" => DATABASE_NAME]],
20+
);
21+
$command = new MongoDB\Command($cmd);
22+
try {
23+
$result = $adminmanager->executeCommand('$external', $command);
24+
echo "User Created\n";
25+
} catch(Exception $e) {
26+
echo $e->getMessage(), "\n";
27+
}
28+
29+
30+
31+
$username = "bugs";
32+
$password = "password";
33+
$database = '$external';
34+
35+
$dsn = sprintf("mongodb://%s:%s@%s:%d/%s?authMechanism=PLAIN", $username, $password, $parsed["host"], $parsed["port"], $database);
36+
$manager = new MongoDB\Manager($dsn);
37+
38+
$batch = new MongoDB\WriteBatch();
39+
$batch->insert(array("very" => "important"));
40+
try {
41+
$manager->executeWriteBatch(NS, $batch);
42+
$query = new MongoDB\Query(array("very" => "important"));
43+
$cursor = $manager->executeQuery(NS, $query);
44+
foreach($cursor as $document) {
45+
var_dump($document["very"]);
46+
}
47+
$cmd = new MongoDB\Command(array("drop" => COLLECTION_NAME));
48+
$result = $manager->executeCommand(DATABASE_NAME, $cmd);
49+
} catch(Exception $e) {
50+
printf("Caught %s: %s\n", get_class($e), $e->getMessage());
51+
}
52+
$cmd = array(
53+
"dropUser" => "bugs",
54+
);
55+
$command = new MongoDB\Command($cmd);
56+
try {
57+
$result = $adminmanager->executeCommand('$external', $command);
58+
echo "User deleted\n";
59+
} catch(Exception $e) {
60+
echo $e->getMessage(), "\n";
61+
}
62+
?>
63+
===DONE===
64+
<?php exit(0); ?>
65+
--EXPECT--
66+
User Created
67+
string(9) "important"
68+
User deleted
69+
===DONE===

0 commit comments

Comments
 (0)