File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Test for PHPC-274: zval_to_bson() should process BSON\Serializable instances
3
+ --SKIPIF--
4
+ <?php require __DIR__ . "/../utils/basic-skipif.inc " ?>
5
+ --FILE--
6
+ <?php
7
+ require_once __DIR__ . "/../utils/basic.inc " ;
8
+
9
+ class AssociativeArray implements BSON \Serializable
10
+ {
11
+ public function bsonSerialize ()
12
+ {
13
+ return array ("random " => "class " , "data " );
14
+ }
15
+ }
16
+
17
+ class NumericArray implements BSON \Serializable
18
+ {
19
+ public function bsonSerialize ()
20
+ {
21
+ return array (1 , 2 , 3 );
22
+ }
23
+ }
24
+
25
+ echo "Testing top-level AssociativeArray: \n" ;
26
+ $ bson = BSON \fromArray (new AssociativeArray );
27
+ echo BSON \toJSON ($ bson ), "\n" ;
28
+ echo "Encoded BSON: \n" ;
29
+ hex_dump ($ bson );
30
+
31
+ echo "\nTesting top-level NumericArray: \n" ;
32
+ $ bson = BSON \fromArray (new NumericArray );
33
+ echo BSON \toJSON ($ bson ), "\n" ;
34
+ echo "Encoded BSON: \n" ;
35
+ hex_dump ($ bson );
36
+
37
+ ?>
38
+ ===DONE===
39
+ <?php exit (0 ); ?>
40
+ --EXPECT--
41
+ Testing top-level AssociativeArray:
42
+ { "random" : "class", "0" : "data" }
43
+ Encoded BSON:
44
+ 0 : 23 00 00 00 02 72 61 6e 64 6f 6d 00 06 00 00 00 [#....random.....]
45
+ 10 : 63 6c 61 73 73 00 02 30 00 05 00 00 00 64 61 74 [class..0.....dat]
46
+ 20 : 61 00 00 [a..]
47
+
48
+ Testing top-level NumericArray:
49
+ { "0" : 1, "1" : 2, "2" : 3 }
50
+ Encoded BSON:
51
+ 0 : 1a 00 00 00 10 30 00 01 00 00 00 10 31 00 02 00 [.....0......1...]
52
+ 10 : 00 00 10 32 00 03 00 00 00 00 [...2......]
53
+ ===DONE===
You can’t perform that action at this time.
0 commit comments