diff --git a/src/BSON/ObjectID.c b/src/BSON/ObjectID.c index 774b01d4..1b2f7849 100644 --- a/src/BSON/ObjectID.c +++ b/src/BSON/ObjectID.c @@ -66,8 +66,7 @@ PHP_METHOD(ObjectID, __construct) } zend_restore_error_handling(&error_handling TSRMLS_CC); - - if (ZEND_NUM_ARGS()) { + if (id) { if (bson_oid_is_valid(id, id_len)) { bson_oid_t oid; diff --git a/tests/bson/bson-objectid-002.phpt b/tests/bson/bson-objectid-002.phpt new file mode 100644 index 00000000..f0cd221b --- /dev/null +++ b/tests/bson/bson-objectid-002.phpt @@ -0,0 +1,26 @@ +--TEST-- +BSON BSON\ObjectID #002 generates ObjectID for null or missing constructor argument +--SKIPIF-- + +--FILE-- + +===DONE=== + +--EXPECTF-- +object(MongoDB\BSON\ObjectID)#%d (%d) { + ["oid"]=> + string(24) "%x" +} +object(MongoDB\BSON\ObjectID)#%d (%d) { + ["oid"]=> + string(24) "%x" +} +===DONE=== diff --git a/tests/bson/bson-objectid-003.phpt b/tests/bson/bson-objectid-003.phpt new file mode 100644 index 00000000..1a614d1d --- /dev/null +++ b/tests/bson/bson-objectid-003.phpt @@ -0,0 +1,49 @@ +--TEST-- +BSON BSON\ObjectID #001 construction with string argument +--SKIPIF-- + +--FILE-- +value = (string) $value; + } + + public function __toString() + { + return $this->value; + } +} + +$oid = new $classname('53e2a1c40640fd72175d4603'); +$str = new StringObject('53e2a1c40640fd72175d4603'); + +var_dump($oid); +var_dump(new $classname($oid)); +var_dump(new $classname($str)); + +?> +===DONE=== + +--EXPECTF-- +object(MongoDB\BSON\ObjectID)#%d (%d) { + ["oid"]=> + string(24) "53e2a1c40640fd72175d4603" +} +object(MongoDB\BSON\ObjectID)#%d (%d) { + ["oid"]=> + string(24) "53e2a1c40640fd72175d4603" +} +object(MongoDB\BSON\ObjectID)#%d (%d) { + ["oid"]=> + string(24) "53e2a1c40640fd72175d4603" +} +===DONE===