2121 */
2222final class Context
2323{
24+ public $ bucketName ;
2425 public $ client ;
2526 public $ collectionName ;
2627 public $ databaseName ;
@@ -81,6 +82,19 @@ public static function fromCrud(stdClass $test, $databaseName, $collectionName)
8182 return $ o ;
8283 }
8384
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+
8498 public static function fromRetryableWrites (stdClass $ test , $ databaseName , $ collectionName )
8599 {
86100 $ o = new self ($ databaseName , $ collectionName );
@@ -133,6 +147,14 @@ public static function fromTransactions(stdClass $test, $databaseName, $collecti
133147 return $ o ;
134148 }
135149
150+ /**
151+ * @return Client
152+ */
153+ public function getClient ()
154+ {
155+ return $ this ->client ;
156+ }
157+
136158 public function getCollection (array $ collectionOptions = [])
137159 {
138160 return $ this ->selectCollection (
@@ -147,6 +169,11 @@ public function getDatabase(array $databaseOptions = [])
147169 return $ this ->selectDatabase ($ this ->databaseName , $ databaseOptions );
148170 }
149171
172+ public function getGridFSBucket (array $ bucketOptions = [])
173+ {
174+ return $ this ->selectGridFSBucket ($ this ->databaseName , $ this ->bucketName , $ bucketOptions );
175+ }
176+
150177 /**
151178 * Prepare options readConcern, readPreference, and writeConcern options by
152179 * creating value objects.
@@ -272,6 +299,20 @@ public function selectDatabase($databaseName, array $databaseOptions = [])
272299 );
273300 }
274301
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+
275316 private function prepareSessionOptions (array $ options )
276317 {
277318 if (isset ($ options ['defaultTransactionOptions ' ])) {
0 commit comments