Skip to content

Commit 90d438e

Browse files
committed
PHPC-448: Manager::getReadConcern() and URI test
1 parent 12e6907 commit 90d438e

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

src/MongoDB/Manager.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,24 @@ PHP_METHOD(Manager, executeBulkWrite)
180180
phongo_execute_write(intern->client, namespace, bulk->bulk, phongo_write_concern_from_zval(zwrite_concern TSRMLS_CC), -1, return_value, return_value_used TSRMLS_CC);
181181
}
182182
/* }}} */
183+
/* {{{ proto MongoDB\Driver\ReadConcern Manager::getReadConcern()
184+
Returns the ReadConcern associated with this Manager */
185+
PHP_METHOD(Manager, getReadConcern)
186+
{
187+
php_phongo_manager_t *intern;
188+
(void)return_value_ptr;
189+
190+
intern = (php_phongo_manager_t *)zend_object_store_get_object(getThis() TSRMLS_CC);
191+
192+
if (zend_parse_parameters_none() == FAILURE) {
193+
return;
194+
}
195+
196+
if (return_value_used) {
197+
phongo_readconcern_init(return_value, mongoc_client_get_read_concern(intern->client) TSRMLS_CC);
198+
}
199+
}
200+
/* }}} */
183201
/* {{{ proto MongoDB\Driver\ReadPreference Manager::getReadPreference()
184202
Returns the ReadPreference associated with this Manager */
185203
PHP_METHOD(Manager, getReadPreference)
@@ -329,6 +347,9 @@ ZEND_BEGIN_ARG_INFO_EX(ai_Manager_executeBulkWrite, 0, 0, 2)
329347
ZEND_ARG_OBJ_INFO(0, writeConcern, MongoDB\\Driver\\WriteConcern, 1)
330348
ZEND_END_ARG_INFO();
331349

350+
ZEND_BEGIN_ARG_INFO_EX(ai_Manager_getReadConcern, 0, 0, 0)
351+
ZEND_END_ARG_INFO();
352+
332353
ZEND_BEGIN_ARG_INFO_EX(ai_Manager_getReadPreference, 0, 0, 0)
333354
ZEND_END_ARG_INFO();
334355

@@ -347,6 +368,7 @@ static zend_function_entry php_phongo_manager_me[] = {
347368
PHP_ME(Manager, executeCommand, ai_Manager_executeCommand, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
348369
PHP_ME(Manager, executeQuery, ai_Manager_executeQuery, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
349370
PHP_ME(Manager, executeBulkWrite, ai_Manager_executeBulkWrite, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
371+
PHP_ME(Manager, getReadConcern, ai_Manager_getReadConcern, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
350372
PHP_ME(Manager, getReadPreference, ai_Manager_getReadPreference, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
351373
PHP_ME(Manager, getServers, ai_Manager_getServers, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
352374
PHP_ME(Manager, getWriteConcern, ai_Manager_getWriteConcern, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::getReadConcern()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"?>
5+
--FILE--
6+
<?php
7+
require_once __DIR__ . "/../utils/basic.inc";
8+
9+
$tests = [
10+
[STANDALONE, []],
11+
[STANDALONE . '/?readconcernlevel=local', []],
12+
[STANDALONE . '/?readconcernlevel=majority', []],
13+
[STANDALONE . '/?readconcernlevel=not-yet-supported', []],
14+
];
15+
16+
foreach ($tests as $i => $test) {
17+
list($uri, $options) = $test;
18+
19+
$manager = new MongoDB\Driver\Manager($uri, $options);
20+
var_dump($manager->getReadConcern());
21+
22+
// Test for !return_value_used
23+
$manager->getReadConcern();
24+
}
25+
26+
?>
27+
===DONE===
28+
<?php exit(0); ?>
29+
--EXPECTF--
30+
object(MongoDB\Driver\ReadConcern)#%d (%d) {
31+
["level"]=>
32+
NULL
33+
}
34+
object(MongoDB\Driver\ReadConcern)#%d (%d) {
35+
["level"]=>
36+
string(5) "local"
37+
}
38+
object(MongoDB\Driver\ReadConcern)#%d (%d) {
39+
["level"]=>
40+
string(8) "majority"
41+
}
42+
object(MongoDB\Driver\ReadConcern)#%d (%d) {
43+
["level"]=>
44+
string(17) "not-yet-supported"
45+
}
46+
===DONE===

0 commit comments

Comments
 (0)