Skip to content

Commit

Permalink
Merge pull request #2327 from franmomu/issues_tests_sa
Browse files Browse the repository at this point in the history
Fix some issues of Psalm in level 6
  • Loading branch information
malarzm authored Jun 21, 2021
2 parents 9676493 + 08bdcdf commit d35b8d4
Show file tree
Hide file tree
Showing 20 changed files with 138 additions and 132 deletions.
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);
$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

0 comments on commit d35b8d4

Please sign in to comment.