assertArrayHasKey(KernelEvents::EXCEPTION, $events); $methodName = $events[KernelEvents::EXCEPTION][0]; $this->assertTrue(method_exists(PagerfantaExceptionSubscriber::class, $methodName)); } public function testWithExceptions() { $sut = new PagerfantaExceptionSubscriber(); $kernel = $this->createMock(HttpKernelInterface::class); $request = $this->createMock(Request::class); $exception = new \Exception(); $requestType = HttpKernelInterface::MASTER_REQUEST; $event = new ExceptionEvent($kernel, $request, $requestType, $exception); $sut->onCoreException($event); self::assertSame($exception, $event->getThrowable()); $event = new ExceptionEvent($kernel, $request, $requestType, new NotValidMaxPerPageException('Foo baaaaar!', 999)); $sut->onCoreException($event); self::assertInstanceOf(NotFoundHttpException::class, $event->getThrowable()); self::assertEquals('Foo baaaaar!', $event->getThrowable()->getMessage()); self::assertEquals(999, $event->getThrowable()->getCode()); self::assertEquals(404, $event->getThrowable()->getStatusCode()); $event = new ExceptionEvent($kernel, $request, $requestType, new OutOfRangeCurrentPageException('Trölölölölölö', 123)); $sut->onCoreException($event); self::assertInstanceOf(NotFoundHttpException::class, $event->getThrowable()); self::assertEquals('Trölölölölölö', $event->getThrowable()->getMessage()); self::assertEquals(123, $event->getThrowable()->getCode()); self::assertEquals(404, $event->getThrowable()->getStatusCode()); } }