From 547bdd322b557470330e13df491d3b960167779d Mon Sep 17 00:00:00 2001 From: Lorenzo Ruozzi Date: Thu, 20 Apr 2023 18:10:39 +0200 Subject: [PATCH] Fix static checks --- composer.json | 3 ++- ecs.php | 1 - ...ReorderEligibilityCheckerResponseProcessorSpec.php | 7 +++++-- src/Controller/CustomerReorderAction.php | 6 +++++- src/Factory/OrderFactory.php | 4 +++- .../ItemsOutOfStockEligibilityChecker.php | 3 ++- .../ReorderEligibilityConstraintMessageFormatter.php | 7 +------ ...EligibilityConstraintMessageFormatterInterface.php | 2 +- .../ReorderPromotionsEligibilityChecker.php | 3 ++- .../ReorderEligibilityCheckerResponseProcessor.php | 11 +++++++---- src/ReorderProcessing/ReorderItemsProcessor.php | 5 +++-- 11 files changed, 31 insertions(+), 21 deletions(-) diff --git a/composer.json b/composer.json index 6430908..505b1cd 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,8 @@ "require": { "php": "^8.0", "sylius/sylius": "^1.12", - "sylius/mailer-bundle": "^1.8 || ^2.0", + "sylius/mailer-bundle": "^1.8 || ^2.0", + "symfony/http-foundation": "^5.4 || ^6.0", "symfony/webpack-encore-bundle": "^1.15" }, "require-dev": { diff --git a/ecs.php b/ecs.php index 3cf43de..fb0426f 100644 --- a/ecs.php +++ b/ecs.php @@ -18,4 +18,3 @@ VisibilityRequiredFixer::class => ['*Spec.php'], ]); }; - diff --git a/spec/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessorSpec.php b/spec/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessorSpec.php index a861813..3eba1aa 100644 --- a/spec/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessorSpec.php +++ b/spec/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessorSpec.php @@ -9,14 +9,15 @@ use Sylius\CustomerReorderPlugin\ReorderEligibility\ResponseProcessing\EligibilityCheckerFailureResponses; use Sylius\CustomerReorderPlugin\ReorderEligibility\ResponseProcessing\ReorderEligibilityCheckerResponseProcessor; use Sylius\CustomerReorderPlugin\ReorderEligibility\ResponseProcessing\ReorderEligibilityCheckerResponseProcessorInterface; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; use Symfony\Component\HttpFoundation\Session\Session; final class ReorderEligibilityCheckerResponseProcessorSpec extends ObjectBehavior { - public function let(Session $session): void + public function let(RequestStack $requestStack): void { - $this->beConstructedWith($session); + $this->beConstructedWith($requestStack); } public function it_is_initializable(): void @@ -33,6 +34,7 @@ public function it_adds_flash_bag_messages_based_on_given_array( ReorderEligibilityCheckerResponse $firstResponse, ReorderEligibilityCheckerResponse $secondResponse, ReorderEligibilityCheckerResponse $thirdResponse, + RequestStack $requestStack, Session $session, FlashBagInterface $flashBag, ): void { @@ -45,6 +47,7 @@ public function it_adds_flash_bag_messages_based_on_given_array( $thirdResponse->getMessage()->willReturn(EligibilityCheckerFailureResponses::TOTAL_AMOUNT_CHANGED); $thirdResponse->getParameters()->willReturn(['%order_total%' => '$100.00']); + $requestStack->getSession()->willReturn($session); $session->getFlashBag()->willReturn($flashBag); $flashBag->add('info', [ diff --git a/src/Controller/CustomerReorderAction.php b/src/Controller/CustomerReorderAction.php index fc9144b..a3d4408 100644 --- a/src/Controller/CustomerReorderAction.php +++ b/src/Controller/CustomerReorderAction.php @@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; final class CustomerReorderAction @@ -46,7 +47,10 @@ public function __invoke(Request $request): Response try { $reorder = $this->reorderer->reorder($order, $channel, $customer); } catch (InvalidArgumentException $exception) { - $this->requestStack->getSession()->getFlashBag()->add('info', $exception->getMessage()); + $session = $this->requestStack->getSession(); + if ($session instanceof Session) { + $session->getFlashBag()->add('info', $exception->getMessage()); + } return new RedirectResponse($this->urlGenerator->generate('sylius_shop_account_order_index')); } diff --git a/src/Factory/OrderFactory.php b/src/Factory/OrderFactory.php index e60cd0f..0cdb892 100644 --- a/src/Factory/OrderFactory.php +++ b/src/Factory/OrderFactory.php @@ -11,6 +11,9 @@ final class OrderFactory implements OrderFactoryInterface { + /** + * @param FactoryInterface $baseOrderFactory + */ public function __construct(private FactoryInterface $baseOrderFactory, private ReorderProcessor $reorderProcessor) { } @@ -18,7 +21,6 @@ public function __construct(private FactoryInterface $baseOrderFactory, private public function createFromExistingOrder(OrderInterface $order, ChannelInterface $channel): OrderInterface { $reorder = $this->baseOrderFactory->createNew(); - assert($reorder instanceof OrderInterface); $reorder->setChannel($channel); $this->reorderProcessor->process($order, $reorder); diff --git a/src/ReorderEligibility/ItemsOutOfStockEligibilityChecker.php b/src/ReorderEligibility/ItemsOutOfStockEligibilityChecker.php index 49b55a0..0752fae 100644 --- a/src/ReorderEligibility/ItemsOutOfStockEligibilityChecker.php +++ b/src/ReorderEligibility/ItemsOutOfStockEligibilityChecker.php @@ -19,6 +19,7 @@ public function __construct( public function check(OrderInterface $order, OrderInterface $reorder): array { + /** @var string[] $productsOutOfStock */ $productsOutOfStock = []; foreach ($order->getItems()->getValues() as $orderItem) { @@ -29,7 +30,7 @@ public function check(OrderInterface $order, OrderInterface $reorder): array /** @var ProductVariantInterface $productVariant */ $productVariant = $orderItem->getVariant(); if (!$this->availabilityChecker->isStockAvailable($productVariant)) { - $productsOutOfStock[] = $orderItem->getProductName(); + $productsOutOfStock[] = (string) $orderItem->getProductName(); } } diff --git a/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatter.php b/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatter.php index d0aa8f8..cdbf3c2 100644 --- a/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatter.php +++ b/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatter.php @@ -11,15 +11,10 @@ public function format(array $messageParameters): string $message = ''; if (count($messageParameters) === 1) { - /** @var string $message */ - $message = array_pop($messageParameters); - - return $message; + return array_pop($messageParameters); } - /** @var string $lastMessageParameter */ $lastMessageParameter = end($messageParameters); - /** @var string $messageParameter */ foreach ($messageParameters as $messageParameter) { $message .= $messageParameter . (($messageParameter !== $lastMessageParameter) ? ', ' : ''); } diff --git a/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatterInterface.php b/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatterInterface.php index c7a2d11..10ca7d8 100644 --- a/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatterInterface.php +++ b/src/ReorderEligibility/ReorderEligibilityConstraintMessageFormatterInterface.php @@ -6,6 +6,6 @@ interface ReorderEligibilityConstraintMessageFormatterInterface { - /** @var string[] $messageParameters */ + /** @param string[] $messageParameters */ public function format(array $messageParameters): string; } diff --git a/src/ReorderEligibility/ReorderPromotionsEligibilityChecker.php b/src/ReorderEligibility/ReorderPromotionsEligibilityChecker.php index dbe8b0b..9438dcf 100644 --- a/src/ReorderEligibility/ReorderPromotionsEligibilityChecker.php +++ b/src/ReorderEligibility/ReorderPromotionsEligibilityChecker.php @@ -23,12 +23,13 @@ public function check(OrderInterface $order, OrderInterface $reorder): array return []; } + /** @var string[] $disabledPromotions */ $disabledPromotions = []; /** @var PromotionInterface $promotion */ foreach ($order->getPromotions()->getValues() as $promotion) { if (!in_array($promotion, $reorder->getPromotions()->getValues(), true)) { - $disabledPromotions[] = $promotion->getName(); + $disabledPromotions[] = (string) $promotion->getName(); } } diff --git a/src/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessor.php b/src/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessor.php index ce11621..bd65881 100644 --- a/src/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessor.php +++ b/src/ReorderEligibility/ResponseProcessing/ReorderEligibilityCheckerResponseProcessor.php @@ -18,10 +18,13 @@ public function process(array $responses): void { /** @var ReorderEligibilityCheckerResponse $response */ foreach ($responses as $response) { - $this->requestStack->getSession()->getFlashBag()->add('info', [ - 'message' => $response->getMessage(), - 'parameters' => $response->getParameters(), - ]); + $session = $this->requestStack->getSession(); + if ($session instanceof Session) { + $session->getFlashBag()->add('info', [ + 'message' => $response->getMessage(), + 'parameters' => $response->getParameters(), + ]); + } } } } diff --git a/src/ReorderProcessing/ReorderItemsProcessor.php b/src/ReorderProcessing/ReorderItemsProcessor.php index 1ec7106..e6e578e 100644 --- a/src/ReorderProcessing/ReorderItemsProcessor.php +++ b/src/ReorderProcessing/ReorderItemsProcessor.php @@ -14,6 +14,9 @@ final class ReorderItemsProcessor implements ReorderProcessor { + /** + * @param FactoryInterface $orderItemFactory + */ public function __construct( private OrderItemQuantityModifierInterface $orderItemQuantityModifier, private OrderModifierInterface $orderModifier, @@ -42,8 +45,6 @@ public function process(OrderInterface $order, OrderInterface $reorder): void } else { $reorderItemQuantity = $orderItem->getQuantity(); } - - /** @var OrderItemInterface $newItem */ $newItem = $this->orderItemFactory->createNew(); $newItem->setVariant($productVariant);