Skip to content

Commit 828f4bf

Browse files
committed
Mark tests as skipped depending on available serializer
1 parent 08328d8 commit 828f4bf

2 files changed

Lines changed: 26 additions & 11 deletions

File tree

Tests/JsonRpcController1Test.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?php
22
namespace Wa72\JsonRpcBundle\Tests;
33

4+
use JMS\Serializer\SerializerInterface;
5+
use JMS\SerializerBundle\JMSSerializerBundle;
46
use Symfony\Component\HttpFoundation\Request;
57
use Wa72\JsonRpcBundle\Controller\JsonRpcController;
68
use Wa72\JsonRpcBundle\Tests\Fixtures\Testparameter;
@@ -15,14 +17,23 @@ class JsonRpcController1Test extends \PHPUnit\Framework\TestCase {
1517
private \Wa72JsonRpcBundleTestKernel1 $kernel;
1618

1719
private JsonRpcController $controller;
20+
private SerializerInterface $serializer;
1821

1922
public function setUp(): void
2023
{
24+
if (!class_exists(JMSSerializerBundle::class)) {
25+
if (interface_exists(\Symfony\Component\Serializer\SerializerInterface::class)) {
26+
//
27+
$this->markTestSkipped('JMS Serializer not available.');
28+
} else {
29+
$this->fail('No serializer available. Please install JMS Serializer Bundle or Symfony Serializer.');
30+
}
31+
}
2132
$this->kernel = new \Wa72JsonRpcBundleTestKernel1('test', false);
2233
$this->kernel->boot();
2334
$container = $this->kernel->getContainer();
24-
$config = $container->getParameter('wa72.jsonrpc');
25-
$this->controller = new JsonRpcController($this->kernel->getContainer(), $config);
35+
$this->serializer = $container->get('jms_serializer');
36+
$this->controller = $container->get('wa72_jsonrpc.jsonrpccontroller');
2637
}
2738

2839
public function testHello()

Tests/JsonRpcController2Test.php

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22

33
use Symfony\Component\HttpFoundation\Request;
4+
use Symfony\Component\Serializer\SerializerInterface;
45
use Wa72\JsonRpcBundle\Controller\JsonRpcController;
56
use Wa72\JsonRpcBundle\Tests\Fixtures\Testparameter;
67

@@ -15,11 +16,22 @@ class JsonRpcController2Test extends \PHPUnit\Framework\TestCase {
1516

1617
private JsonRpcController $controller;
1718

19+
private SerializerInterface $serializer;
20+
1821
public function setUp(): void
1922
{
23+
if (!interface_exists(SerializerInterface::class)) {
24+
if (class_exists(\JMS\SerializerBundle\JMSSerializerBundle::class)) {
25+
//
26+
$this->markTestSkipped('Symfony Serializer not available.');
27+
} else {
28+
$this->fail('No serializer available. Please install JMS Serializer Bundle or Symfony Serializer.');
29+
}
30+
}
2031
$this->kernel = new \Wa72JsonRpcBundleTestKernel2('test', true);
2132
$this->kernel->boot();
2233
$container = $this->kernel->getContainer();
34+
$this->serializer = $container->get('wa72_jsonrpc.serializer');
2335
$this->controller = $container->get('wa72_jsonrpc.jsonrpccontroller');
2436
}
2537

@@ -171,16 +183,8 @@ public function testAddMethod()
171183

172184
private function makeRequest($controller, $requestdata)
173185
{
174-
$container = $this->kernel->getContainer();
175-
if ($container->has('jms_serializer')) {
176-
$serializer = $container->get('jms_serializer');
177-
} elseif ($container->has('wa72_jsonrpc.serializer')) {
178-
$serializer = $container->get('wa72_jsonrpc.serializer');
179-
} else {
180-
$this->fail('No serializer service found in container.');
181-
}
182186
return json_decode($controller->execute(
183-
new Request([], [], [], [], [], [], $serializer->serialize($requestdata, 'json'))
187+
new Request([], [], [], [], [], [], $this->serializer->serialize($requestdata, 'json'))
184188
)->getContent(), true);
185189
}
186190

0 commit comments

Comments
 (0)