21
21
*/
22
22
final class Context
23
23
{
24
+ public $ bucketName ;
24
25
public $ client ;
25
26
public $ collectionName ;
26
27
public $ databaseName ;
@@ -81,6 +82,19 @@ public static function fromCrud(stdClass $test, $databaseName, $collectionName)
81
82
return $ o ;
82
83
}
83
84
85
+ public static function fromRetryableReads (stdClass $ test , $ databaseName , $ collectionName , $ bucketName )
86
+ {
87
+ $ o = new self ($ databaseName , $ collectionName );
88
+
89
+ $ o ->bucketName = $ bucketName ;
90
+
91
+ $ clientOptions = isset ($ test ->clientOptions ) ? (array ) $ test ->clientOptions : [];
92
+
93
+ $ o ->client = new Client (FunctionalTestCase::getUri (), $ clientOptions );
94
+
95
+ return $ o ;
96
+ }
97
+
84
98
public static function fromRetryableWrites (stdClass $ test , $ databaseName , $ collectionName )
85
99
{
86
100
$ o = new self ($ databaseName , $ collectionName );
@@ -133,6 +147,14 @@ public static function fromTransactions(stdClass $test, $databaseName, $collecti
133
147
return $ o ;
134
148
}
135
149
150
+ /**
151
+ * @return Client
152
+ */
153
+ public function getClient ()
154
+ {
155
+ return $ this ->client ;
156
+ }
157
+
136
158
public function getCollection (array $ collectionOptions = [])
137
159
{
138
160
return $ this ->selectCollection (
@@ -147,6 +169,11 @@ public function getDatabase(array $databaseOptions = [])
147
169
return $ this ->selectDatabase ($ this ->databaseName , $ databaseOptions );
148
170
}
149
171
172
+ public function getGridFSBucket (array $ bucketOptions = [])
173
+ {
174
+ return $ this ->selectGridFSBucket ($ this ->databaseName , $ this ->bucketName , $ bucketOptions );
175
+ }
176
+
150
177
/**
151
178
* Prepare options readConcern, readPreference, and writeConcern options by
152
179
* creating value objects.
@@ -272,6 +299,20 @@ public function selectDatabase($databaseName, array $databaseOptions = [])
272
299
);
273
300
}
274
301
302
+ public function selectGridFSBucket ($ databaseName , $ bucketName , array $ bucketOptions = [])
303
+ {
304
+ return $ this ->selectDatabase ($ databaseName )->selectGridFSBucket ($ this ->prepareGridFSBucketOptions ($ bucketOptions , $ bucketName ));
305
+ }
306
+
307
+ private function prepareGridFSBucketOptions (array $ options , $ bucketPrefix )
308
+ {
309
+ if ($ bucketPrefix !== null ) {
310
+ $ options ['bucketPrefix ' ] = $ bucketPrefix ;
311
+ }
312
+
313
+ return $ options ;
314
+ }
315
+
275
316
private function prepareSessionOptions (array $ options )
276
317
{
277
318
if (isset ($ options ['defaultTransactionOptions ' ])) {
0 commit comments