Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix some issues of Psalm in level 6 #2327

Merged
merged 7 commits into from
Jun 21, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,6 @@ parameters:
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Functional/EcommerceTest.php

-
message: "#^Parameter \\#1 \\$object of method Doctrine\\\\ODM\\\\MongoDB\\\\DocumentManager\\:\\:detach\\(\\) expects object, float\\|int given\\.$#"
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Functional/EcommerceTest.php

-
message: "#^Parameter \\#2 \\$currency of class Documents\\\\Ecommerce\\\\Money constructor expects Documents\\\\Ecommerce\\\\Currency, int given\\.$#"
count: 6
path: tests/Doctrine/ODM/MongoDB/Tests/Functional/EcommerceTest.php

-
message: "#^Cannot call method getCount\\(\\) on array\\|int\\|object\\.$#"
count: 1
Expand Down Expand Up @@ -154,11 +144,6 @@ parameters:
count: 2
path: tests/Doctrine/ODM/MongoDB/Tests/Functional/QueryTest.php

-
message: "#^Parameter \\#1 \\$coll of method Doctrine\\\\ODM\\\\MongoDB\\\\UnitOfWork\\:\\:isCollectionScheduledForUpdate\\(\\) expects Doctrine\\\\ODM\\\\MongoDB\\\\PersistentCollection\\\\PersistentCollectionInterface, Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\\<mixed, mixed\\> given\\.$#"
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket/GH1011Test.php

-
message: "#^Comparison operation \"\\<\" between \\(array\\|float\\|int\\) and 0 results in an error\\.$#"
count: 1
Expand Down Expand Up @@ -229,11 +214,6 @@ parameters:
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Mapping/ClassMetadataTest.php

-
message: "#^Access to an undefined property Documents\\\\CmsArticle\\:\\:\\$title\\.$#"
count: 4
path: tests/Doctrine/ODM/MongoDB/Tests/Persisters/PersistenceBuilderTest.php

-
message: "#^Parameter \\#1 \\$primer of method Doctrine\\\\ODM\\\\MongoDB\\\\Query\\\\Builder\\:\\:prime\\(\\) expects bool\\|\\(callable\\(\\)\\: mixed\\), 1 given\\.$#"
count: 1
Expand All @@ -244,22 +224,7 @@ parameters:
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/QueryTest.php

-
message: "#^Call to an undefined method MongoDB\\\\Collection\\:\\:expects\\(\\)\\.$#"
count: 14
path: tests/Doctrine/ODM/MongoDB/Tests/SchemaManagerTest.php

-
message: "#^Method Doctrine\\\\ODM\\\\MongoDB\\\\Tests\\\\SchemaManagerTest\\:\\:writeOptions\\(\\) should return PHPUnit\\\\Framework\\\\Constraint\\\\Constraint but returns PHPUnit\\\\Framework\\\\Constraint\\\\ArraySubset\\.$#"
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/SchemaManagerTest.php

-
message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertInstanceOf\\(\\) with 'DateTimeImmutable' and null will always evaluate to false\\.$#"
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Types/DateImmutableTypeTest.php

-
message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertInstanceOf\\(\\) with 'DateTime' and null will always evaluate to false\\.$#"
count: 1
path: tests/Doctrine/ODM/MongoDB/Tests/Types/DateTypeTest.php
48 changes: 24 additions & 24 deletions tests/Doctrine/ODM/MongoDB/Tests/Functional/AtomicSetTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -274,18 +274,18 @@ public function testWeNeedToGoDeeper()

$user = $this->dm->getRepository(get_class($user))->find($user->id);
$this->assertCount(1, $user->inception);
$this->assertEquals($user->inception[0]->value, 'start');
$this->assertEquals('start', $user->inception[0]->value);
alcaeus marked this conversation as resolved.
Show resolved Hide resolved
$this->assertNotNull($user->inception[0]->one);
$this->assertEquals($user->inception[0]->one->value, 'start.one');
$this->assertEquals('start.one', $user->inception[0]->one->value);
$this->assertCount(2, $user->inception[0]->one->many);
$this->assertEquals($user->inception[0]->one->many[0]->value, 'start.one.many.0');
$this->assertEquals($user->inception[0]->one->many[1]->value, 'start.one.many.1');
$this->assertEquals('start.one.many.0', $user->inception[0]->one->many[0]->value);
$this->assertEquals('start.one.many.1', $user->inception[0]->one->many[1]->value);
$this->assertNotNull($user->inception[0]->one->one);
$this->assertEquals($user->inception[0]->one->one->value, 'start.one.one');
$this->assertEquals('start.one.one', $user->inception[0]->one->one->value);
$this->assertCount(1, $user->inception[0]->one->one->many);
$this->assertEquals($user->inception[0]->one->one->many[0]->value, 'start.one.one.many.0');
$this->assertEquals('start.one.one.many.0', $user->inception[0]->one->one->many[0]->value);
$this->assertCount(1, $user->inception[0]->one->one->many[0]->many);
$this->assertEquals($user->inception[0]->one->one->many[0]->many[0]->value, 'start.one.one.many.0.many.0');
$this->assertEquals('start.one.one.many.0.many.0', $user->inception[0]->one->one->many[0]->many[0]->value);

unset($user->inception[0]->one->many[0]);
$user->inception[0]->one->many[] = new AtomicSetInception('start.one.many.2');
Expand All @@ -297,24 +297,24 @@ public function testWeNeedToGoDeeper()

$user = $this->dm->getRepository(get_class($user))->find($user->id);
$this->assertCount(1, $user->inception);
$this->assertEquals($user->inception[0]->value, 'start');
$this->assertEquals('start', $user->inception[0]->value);
$this->assertNotNull($user->inception[0]->one);
$this->assertEquals($user->inception[0]->one->value, 'start.one');
$this->assertEquals('start.one', $user->inception[0]->one->value);
$this->assertCount(2, $user->inception[0]->one->many);
/* Note: Since the "start.one.many" collection uses a pushAll strategy,
* "start.one.many.1" is reindexed at 0 after fetching. Before the last
* flush (when we unset "start.one.many.0"), it would still have been
* accessible via index 1.
*/
$this->assertEquals($user->inception[0]->one->many[0]->value, 'start.one.many.1');
$this->assertEquals($user->inception[0]->one->many[1]->value, 'start.one.many.2');
$this->assertEquals('start.one.many.1', $user->inception[0]->one->many[0]->value);
$this->assertEquals('start.one.many.2', $user->inception[0]->one->many[1]->value);
$this->assertNotNull($user->inception[0]->one->one);
$this->assertEquals($user->inception[0]->one->one->value, 'start.one.one');
$this->assertEquals('start.one.one', $user->inception[0]->one->one->value);
$this->assertCount(1, $user->inception[0]->one->one->many);
$this->assertEquals($user->inception[0]->one->one->many[0]->value, 'start.one.one.many.0');
$this->assertEquals('start.one.one.many.0', $user->inception[0]->one->one->many[0]->value);
$this->assertCount(2, $user->inception[0]->one->one->many[0]->many);
$this->assertEquals($user->inception[0]->one->one->many[0]->many[0]->value, 'start.one.one.many.0.many.0');
$this->assertEquals($user->inception[0]->one->one->many[0]->many[1]->value, 'start.one.one.many.0.many.1');
$this->assertEquals('start.one.one.many.0.many.0', $user->inception[0]->one->one->many[0]->many[0]->value);
$this->assertEquals('start.one.one.many.0.many.1', $user->inception[0]->one->one->many[0]->many[1]->value);
}

public function testUpdatingNestedCollectionWhileDeletingParent()
Expand All @@ -332,14 +332,14 @@ public function testUpdatingNestedCollectionWhileDeletingParent()

$user = $this->dm->getRepository(get_class($user))->find($user->id);
$this->assertCount(1, $user->inception);
$this->assertEquals($user->inception[0]->value, 'start');
$this->assertEquals('start', $user->inception[0]->value);
$this->assertCount(2, $user->inception[0]->many);
$this->assertEquals($user->inception[0]->many[0]->value, 'start.many.0');
$this->assertEquals('start.many.0', $user->inception[0]->many[0]->value);
$this->assertCount(1, $user->inception[0]->many[0]->many);
$this->assertEquals($user->inception[0]->many[0]->many[0]->value, 'start.many.0.many.0');
$this->assertEquals($user->inception[0]->many[1]->value, 'start.many.1');
$this->assertEquals('start.many.0.many.0', $user->inception[0]->many[0]->many[0]->value);
$this->assertEquals('start.many.1', $user->inception[0]->many[1]->value);
$this->assertCount(1, $user->inception[0]->many[0]->many);
$this->assertEquals($user->inception[0]->many[1]->many[0]->value, 'start.many.1.many.0');
$this->assertEquals('start.many.1.many.0', $user->inception[0]->many[1]->many[0]->value);

$user->inception[0]->many[0]->many[0]->value = 'start.many.0.many.0-changed';
$user->inception[0]->many[0]->many[1] = new AtomicSetInception('start.many.0.many.1');
Expand All @@ -354,13 +354,13 @@ public function testUpdatingNestedCollectionWhileDeletingParent()

$user = $this->dm->getRepository(get_class($user))->find($user->id);
$this->assertCount(1, $user->inception);
$this->assertEquals($user->inception[0]->value, 'start');
$this->assertEquals('start', $user->inception[0]->value);
$this->assertCount(2, $user->inception[0]->many);
$this->assertEquals($user->inception[0]->many[0]->value, 'start.many.0');
$this->assertEquals('start.many.0', $user->inception[0]->many[0]->value);
$this->assertCount(0, $user->inception[0]->many[0]->many);
$this->assertEquals($user->inception[0]->many[1]->value, 'start.many.1');
$this->assertEquals('start.many.1', $user->inception[0]->many[1]->value);
$this->assertCount(1, $user->inception[0]->many[1]->many);
$this->assertEquals($user->inception[0]->many[1]->many[0]->value, 'start.many.1.many.0-new');
$this->assertEquals('start.many.1.many.0-new', $user->inception[0]->many[1]->many[0]->value);
}

public function testAtomicRefMany()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use Doctrine\ODM\MongoDB\Tests\BaseTest;
use Documents\File;
use Documents\ProfileNotify;
use stdClass;

use function assert;
use function get_class;
Expand Down Expand Up @@ -47,7 +48,7 @@ public function testCollectionClassHasToImplementCommonInterface()
'fieldName' => 'assoc',
'reference' => true,
'type' => 'many',
'collectionClass' => 'stdClass',
'collectionClass' => stdClass::class,
]);
}

Expand Down
11 changes: 7 additions & 4 deletions tests/Doctrine/ODM/MongoDB/Tests/Functional/EcommerceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@ public function setUp(): void
{
parent::setUp();

$currencies = ['USD' => 1, 'EURO' => 1.7, 'JPN' => 0.0125];
$currencies = [];
$multipliers = ['USD' => 1, 'EURO' => 1.7, 'JPN' => 0.0125];

foreach ($currencies as $name => &$multiplier) {
$multiplier = new Currency($name, $multiplier);
$this->dm->persist($multiplier);
foreach ($multipliers as $currencyName => $multiplier) {
$currency = new Currency($currencyName, $multiplier);
$this->dm->persist($currency);

$currencies[$currencyName] = $currency;
}

$product = new ConfigurableProduct('T-Shirt');
Expand Down
24 changes: 12 additions & 12 deletions tests/Doctrine/ODM/MongoDB/Tests/Functional/IdTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,11 @@ public function testCollectionId()
$this->dm->flush();
$this->dm->clear();

$this->assertEquals($user1->id, 1);
$this->assertEquals($user2->id, 2);
$this->assertEquals(1, $user1->id);
$this->assertEquals(2, $user2->id);

$this->assertEquals($reference1->id, 1);
$this->assertEquals($reference2->id, 2);
$this->assertEquals(1, $reference1->id);
$this->assertEquals(2, $reference2->id);

$check1 = $this->dm->getRepository(CollectionIdUser::class)->findOneBy(['id' => $user1->id]);
$check2 = $this->dm->getRepository(CollectionIdUser::class)->findOneBy(['id' => $user2->id]);
Expand All @@ -116,8 +116,8 @@ public function testCollectionIdWithStartingId()
$this->dm->flush();
$this->dm->clear();

$this->assertEquals($user1->id, 10);
$this->assertEquals($user2->id, 11);
$this->assertEquals(10, $user1->id);
$this->assertEquals(11, $user2->id);
}

public function testEmbeddedDocumentWithId()
Expand All @@ -134,14 +134,14 @@ public function testEmbeddedDocumentWithId()
$this->dm->persist($user2);
$this->dm->flush();

$this->assertEquals($user1->id, 1);
$this->assertEquals($user2->id, 2);
$this->assertEquals(1, $user1->id);
$this->assertEquals(2, $user2->id);

$this->assertEquals($user1->embedded[0]->id, 1);
$this->assertEquals($user1->embedded[1]->id, 2);
$this->assertEquals(1, $user1->embedded[0]->id);
$this->assertEquals(2, $user1->embedded[1]->id);

$this->assertEquals($user2->embedded[0]->id, 3);
$this->assertEquals($user2->embedded[1]->id, 4);
$this->assertEquals(3, $user2->embedded[0]->id);
$this->assertEquals(4, $user2->embedded[1]->id);
}

public function testIdGeneratorInstance()
Expand Down
2 changes: 1 addition & 1 deletion tests/Doctrine/ODM/MongoDB/Tests/Functional/QueryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ public function testNestedQueryReference()
$this->dm->persist($user);
$this->dm->flush();

$qb = $this->dm->createQueryBuilder('Documents\ReferenceUser');
$qb = $this->dm->createQueryBuilder(ReferenceUser::class);

$referencedUsersQuery = $qb
->field('indirectlyReferencedUsers.user.id')->equals(new ObjectId($referencedUser->getId()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Doctrine\ODM\MongoDB\PersistentCollection\PersistentCollectionInterface;
use Doctrine\ODM\MongoDB\Tests\BaseTest;

class GH1011Test extends BaseTest
Expand Down Expand Up @@ -33,7 +34,9 @@ public function testReplaceCollection()
$doc->embeds = new ArrayCollection();
$doc->embeds->add(new GH1011Embedded('test2'));
$this->uow->computeChangeSets();
$this->assertInstanceOf(PersistentCollectionInterface::class, $doc->embeds);
$this->assertTrue($this->uow->isCollectionScheduledForUpdate($doc->embeds));
$this->assertInstanceOf(PersistentCollectionInterface::class, $oldCollection);
$this->assertFalse($this->uow->isCollectionScheduledForDeletion($oldCollection));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public function testShortNameLossOnReplacingMiddleEmbeddedDocOfNestedEmbedding()
$this->dm->flush();
$this->assertTrue(true);
} catch (Notice $ex) {
$this->fail($ex);
$this->fail($ex->getMessage());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Doctrine\ODM\MongoDB\Tests\BaseTest;

use function count;

class GH2157Test extends BaseTest
{
public function testFacetDiscriminatorMapCreation()
Expand Down Expand Up @@ -36,7 +34,7 @@ public function testFacetDiscriminatorMapCreation()
->execute()->toArray();

$this->assertEquals(4, $result[0]['count'][0]['count']);
$this->assertEquals(2, count($result[0]['limitedResults']));
$this->assertCount(2, $result[0]['limitedResults']);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public function testDiscriminatorFieldValuePresentIfRealProperty()

$testDoc = $dm->find(MODM90TestDocument::class, $testDoc->id);

$this->assertEquals($testDoc->embedded->type, 'test2');
$this->assertEquals('test2', $testDoc->embedded->type);
}
}

Expand Down
28 changes: 15 additions & 13 deletions tests/Doctrine/ODM/MongoDB/Tests/Mapping/ClassMetadataTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
use Doctrine\ODM\MongoDB\Tests\BaseTest;
use Doctrine\ODM\MongoDB\Types\Type;
use Doctrine\ODM\MongoDB\Utility\CollectionHelper;
use DoctrineGlobal_Article;
use DoctrineGlobal_User;
use Documents\Account;
use Documents\Address;
use Documents\Album;
Expand Down Expand Up @@ -139,13 +141,13 @@ public function testMapAssocationInGlobalNamespace()
{
require_once __DIR__ . '/Documents/GlobalNamespaceDocument.php';

$cm = new ClassMetadata('DoctrineGlobal_Article');
$cm = new ClassMetadata(DoctrineGlobal_Article::class);
$cm->mapManyEmbedded([
'fieldName' => 'author',
'targetDocument' => 'DoctrineGlobal_User',
'targetDocument' => DoctrineGlobal_User::class,
]);

$this->assertEquals('DoctrineGlobal_User', $cm->fieldMappings['author']['targetDocument']);
$this->assertEquals(DoctrineGlobal_User::class, $cm->fieldMappings['author']['targetDocument']);
}

public function testMapManyToManyJoinTableDefaults()
Expand Down Expand Up @@ -182,11 +184,11 @@ public function testSetDiscriminatorMapInGlobalNamespace()
{
require_once __DIR__ . '/Documents/GlobalNamespaceDocument.php';

$cm = new ClassMetadata('DoctrineGlobal_User');
$cm->setDiscriminatorMap(['descr' => 'DoctrineGlobal_Article', 'foo' => 'DoctrineGlobal_User']);
$cm = new ClassMetadata(DoctrineGlobal_User::class);
$cm->setDiscriminatorMap(['descr' => DoctrineGlobal_Article::class, 'foo' => DoctrineGlobal_User::class]);

$this->assertEquals('DoctrineGlobal_Article', $cm->discriminatorMap['descr']);
$this->assertEquals('DoctrineGlobal_User', $cm->discriminatorMap['foo']);
$this->assertEquals(DoctrineGlobal_Article::class, $cm->discriminatorMap['descr']);
$this->assertEquals(DoctrineGlobal_User::class, $cm->discriminatorMap['foo']);
}

/**
Expand All @@ -196,16 +198,16 @@ public function testSetSubClassesInGlobalNamespace()
{
require_once __DIR__ . '/Documents/GlobalNamespaceDocument.php';

$cm = new ClassMetadata('DoctrineGlobal_User');
$cm->setSubclasses(['DoctrineGlobal_Article']);
$cm = new ClassMetadata(DoctrineGlobal_User::class);
$cm->setSubclasses([DoctrineGlobal_Article::class]);

$this->assertEquals('DoctrineGlobal_Article', $cm->subClasses[0]);
$this->assertEquals(DoctrineGlobal_Article::class, $cm->subClasses[0]);
}

public function testDuplicateFieldMapping()
{
$cm = new ClassMetadata(CmsUser::class);
$a1 = ['reference' => true, 'type' => 'many', 'fieldName' => 'name', 'targetDocument' => 'stdClass'];
$a1 = ['reference' => true, 'type' => 'many', 'fieldName' => 'name', 'targetDocument' => stdClass::class];
$a2 = ['type' => 'string', 'fieldName' => 'name'];

$cm->mapField($a1);
Expand Down Expand Up @@ -309,7 +311,7 @@ public function testDefaultDiscriminatorField()
'fieldName' => 'assocWithTargetDocument',
'reference' => true,
'type' => 'one',
'targetDocument' => 'stdClass',
'targetDocument' => stdClass::class,
]);

$cm->mapField([
Expand Down Expand Up @@ -464,7 +466,7 @@ public function testInvokeLifecycleCallbacksShouldRequireInstanceOfClass()
$class = $this->dm->getClassMetadata(User::class);
$document = new stdClass();

$this->assertInstanceOf('\stdClass', $document);
$this->assertInstanceOf(stdClass::class, $document);

$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('Expected document class "Documents\User"; found: "stdClass"');
Expand Down
Loading