1
1
--TEST--
2
- MongoDB\Driver\Cursor::setTypeMap(): Setting fieldPath typemaps for compound types with wild card keys
2
+ MongoDB\Driver\Cursor::setTypeMap(): Setting fieldPath typemaps for compound types with wildcard keys
3
3
--SKIPIF--
4
4
<?php require __DIR__ . "/../utils/basic-skipif.inc " ; ?>
5
5
<?php NEEDS ('STANDALONE ' ); CLEANUP (STANDALONE ); ?>
@@ -16,7 +16,13 @@ class MyArrayObject extends ArrayObject implements MongoDB\BSON\Unserializable
16
16
}
17
17
}
18
18
19
- class MyWildCardArrayObject extends MyArrayObject {};
19
+ class MyWildcardArrayObject extends ArrayObject implements MongoDB \BSON \Unserializable
20
+ {
21
+ function bsonUnserialize (array $ data )
22
+ {
23
+ parent ::__construct ($ data , ArrayObject::ARRAY_AS_PROPS );
24
+ }
25
+ }
20
26
21
27
$ manager = new MongoDB \Driver \Manager (STANDALONE );
22
28
@@ -41,99 +47,99 @@ function fetch($manager, $typemap = []) {
41
47
}
42
48
43
49
44
- echo "\nSetting 'array.$' path to 'MyWildCardArrayObject ' \n" ;
50
+ echo "\nSetting 'array.$' path to 'MyWildcardArrayObject ' \n" ;
45
51
$ documents = fetch ($ manager , ["fieldPaths " => [
46
- 'array.$ ' => "MyWildCardArrayObject "
52
+ 'array.$ ' => "MyWildcardArrayObject "
47
53
]]);
48
54
var_dump ($ documents [0 ] instanceof stdClass);
49
55
var_dump (is_array ($ documents [0 ]->array ));
50
- var_dump ($ documents [0 ]->array [0 ] instanceof MyWildCardArrayObject );
51
- var_dump ($ documents [0 ]->array [1 ] instanceof MyWildCardArrayObject );
56
+ var_dump ($ documents [0 ]->array [0 ] instanceof MyWildcardArrayObject );
57
+ var_dump ($ documents [0 ]->array [1 ] instanceof MyWildcardArrayObject );
52
58
53
- echo "\nSetting 'array.1' to 'MyArrayObject' and 'array.$' path to 'MyWildCardArrayObject ' \n" ;
59
+ echo "\nSetting 'array.1' to 'MyArrayObject' and 'array.$' path to 'MyWildcardArrayObject ' \n" ;
54
60
$ documents = fetch ($ manager , ["fieldPaths " => [
55
61
'array.1 ' => "MyArrayObject " ,
56
- 'array.$ ' => "MyWildCardArrayObject "
62
+ 'array.$ ' => "MyWildcardArrayObject "
57
63
]]);
58
64
var_dump ($ documents [0 ] instanceof stdClass);
59
65
var_dump (is_array ($ documents [0 ]->array ));
60
- var_dump ($ documents [0 ]->array [0 ] instanceof MyWildCardArrayObject );
66
+ var_dump ($ documents [0 ]->array [0 ] instanceof MyWildcardArrayObject );
61
67
var_dump ($ documents [0 ]->array [1 ] instanceof MyArrayObject);
62
68
63
- echo "\nSetting 'array.$' to 'MyWildCardArrayObject ' and 'array.1' path to 'MyArrayObject' \n" ;
69
+ echo "\nSetting 'array.$' to 'MyWildcardArrayObject ' and 'array.1' path to 'MyArrayObject' \n" ;
64
70
$ documents = fetch ($ manager , ["fieldPaths " => [
65
- 'array.$ ' => "MyWildCardArrayObject " ,
71
+ 'array.$ ' => "MyWildcardArrayObject " ,
66
72
'array.1 ' => "MyArrayObject "
67
73
]]);
68
74
var_dump ($ documents [0 ] instanceof stdClass);
69
75
var_dump (is_array ($ documents [0 ]->array ));
70
- var_dump ($ documents [0 ]->array [0 ] instanceof MyWildCardArrayObject );
71
- var_dump ($ documents [0 ]->array [1 ] instanceof MyArrayObject );
76
+ var_dump ($ documents [0 ]->array [0 ] instanceof MyWildcardArrayObject );
77
+ var_dump ($ documents [0 ]->array [1 ] instanceof MyWildcardArrayObject );
72
78
73
79
74
- echo "\nSetting 'object.$' path to 'MyWildCardArrayObject ' \n" ;
80
+ echo "\nSetting 'object.$' path to 'MyWildcardArrayObject ' \n" ;
75
81
$ documents = fetch ($ manager , ["fieldPaths " => [
76
- 'object.$ ' => "MyWildCardArrayObject "
82
+ 'object.$ ' => "MyWildcardArrayObject "
77
83
]]);
78
84
var_dump ($ documents [0 ] instanceof stdClass);
79
85
var_dump (is_object ($ documents [0 ]->object ));
80
- var_dump ($ documents [0 ]->object ->one instanceof MyWildCardArrayObject );
81
- var_dump ($ documents [0 ]->object ->two instanceof MyWildCardArrayObject );
86
+ var_dump ($ documents [0 ]->object ->one instanceof MyWildcardArrayObject );
87
+ var_dump ($ documents [0 ]->object ->two instanceof MyWildcardArrayObject );
82
88
83
- echo "\nSetting 'object.two' to 'MyArrayObject' and 'object.$' path to 'MyWildCardArrayObject ' \n" ;
89
+ echo "\nSetting 'object.two' to 'MyArrayObject' and 'object.$' path to 'MyWildcardArrayObject ' \n" ;
84
90
$ documents = fetch ($ manager , ["fieldPaths " => [
85
91
'object.two ' => "MyArrayObject " ,
86
- 'object.$ ' => "MyWildCardArrayObject "
92
+ 'object.$ ' => "MyWildcardArrayObject "
87
93
]]);
88
94
var_dump ($ documents [0 ] instanceof stdClass);
89
95
var_dump (is_object ($ documents [0 ]->object ));
90
- var_dump ($ documents [0 ]->object ->one instanceof MyWildCardArrayObject );
96
+ var_dump ($ documents [0 ]->object ->one instanceof MyWildcardArrayObject );
91
97
var_dump ($ documents [0 ]->object ->two instanceof MyArrayObject);
92
98
93
- echo "\nSetting 'object.$' to 'MyWildCardArrayObject ' and 'object.one' path to 'MyArrayObject' \n" ;
99
+ echo "\nSetting 'object.$' to 'MyWildcardArrayObject ' and 'object.one' path to 'MyArrayObject' \n" ;
94
100
$ documents = fetch ($ manager , ["fieldPaths " => [
95
- 'object.$ ' => "MyWildCardArrayObject " ,
101
+ 'object.$ ' => "MyWildcardArrayObject " ,
96
102
'object.one ' => "MyArrayObject "
97
103
]]);
98
104
var_dump ($ documents [0 ] instanceof stdClass);
99
105
var_dump (is_object ($ documents [0 ]->object ));
100
- var_dump ($ documents [0 ]->object ->one instanceof MyArrayObject );
101
- var_dump ($ documents [0 ]->object ->two instanceof MyWildCardArrayObject );
106
+ var_dump ($ documents [0 ]->object ->one instanceof MyWildcardArrayObject );
107
+ var_dump ($ documents [0 ]->object ->two instanceof MyWildcardArrayObject );
102
108
?>
103
109
===DONE===
104
110
<?php exit (0 ); ?>
105
111
--EXPECT--
106
- Setting 'array.$' path to 'MyWildCardArrayObject '
112
+ Setting 'array.$' path to 'MyWildcardArrayObject '
107
113
bool(true)
108
114
bool(true)
109
115
bool(true)
110
116
bool(true)
111
117
112
- Setting 'array.1' to 'MyArrayObject' and 'array.$' path to 'MyWildCardArrayObject '
118
+ Setting 'array.1' to 'MyArrayObject' and 'array.$' path to 'MyWildcardArrayObject '
113
119
bool(true)
114
120
bool(true)
115
121
bool(true)
116
122
bool(true)
117
123
118
- Setting 'array.$' to 'MyWildCardArrayObject ' and 'array.1' path to 'MyArrayObject'
124
+ Setting 'array.$' to 'MyWildcardArrayObject ' and 'array.1' path to 'MyArrayObject'
119
125
bool(true)
120
126
bool(true)
121
127
bool(true)
122
128
bool(true)
123
129
124
- Setting 'object.$' path to 'MyWildCardArrayObject '
130
+ Setting 'object.$' path to 'MyWildcardArrayObject '
125
131
bool(true)
126
132
bool(true)
127
133
bool(true)
128
134
bool(true)
129
135
130
- Setting 'object.two' to 'MyArrayObject' and 'object.$' path to 'MyWildCardArrayObject '
136
+ Setting 'object.two' to 'MyArrayObject' and 'object.$' path to 'MyWildcardArrayObject '
131
137
bool(true)
132
138
bool(true)
133
139
bool(true)
134
140
bool(true)
135
141
136
- Setting 'object.$' to 'MyWildCardArrayObject ' and 'object.one' path to 'MyArrayObject'
142
+ Setting 'object.$' to 'MyWildcardArrayObject ' and 'object.one' path to 'MyArrayObject'
137
143
bool(true)
138
144
bool(true)
139
145
bool(true)
0 commit comments