File tree Expand file tree Collapse file tree 3 files changed +14
-7
lines changed Expand file tree Collapse file tree 3 files changed +14
-7
lines changed Original file line number Diff line number Diff line change 11
11
use MongoDB \Exception \UnsupportedValueException ;
12
12
use MongoDB \Tests \Fixtures \Document \TestFile ;
13
13
14
+ use function assert ;
15
+
14
16
final class TestFileCodec implements DocumentCodec
15
17
{
16
18
use DecodeIfSupported;
@@ -31,13 +33,17 @@ public function decode($value): TestFile
31
33
$ fileObject ->id = $ value ->get ('_id ' );
32
34
$ fileObject ->length = (int ) $ value ->get ('length ' );
33
35
$ fileObject ->chunkSize = (int ) $ value ->get ('chunkSize ' );
34
- $ fileObject ->filename = $ value ->get ('filename ' );
36
+ $ fileObject ->filename = ( string ) $ value ->get ('filename ' );
35
37
36
38
$ uploadDate = $ value ->get ('uploadDate ' );
37
- $ fileObject ->uploadDate = $ uploadDate ? DateTimeImmutable::createFromMutable ($ uploadDate ->toDateTime ()) : null ;
39
+ if ($ uploadDate instanceof UTCDateTime) {
40
+ $ fileObject ->uploadDate = DateTimeImmutable::createFromMutable ($ uploadDate ->toDateTime ());
41
+ }
38
42
39
43
if ($ value ->has ('metadata ' )) {
40
- $ fileObject ->metadata = $ value ->get ('metadata ' );
44
+ $ metadata = $ value ->get ('metadata ' );
45
+ assert ($ metadata instanceof Document);
46
+ $ fileObject ->metadata = $ metadata ->toPHP ();
41
47
}
42
48
43
49
return $ fileObject ;
Original file line number Diff line number Diff line change 18
18
namespace MongoDB \Tests \Fixtures \Document ;
19
19
20
20
use DateTimeImmutable ;
21
+ use stdClass ;
21
22
22
23
final class TestFile
23
24
{
@@ -26,5 +27,5 @@ final class TestFile
26
27
public int $ chunkSize ;
27
28
public ?DateTimeImmutable $ uploadDate = null ;
28
29
public string $ filename ;
29
- public $ metadata ;
30
+ public ? stdClass $ metadata = null ;
30
31
}
Original file line number Diff line number Diff line change 3
3
namespace MongoDB \Tests \GridFS ;
4
4
5
5
use MongoDB \BSON \Binary ;
6
- use MongoDB \BSON \Document ;
7
6
use MongoDB \Collection ;
8
7
use MongoDB \Driver \ReadConcern ;
9
8
use MongoDB \Driver \ReadPreference ;
19
18
use MongoDB \Tests \Fixtures \Codec \TestDocumentCodec ;
20
19
use MongoDB \Tests \Fixtures \Codec \TestFileCodec ;
21
20
use MongoDB \Tests \Fixtures \Document \TestFile ;
21
+ use stdClass ;
22
22
23
23
use function array_merge ;
24
24
use function call_user_func ;
@@ -509,8 +509,8 @@ public function testGetFileDocumentForStreamUsesCodec(): void
509
509
$ this ->assertInstanceOf (TestFile::class, $ fileDocument );
510
510
511
511
$ this ->assertSame ('filename ' , $ fileDocument ->filename );
512
- $ this ->assertInstanceOf (Document ::class, $ fileDocument ->metadata );
513
- $ this ->assertSame ($ metadata , $ fileDocument ->metadata -> toPHP ([ ' root ' => ' array ' ]) );
512
+ $ this ->assertInstanceOf (stdClass ::class, $ fileDocument ->metadata );
513
+ $ this ->assertSame ($ metadata , ( array ) $ fileDocument ->metadata );
514
514
}
515
515
516
516
public function testGetFileDocumentForStreamWithReadableStream (): void
You can’t perform that action at this time.
0 commit comments