Skip to content

Commit

Permalink
[TEST] Fixed phpstan findings
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Jul 31, 2019
1 parent ff8a3cb commit b769e2d
Show file tree
Hide file tree
Showing 15 changed files with 79 additions and 66 deletions.
6 changes: 6 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,11 @@ parameters:

# Symfony DI
- '#Cannot call method end\(\) on Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface\|null.#'
- "/Call to function method_exists.. with 'Symfony.+' and 'getRootNode' will always evaluate to false./"

# PHPUnit
-
message: '#Property .*::\$.* has no typehint specified.#'
path: tests/

- '#Core23\\Doctrine\\Tests\\Fixtures\\DemoEntityManager::__construct\(\) does not call parent constructor from Sonata\\Doctrine\\Model\\BaseManager.#'
2 changes: 1 addition & 1 deletion src/Bridge/Symfony/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public function getConfigTreeBuilder()
$treeBuilder = new TreeBuilder('core23_doctrine');

// Keep compatibility with symfony/config < 4.2
if (!method_exists($treeBuilder, 'getRootNode')) {
if (!method_exists(TreeBuilder::class, 'getRootNode')) {
$rootNode = $treeBuilder->root('core23_doctrine');
} else {
$rootNode = $treeBuilder->getRootNode();
Expand Down
7 changes: 5 additions & 2 deletions src/Test/ORM/EntityManagerMockFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ final class EntityManagerMockFactory
*
* @return EntityManager|MockObject
*/
public static function create(TestCase $test, Closure $qbCallback, $fields): MockObject
public static function create(TestCase $test, Closure $qbCallback, array $fields): MockObject
{
$qb = $test->getMockBuilder(QueryBuilder::class)->disableOriginalConstructor()->getMock();

Expand Down Expand Up @@ -65,7 +65,10 @@ private static function prepareQueryBuilder(TestCase $test, MockObject $qb): voi
$qb->method('leftJoin')->willReturn($qb);
}

private static function prepareMetadata(TestCase $test, $fields): MockObject
/**
* @param string[] $fields
*/
private static function prepareMetadata(TestCase $test, array $fields): MockObject
{
$metadata = $test->getMockBuilder(ClassMetadataInfo::class)->disableOriginalConstructor()->getMock();
$metadata->method('getFieldNames')->willReturn($fields);
Expand Down
8 changes: 0 additions & 8 deletions tests/Bridge/Symfony/Bundle/Core23DoctrineBundleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,9 @@
use Core23\Doctrine\Bridge\Symfony\Bundle\Core23DoctrineBundle;
use Core23\Doctrine\Bridge\Symfony\DependencyInjection\Core23DoctrineExtension;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpKernel\Bundle\BundleInterface;

final class Core23DoctrineBundleTest extends TestCase
{
public function testItIsInstantiable(): void
{
$bundle = new Core23DoctrineBundle();

static::assertInstanceOf(BundleInterface::class, $bundle);
}

public function testGetPath(): void
{
$bundle = new Core23DoctrineBundle();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
namespace Core23\Doctrine\Tests\Bridge\Symfony\DependencyInjection;

use Core23\Doctrine\Bridge\Symfony\DependencyInjection\Core23DoctrineExtension;
use Core23\Doctrine\EventListener\ORM\ConfirmableListener;
use Core23\Doctrine\EventListener\ORM\DeletableListener;
use Core23\Doctrine\EventListener\ORM\LifecycleDateListener;
use Core23\Doctrine\EventListener\ORM\SortableListener;
use Core23\Doctrine\EventListener\ORM\TablePrefixEventListener;
use Core23\Doctrine\EventListener\ORM\UniqueActiveListener;
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;

final class Core23DoctrineExtensionTest extends AbstractExtensionTestCase
Expand All @@ -20,7 +26,12 @@ public function testLoadDefault(): void
{
$this->load();

static::assertTrue(true);
$this->assertContainerBuilderHasService(ConfirmableListener::class);
$this->assertContainerBuilderHasService(DeletableListener::class);
$this->assertContainerBuilderHasService(LifecycleDateListener::class);
$this->assertContainerBuilderHasService(SortableListener::class);
$this->assertContainerBuilderHasService(UniqueActiveListener::class);
$this->assertContainerBuilderHasService(TablePrefixEventListener::class);
}

protected function getContainerExtensions()
Expand Down
8 changes: 0 additions & 8 deletions tests/EventListener/ORM/ConfirmableListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
use Core23\Doctrine\EventListener\ORM\ConfirmableListener;
use Core23\Doctrine\Tests\Fixtures\ClassWithAllProperties;
use Core23\Doctrine\Tests\Fixtures\EmptyClass;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadata;
Expand All @@ -23,13 +22,6 @@

final class ConfirmableListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new ConfirmableListener();

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new ConfirmableListener();
Expand Down
8 changes: 0 additions & 8 deletions tests/EventListener/ORM/DeletableListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
use Core23\Doctrine\EventListener\ORM\DeletableListener;
use Core23\Doctrine\Tests\Fixtures\ClassWithAllProperties;
use Core23\Doctrine\Tests\Fixtures\EmptyClass;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\ClassMetadata;
Expand All @@ -23,13 +22,6 @@

final class DeletableListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new DeletableListener();

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new DeletableListener();
Expand Down
23 changes: 13 additions & 10 deletions tests/EventListener/ORM/LifecycleDateListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Core23\Doctrine\Tests\Fixtures\ClassWithAllProperties;
use Core23\Doctrine\Tests\Fixtures\EmptyClass;
use DateTime;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
Expand All @@ -27,13 +27,6 @@

final class LifecycleDateListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new LifecycleDateListener();

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new LifecycleDateListener();
Expand Down Expand Up @@ -68,15 +61,20 @@ public function testPrePersistForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(LifecycleEventArgs::class);
$eventArgs->getObject()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new LifecycleDateListener();
$listener->prePersist($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testPreUpdate(): void
Expand All @@ -99,15 +97,20 @@ public function testPreUpdateForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(LifecycleEventArgs::class);
$eventArgs->getObject()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new LifecycleDateListener();
$listener->preUpdate($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testLoadClassMetadataWithNoValidData(): void
Expand Down
23 changes: 13 additions & 10 deletions tests/EventListener/ORM/SortableListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use Core23\Doctrine\EventListener\ORM\SortableListener;
use Core23\Doctrine\Tests\Fixtures\ClassWithAllProperties;
use Core23\Doctrine\Tests\Fixtures\EmptyClass;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
Expand All @@ -26,13 +26,6 @@

final class SortableListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new SortableListener();

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new SortableListener();
Expand All @@ -49,30 +42,40 @@ public function testPrePersistForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(PreUpdateEventArgs::class);
$eventArgs->getEntity()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new SortableListener();
$listener->prePersist($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testPreRemoveForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(LifecycleEventArgs::class);
$eventArgs->getEntity()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new SortableListener();
$listener->preRemove($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testLoadClassMetadataWithNoValidData(): void
Expand Down
8 changes: 0 additions & 8 deletions tests/EventListener/ORM/TablePrefixEventListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,11 @@
namespace Core23\Doctrine\Tests\EventListener\ORM;

use Core23\Doctrine\EventListener\ORM\TablePrefixEventListener;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Events;
use PHPUnit\Framework\TestCase;

final class TablePrefixEventListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new TablePrefixEventListener('acme_');

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new TablePrefixEventListener('acme_');
Expand Down
23 changes: 13 additions & 10 deletions tests/EventListener/ORM/UniqueActiveListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use Core23\Doctrine\EventListener\ORM\UniqueActiveListener;
use Core23\Doctrine\Tests\Fixtures\ClassWithAllProperties;
use Core23\Doctrine\Tests\Fixtures\EmptyClass;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
Expand All @@ -26,13 +26,6 @@

final class UniqueActiveListenerTest extends TestCase
{
public function testItIsInstantiable(): void
{
$listener = new UniqueActiveListener();

static::assertInstanceOf(EventSubscriber::class, $listener);
}

public function testGetSubscribedEvents(): void
{
$listener = new UniqueActiveListener();
Expand All @@ -48,30 +41,40 @@ public function testPrePersistForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(PreUpdateEventArgs::class);
$eventArgs->getEntity()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new UniqueActiveListener();
$listener->prePersist($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testPreUpdateForInvalidClass(): void
{
$object = $this->prophesize(stdClass::class);

$entityManager = $this->prophesize(EntityManagerInterface::class);

$eventArgs = $this->prophesize(LifecycleEventArgs::class);
$eventArgs->getEntity()
->willReturn($object)
;
$eventArgs->getEntityManager()
->willReturn($entityManager)
;

$listener = new UniqueActiveListener();
$listener->preUpdate($eventArgs->reveal());

static::assertTrue(true);
$entityManager->createQueryBuilder()->shouldNotHaveBeenCalled();
}

public function testLoadClassMetadataWithNoValidData(): void
Expand Down
4 changes: 4 additions & 0 deletions tests/Model/Traits/ConfirmableTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

use Core23\Doctrine\Model\Traits\ConfirmableTrait;
use DateTime;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;

final class ConfirmableTraitTest extends TestCase
Expand Down Expand Up @@ -54,6 +55,9 @@ public function testSetConfirmedAt(): void
static::assertTrue($model->isConfirmed());
}

/**
* @return ConfirmableTrait&MockObject
*/
private function createTraitMock()
{
return $this->getMockForTrait(ConfirmableTrait::class);
Expand Down
4 changes: 4 additions & 0 deletions tests/Model/Traits/DeleteableTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

use Core23\Doctrine\Model\Traits\DeleteableTrait;
use DateTime;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;

final class DeleteableTraitTest extends TestCase
Expand Down Expand Up @@ -54,6 +55,9 @@ public function testSetDeletedAt(): void
static::assertTrue($model->isDeleted());
}

/**
* @return DeleteableTrait&MockObject
*/
private function createTraitMock()
{
return $this->getMockForTrait(DeleteableTrait::class);
Expand Down
Loading

0 comments on commit b769e2d

Please sign in to comment.