From c4037776f7b1b70dfaeb6d6b49a5cc8592bdc7f0 Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Fri, 22 Oct 2021 09:29:48 +0200 Subject: [PATCH] Fix newly found phpstan errors [MAILPOET-3792] --- tests/integration/API/JSON/v1/SubscribersTest.php | 7 +++++++ .../NewsletterLinkRepositoryTest.php | 5 +++-- tests/integration/Statistics/Track/ClicksTest.php | 12 +++++++++--- tests/unit/DI/ContainerWrapperTest.php | 15 ++++++++++----- tests/unit/DI/TestService.php | 7 +++++++ 5 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 tests/unit/DI/TestService.php diff --git a/tests/integration/API/JSON/v1/SubscribersTest.php b/tests/integration/API/JSON/v1/SubscribersTest.php index 4975ec1e02..9fadb3def1 100644 --- a/tests/integration/API/JSON/v1/SubscribersTest.php +++ b/tests/integration/API/JSON/v1/SubscribersTest.php @@ -194,6 +194,7 @@ class SubscribersTest extends \MailPoetTest { $this->entityManager->clear(); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneBy(['email' => 'raul.doe@mailpoet.com']); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); expect($response->data['email'])->equals('raul.doe@mailpoet.com'); expect($response->data['id'])->equals($subscriber->getId()); expect($response->data['status'])->equals($subscriber->getStatus()); @@ -240,6 +241,7 @@ class SubscribersTest extends \MailPoetTest { $this->entityManager->clear(); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneBy(['email' => 'raul.doe@mailpoet.com']); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); expect($response->data['email'])->equals('raul.doe@mailpoet.com'); expect($response->data['id'])->equals($subscriber->getId()); expect($response->data['status'])->equals($subscriber->getStatus()); @@ -291,6 +293,7 @@ class SubscribersTest extends \MailPoetTest { expect($response->status)->equals(APIResponse::STATUS_OK); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneById($this->subscriber1->getId()); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); expect($response->data['id'])->equals($subscriber->getId()); expect($response->data['email'])->equals($subscriber->getEmail()); expect($response->data['status'])->equals($subscriber->getStatus()); @@ -303,6 +306,7 @@ class SubscribersTest extends \MailPoetTest { expect($response->status)->equals(APIResponse::STATUS_OK); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneById($this->subscriber2->getId()); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); expect($response->data['id'])->equals($subscriber->getId()); expect($response->data['email'])->equals($subscriber->getEmail()); expect($response->data['status'])->equals($subscriber->getStatus()); @@ -617,6 +621,7 @@ class SubscribersTest extends \MailPoetTest { expect($response->status)->equals(APIResponse::STATUS_OK); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneBy(['email' => 'toto@mailpoet.com']); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); $segments = $subscriber->getSegments(); expect($segments->count())->equals(1); expect($segments->get(0)->getId())->equals($this->segment2->getId()); @@ -715,6 +720,7 @@ class SubscribersTest extends \MailPoetTest { expect($response->status)->equals(APIResponse::STATUS_OK); $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneBy(['email' => 'toto@mailpoet.com']); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); $segments = $subscriber->getSegments(); expect($segments->count())->equals(2); expect($segments->get(0)->getId())->equals($settings['segments'][0]); @@ -886,6 +892,7 @@ class SubscribersTest extends \MailPoetTest { $subscriberRepository = $this->diContainer->get(SubscribersRepository::class); $subscriber = $subscriberRepository->findOneById($subscriber->id); + $this->assertInstanceOf(SubscriberEntity::class, $subscriber); $segments = $subscriber->getSegments(); expect($segments->get(0)->getId())->equals($this->segment1->getId()); expect($segments->get(1)->getId())->equals($wcSegment->id); diff --git a/tests/integration/Cron/Workers/StatsNotifications/NewsletterLinkRepositoryTest.php b/tests/integration/Cron/Workers/StatsNotifications/NewsletterLinkRepositoryTest.php index 90cae4185a..c741872318 100644 --- a/tests/integration/Cron/Workers/StatsNotifications/NewsletterLinkRepositoryTest.php +++ b/tests/integration/Cron/Workers/StatsNotifications/NewsletterLinkRepositoryTest.php @@ -49,7 +49,8 @@ class NewsletterLinkRepositoryTest extends \MailPoetTest { $this->entityManager->flush(); $repository = $this->diContainer->get(NewsletterLinkRepository::class); - $topLink = $repository->findTopLinkForNewsletter($newsletter->getId()); + $topLink = $repository->findTopLinkForNewsletter((int)$newsletter->getId()); + $this->assertInstanceOf(NewsletterLinkEntity::class, $topLink); expect($topLink->getUrl())->equals('http://example1.com'); $newsletter2 = new NewsletterEntity(); @@ -59,7 +60,7 @@ class NewsletterLinkRepositoryTest extends \MailPoetTest { $this->entityManager->persist($newsletter2); $this->entityManager->flush(); - $nonExistingTopLink = $repository->findTopLinkForNewsletter($newsletter2->getId()); + $nonExistingTopLink = $repository->findTopLinkForNewsletter((int)$newsletter2->getId()); expect($nonExistingTopLink)->null(); } } diff --git a/tests/integration/Statistics/Track/ClicksTest.php b/tests/integration/Statistics/Track/ClicksTest.php index 2891fd1b0d..8f8c39a675 100644 --- a/tests/integration/Statistics/Track/ClicksTest.php +++ b/tests/integration/Statistics/Track/ClicksTest.php @@ -196,7 +196,9 @@ class ClicksTest extends \MailPoetTest { $trackedClicks = $clicksRepository->findAll(); expect($trackedClicks)->count(1); $click = $trackedClicks[0]; - expect($click->getUserAgent()->getUserAgent())->equals('User Agent'); + $userAgent = $click->getUserAgent(); + $this->assertInstanceOf(UserAgentEntity::class, $userAgent); + expect($userAgent->getUserAgent())->equals('User Agent'); } public function testItUpdateUserAgent(): void { @@ -219,13 +221,17 @@ class ClicksTest extends \MailPoetTest { $trackedClicks = $clicksRepository->findAll(); expect($trackedClicks)->count(1); $click = $trackedClicks[0]; - expect($click->getUserAgent()->getUserAgent())->equals('User Agent'); + $userAgent = $click->getUserAgent(); + $this->assertInstanceOf(UserAgentEntity::class, $userAgent); + expect($userAgent->getUserAgent())->equals('User Agent'); $data->userAgent = 'User Agent 2'; $clicks->track($data); $trackedClicks = $clicksRepository->findAll(); expect($trackedClicks)->count(1); $click = $trackedClicks[0]; - expect($click->getUserAgent()->getUserAgent())->equals('User Agent 2'); + $userAgent = $click->getUserAgent(); + $this->assertInstanceOf(UserAgentEntity::class, $userAgent); + expect($userAgent->getUserAgent())->equals('User Agent 2'); } public function testItDoesNotOverrideHumanUserAgentWithMachine(): void { diff --git a/tests/unit/DI/ContainerWrapperTest.php b/tests/unit/DI/ContainerWrapperTest.php index b9aff99222..f7056f563a 100644 --- a/tests/unit/DI/ContainerWrapperTest.php +++ b/tests/unit/DI/ContainerWrapperTest.php @@ -9,6 +9,8 @@ use MailPoetVendor\Symfony\Component\DependencyInjection\Container; use MailPoetVendor\Symfony\Component\DependencyInjection\ContainerBuilder; use MailPoetVendor\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; +require_once __DIR__ . '/TestService.php'; + class ContainerWrapperTest extends \MailPoetUnitTest { public function testItCanConstruct() { $instance = new ContainerWrapper(new ContainerBuilder()); @@ -31,12 +33,12 @@ class ContainerWrapperTest extends \MailPoetUnitTest { public function testItProvidesFreePluginServices() { $freeContainerStub = Stub::make(Container::class, [ 'get' => function () { - return 'service'; + return new TestService(); }, ]); $instance = new ContainerWrapper($freeContainerStub); - $service = $instance->get('service_id'); - expect($service)->equals('service'); + $service = $instance->get(TestService::class); + $this->assertInstanceOf(TestService::class, $service); } public function testItThrowsFreePluginServices() { @@ -48,6 +50,7 @@ class ContainerWrapperTest extends \MailPoetUnitTest { $instance = new ContainerWrapper($freeContainerStub); $exception = null; try { + /* @phpstan-ignore-next-line - normally it is not allowed to pass an arbitrary string here, but we want to test this behaviour */ $instance->get('service'); } catch (ServiceNotFoundException $e) { $exception = $e; @@ -63,11 +66,12 @@ class ContainerWrapperTest extends \MailPoetUnitTest { ]); $premiumContainerStub = Stub::make(Container::class, [ 'get' => function () { - return 'service_1'; + return new TestService(); }, ]); $instance = new ContainerWrapper($freeContainerStub, $premiumContainerStub); - expect($instance->get('service'))->equals('service_1'); + $service = $instance->get(TestService::class); + $this->assertInstanceOf(TestService::class, $service); } public function testItThrowsIfServiceNotFoundInBothContainers() { @@ -79,6 +83,7 @@ class ContainerWrapperTest extends \MailPoetUnitTest { $instance = new ContainerWrapper($containerStub, $containerStub); $exception = null; try { + /* @phpstan-ignore-next-line - normally it is not allowed to pass an arbitrary string here, but we want to test this behaviour */ $instance->get('service'); } catch (ServiceNotFoundException $e) { $exception = $e; diff --git a/tests/unit/DI/TestService.php b/tests/unit/DI/TestService.php new file mode 100644 index 0000000000..9deb75b050 --- /dev/null +++ b/tests/unit/DI/TestService.php @@ -0,0 +1,7 @@ +