From 88e30c62e1c451b94d2e88b73626466d33ced0c1 Mon Sep 17 00:00:00 2001 From: Jasper Smulders Date: Thu, 21 Sep 2023 10:33:14 +0200 Subject: [PATCH 1/2] Fix failing unit tests --- src/Form/Simple/SimpleFormProvider.php | 30 ++++++++++-------- test/Form/Simple/SimpleFormProviderTest.php | 5 +++ test/FormHandler/FormSubmitProcessorTest.php | 31 ++++++++++++------- .../HandlerBackwardsCompatibilityTest.php | 10 ++++-- test/FormHandler/HandlerBuilderTest.php | 14 ++++----- test/FormHandler/HandlerTest.php | 10 +++--- test/FormHandler/LegacyHandlerTest.php | 6 ++-- 7 files changed, 65 insertions(+), 41 deletions(-) diff --git a/src/Form/Simple/SimpleFormProvider.php b/src/Form/Simple/SimpleFormProvider.php index 322f266..74c7c95 100644 --- a/src/Form/Simple/SimpleFormProvider.php +++ b/src/Form/Simple/SimpleFormProvider.php @@ -39,19 +39,23 @@ public function handle(Request $request, FormHandlerInterface $handler, FormInte if (null !== $form) { $handler->setForm($form); } elseif (null === ($form = $handler->getForm())) { - if ($handler instanceof NamedFormHandlerInterface && null !== ($name = $handler->getName())) { - $form = $this->form_factory->createNamed( - $name, - $handler->getType(), - $handler->getData(), - $handler->getOptions() - ); - } else { - $form = $this->form_factory->create( - $handler->getType(), - $handler->getData(), - $handler->getOptions() - ); + try { + if ($handler instanceof NamedFormHandlerInterface && null !== ($name = $handler->getName())) { + $form = $this->form_factory->createNamed( + $name, + $handler->getType(), + $handler->getData(), + $handler->getOptions() + ); + } else { + $form = $this->form_factory->create( + $handler->getType(), + $handler->getData(), + $handler->getOptions() + ); + } + } catch (\InvalidArgumentException $e) { + $form = null; } if (!$form instanceof FormInterface) { diff --git a/test/Form/Simple/SimpleFormProviderTest.php b/test/Form/Simple/SimpleFormProviderTest.php index 6a4864e..e91475c 100644 --- a/test/Form/Simple/SimpleFormProviderTest.php +++ b/test/Form/Simple/SimpleFormProviderTest.php @@ -10,6 +10,7 @@ use Hostnet\Component\Form\FormHandlerInterface; use Hostnet\Component\Form\NamedFormHandlerInterface; use PHPUnit\Framework\TestCase; +use Prophecy\Argument; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormInterface; @@ -211,6 +212,10 @@ public function testNoFormNotFound(): void ->method('getType') ->willReturn(FormType::class); + $this->factory + ->method("create") + ->willThrowException(new \InvalidArgumentException()); + $provider = new SimpleFormProvider($this->factory); $this->expectException(FormNotFoundException::class); diff --git a/test/FormHandler/FormSubmitProcessorTest.php b/test/FormHandler/FormSubmitProcessorTest.php index 16200c2..5102b22 100644 --- a/test/FormHandler/FormSubmitProcessorTest.php +++ b/test/FormHandler/FormSubmitProcessorTest.php @@ -66,9 +66,10 @@ public function testFailureWithArrayCallables(): void [$this, 'callbackFailure'] ); - $request = Request::create('/', 'POST'); + $request = Request::create('/', 'POST'); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(false); $this->form->getData()->willReturn([]); @@ -84,9 +85,10 @@ public function testSuccessWithArrayCallables(): void [$this, 'callbackFailure'] ); - $request = Request::create('/', 'POST'); + $request = Request::create('/', 'POST'); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(true); $this->form->getData()->willReturn([]); @@ -120,9 +122,10 @@ public function testGetForm(): void public function testSubmitNotSubmitted(): void { - $request = Request::create('/', 'POST'); + $request = Request::create('/', 'POST'); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(false); self::assertNull($this->form_submit_processor->process($request)); @@ -130,9 +133,10 @@ public function testSubmitNotSubmitted(): void public function testSubmitValid(): void { - $request = Request::create('/', 'POST'); + $request = Request::create('/', 'POST'); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(true); $this->form->getData()->willReturn([]); @@ -144,8 +148,9 @@ public function testSubmitValidNoHandler(): void { $request = Request::create('/', 'POST'); $form_submit_processor = new FormSubmitProcessor($this->form->reveal()); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(true); $this->form->getData()->willReturn([]); @@ -155,9 +160,10 @@ public function testSubmitValidNoHandler(): void public function testSubmitInvalid(): void { - $request = Request::create('/', 'POST'); + $request = Request::create('/', 'POST'); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(false); $this->form->getData()->willReturn([]); @@ -169,8 +175,9 @@ public function testSubmitInvalidNoHandler(): void { $request = Request::create('/', 'POST'); $form_submit_processor = new FormSubmitProcessor($this->form->reveal()); + $form_interface = $this->prophesize(FormInterface::class); - $this->form->handleRequest($request)->shouldBeCalled(); + $this->form->handleRequest($request)->shouldBeCalled()->willReturn($form_interface); $this->form->isSubmitted()->willReturn(true); $this->form->isValid()->willReturn(false); $this->form->getData()->willReturn([]); diff --git a/test/FormHandler/HandlerBackwardsCompatibilityTest.php b/test/FormHandler/HandlerBackwardsCompatibilityTest.php index 2d3dedf..b5592db 100644 --- a/test/FormHandler/HandlerBackwardsCompatibilityTest.php +++ b/test/FormHandler/HandlerBackwardsCompatibilityTest.php @@ -42,6 +42,9 @@ public function testGet(): void $form_factory->create(TestType::class, Argument::type(TestData::class), [])->willReturn($form); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); + $form->isSubmitted()->willReturn(false); + self::assertNull($handler_factory->create(LegacyFormHandler::class)->handle($request, $data)); } @@ -62,6 +65,9 @@ public function testGetOptions(): void ->create(TestType::class, Argument::type(TestData::class), ['attr' => ['class' => 'foobar']]) ->willReturn($form); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); + $form->isSubmitted()->willReturn(false); + self::assertNull($handler_factory->create(LegacyFormVariableOptionsHandler::class)->handle($request, $data)); } @@ -90,7 +96,7 @@ public function testPostSuccess(): void $data->test = 'foobar'; $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn($data); @@ -115,7 +121,7 @@ public function testPostFailure(): void $data->test = 'foobar'; $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(false); $form->getData()->willReturn($data); diff --git a/test/FormHandler/HandlerBuilderTest.php b/test/FormHandler/HandlerBuilderTest.php index c6df2c3..34bf630 100644 --- a/test/FormHandler/HandlerBuilderTest.php +++ b/test/FormHandler/HandlerBuilderTest.php @@ -32,7 +32,7 @@ public function testSetName(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn(null); @@ -53,7 +53,7 @@ public function testSetOptions(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn(null); @@ -74,7 +74,7 @@ public function testSetOptionsCallback(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn(null); @@ -99,7 +99,7 @@ public function testBuildSuccess(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn(null); @@ -125,7 +125,7 @@ public function testBuildFailure(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(false); $form->getData()->willReturn(null); @@ -152,7 +152,7 @@ public function testBuildSuccessCallback(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn(null); @@ -184,7 +184,7 @@ public function testBuildFailureCallback(): void $form_factory = $this->prophesize(FormFactoryInterface::class); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(false); $form->getData()->willReturn(null); diff --git a/test/FormHandler/HandlerTest.php b/test/FormHandler/HandlerTest.php index fe73da8..a666eee 100644 --- a/test/FormHandler/HandlerTest.php +++ b/test/FormHandler/HandlerTest.php @@ -39,7 +39,7 @@ public function testGetForm(): void $data = new TestData(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(false); $form_factory->create(TestType::class, Argument::type(TestData::class), [])->willReturn($form); @@ -107,7 +107,7 @@ public function testSimple(): void $data = new TestData(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn($data); @@ -131,7 +131,7 @@ public function testPostSuccess(): void $data = new TestData(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn($data); @@ -163,7 +163,7 @@ public function testPostSuccessSyncData(): void $data->test = 'foobar'; $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); $form->getData()->willReturn($data); @@ -191,7 +191,7 @@ public function testPostFailure(): void $data = new TestData(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(false); $form->getData()->willReturn($data); diff --git a/test/FormHandler/LegacyHandlerTest.php b/test/FormHandler/LegacyHandlerTest.php index aabf043..d10bedd 100644 --- a/test/FormHandler/LegacyHandlerTest.php +++ b/test/FormHandler/LegacyHandlerTest.php @@ -33,6 +33,8 @@ public function testGet(): void $handler = new LegacyFormHandler(); $form = $this->prophesize(FormInterface::class); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); + $form->isSubmitted()->willReturn(false); $form_factory->create(TestType::class, Argument::type(TestData::class), [])->willReturn($form); @@ -47,7 +49,7 @@ public function testPostSuccess(): void $handler = new LegacyFormHandler(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(true); @@ -67,7 +69,7 @@ public function testPostFailure(): void $handler = new LegacyFormHandler(); $form = $this->prophesize(FormInterface::class); - $form->handleRequest($request)->shouldBeCalled(); + $form->handleRequest($request)->shouldBeCalled()->willReturn($form); $form->isSubmitted()->willReturn(true); $form->isValid()->willReturn(false); From bf246df2b75ee502cc140cffaf8b3b3a817d563a Mon Sep 17 00:00:00 2001 From: Jasper Smulders Date: Thu, 21 Sep 2023 10:49:41 +0200 Subject: [PATCH 2/2] Fix codestyle --- test/Form/Simple/SimpleFormProviderTest.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/Form/Simple/SimpleFormProviderTest.php b/test/Form/Simple/SimpleFormProviderTest.php index e91475c..0b381fb 100644 --- a/test/Form/Simple/SimpleFormProviderTest.php +++ b/test/Form/Simple/SimpleFormProviderTest.php @@ -10,7 +10,6 @@ use Hostnet\Component\Form\FormHandlerInterface; use Hostnet\Component\Form\NamedFormHandlerInterface; use PHPUnit\Framework\TestCase; -use Prophecy\Argument; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormInterface; @@ -213,7 +212,7 @@ public function testNoFormNotFound(): void ->willReturn(FormType::class); $this->factory - ->method("create") + ->method('create') ->willThrowException(new \InvalidArgumentException()); $provider = new SimpleFormProvider($this->factory);