Skip to content

Commit 28bac31

Browse files
committed
Update tests and psalm baseline
1 parent c2695fd commit 28bac31

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

psalm-baseline.xml

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,10 @@
470470
<code><![CDATA[$args[0]]]></code>
471471
<code><![CDATA[$args[0]]]></code>
472472
<code><![CDATA[$args[0]]]></code>
473+
<code><![CDATA[$args[0]]]></code>
474+
<code><![CDATA[$args[0]]]></code>
475+
<code><![CDATA[$args[1]]]></code>
476+
<code><![CDATA[$args[1]]]></code>
473477
<code><![CDATA[$args[1]]]></code>
474478
<code><![CDATA[$args[1]]]></code>
475479
<code><![CDATA[$args[1]]]></code>
@@ -726,9 +730,6 @@
726730
<MixedAssignment>
727731
<code><![CDATA[$options['fields']]]></code>
728732
</MixedAssignment>
729-
<PossiblyInvalidArgument>
730-
<code><![CDATA[$replacement]]></code>
731-
</PossiblyInvalidArgument>
732733
</file>
733734
<file src="src/Operation/FindOneAndUpdate.php">
734735
<MixedAssignment>
@@ -745,9 +746,6 @@
745746
<MixedMethodCall>
746747
<code><![CDATA[isInTransaction]]></code>
747748
</MixedMethodCall>
748-
<PossiblyInvalidArgument>
749-
<code><![CDATA[$document]]></code>
750-
</PossiblyInvalidArgument>
751749
</file>
752750
<file src="src/Operation/InsertOne.php">
753751
<MixedAssignment>
@@ -759,9 +757,6 @@
759757
<MixedMethodCall>
760758
<code><![CDATA[isInTransaction]]></code>
761759
</MixedMethodCall>
762-
<PossiblyInvalidArgument>
763-
<code><![CDATA[$document]]></code>
764-
</PossiblyInvalidArgument>
765760
</file>
766761
<file src="src/Operation/ListIndexes.php">
767762
<MixedAssignment>
@@ -789,11 +784,6 @@
789784
<code><![CDATA[isInTransaction]]></code>
790785
</MixedMethodCall>
791786
</file>
792-
<file src="src/Operation/ReplaceOne.php">
793-
<PossiblyInvalidArgument>
794-
<code><![CDATA[$replacement]]></code>
795-
</PossiblyInvalidArgument>
796-
</file>
797787
<file src="src/Operation/Update.php">
798788
<MixedArgument>
799789
<code><![CDATA[$this->options['writeConcern']]]></code>

src/Operation/FindOneAndReplace.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public function getCommandDocument(): array
172172

173173
private function validateReplacement(array|object $replacement, ?DocumentCodec $codec): array|object
174174
{
175-
if ($codec && is_object($replacement)) {
175+
if ($codec) {
176176
if (! is_object($replacement)) {
177177
throw UnsupportedValueException::invalidEncodableValue($replacement);
178178
}

tests/Collection/CodecCollectionFunctionalTest.php

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use MongoDB\Collection;
99
use MongoDB\Driver\BulkWrite;
1010
use MongoDB\Exception\InvalidArgumentException;
11+
use MongoDB\Exception\UnsupportedValueException;
1112
use MongoDB\Model\BSONDocument;
1213
use MongoDB\Operation\FindOneAndReplace;
1314
use MongoDB\Tests\Fixtures\Codec\TestDocumentCodec;
@@ -264,6 +265,12 @@ public function testFindOneAndReplaceWithCodecAndTypemap(): void
264265
$this->collection->findOneAndReplace(['_id' => 1], TestObject::createForFixture(1), $options);
265266
}
266267

268+
public function testFindOneAndReplaceWithArray(): void
269+
{
270+
$this->expectExceptionObject(UnsupportedValueException::invalidEncodableValue([]));
271+
$this->collection->findOneAndReplace(['_id' => 1], ['foo' => 'bar']);
272+
}
273+
267274
public static function provideFindOptions(): Generator
268275
{
269276
yield 'Default codec' => [
@@ -413,6 +420,12 @@ public function testInsertMany($expected, $options): void
413420
$this->assertEquals($expected, $this->collection->find([], $options)->toArray());
414421
}
415422

423+
public function testInsertManyWithArray(): void
424+
{
425+
$this->expectExceptionObject(UnsupportedValueException::invalidEncodableValue([]));
426+
$this->collection->insertMany([['foo' => 'bar']]);
427+
}
428+
416429
public static function provideInsertOneOptions(): Generator
417430
{
418431
yield 'Default codec' => [
@@ -452,6 +465,12 @@ public function testInsertOne($expected, $options): void
452465
$this->assertEquals($expected, $this->collection->findOne([], $options));
453466
}
454467

468+
public function testInsertOneWithArray(): void
469+
{
470+
$this->expectExceptionObject(UnsupportedValueException::invalidEncodableValue([]));
471+
$this->collection->insertOne(['foo' => 'bar']);
472+
}
473+
455474
public static function provideReplaceOneOptions(): Generator
456475
{
457476
$replacedObject = TestObject::createDecodedForFixture(1);
@@ -499,7 +518,13 @@ public function testReplaceOneWithCodecAndTypemap(): void
499518
];
500519

501520
$this->expectExceptionObject(InvalidArgumentException::cannotCombineCodecAndTypeMap());
502-
$this->collection->replaceOne(['_id' => 1], ['foo' => 'bar'], $options);
521+
$this->collection->replaceOne(['_id' => 1], (object) ['foo' => 'bar'], $options);
522+
}
523+
524+
public function testReplaceOneWithArray(): void
525+
{
526+
$this->expectExceptionObject(UnsupportedValueException::invalidEncodableValue([]));
527+
$this->collection->replaceOne(['_id' => 1], ['foo' => 'bar']);
503528
}
504529

505530
/**

0 commit comments

Comments
 (0)