Catch an exception while running method (e.g. "Malformed payload") & throw custom exception

This commit is contained in:
Meritoo
2017-09-26 12:49:59 +02:00
parent f5bafdc969
commit 20d7d2f50d
4 changed files with 156 additions and 3 deletions

View File

@@ -9,9 +9,11 @@
namespace Meritoo\LimeSurvey\Test\ApiClient\Manager;
use JsonRPC\Client as RpcClient;
use JsonRPC\Exception\InvalidJsonFormatException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
use Meritoo\LimeSurvey\ApiClient\Exception\InvalidResultOfMethodRunException;
use Meritoo\LimeSurvey\ApiClient\Manager\JsonRpcClientManager;
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
use Meritoo\LimeSurvey\Test\ApiClient\Result\Item\SurveyTest;
@@ -83,6 +85,27 @@ class JsonRpcClientManagerTest extends BaseTestCase
static::assertEquals(SurveyTest::getSurveysRawData(), $manager->runMethod(MethodType::LIST_SURVEYS));
}
public function testRunMethodWithException()
{
$this->expectException(InvalidResultOfMethodRunException::class);
$manager = $this->createPartialMock(JsonRpcClientManager::class, ['getRpcClient']);
$rpcClient = $this->createMock(RpcClient::class);
$rpcClient
->expects(self::once())
->method('execute')
->willThrowException(new InvalidJsonFormatException('bla bla'));
$manager
->expects(static::once())
->method('getRpcClient')
->willReturn($rpcClient);
/* @var JsonRpcClientManager $manager */
$manager->runMethod(MethodType::LIST_SURVEYS);
}
public function testGetRpcClientVisibilityAndArguments()
{
static::assertMethodVisibilityAndArguments(JsonRpcClientManager::class, 'getRpcClient', OopVisibilityType::IS_PROTECTED);