mirror of
https://github.com/wiosna-dev/limesurvey-api-client.git
synced 2026-03-12 10:11:49 +01:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72480ecc27 | ||
|
|
20d7d2f50d | ||
|
|
f5bafdc969 | ||
|
|
0eb6cc85a2 |
@@ -3,7 +3,7 @@
|
|||||||
"description": "Client of LimeSurvey API",
|
"description": "Client of LimeSurvey API",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"version": "0.0.2",
|
"version": "0.0.3",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Meritoo",
|
"name": "Meritoo",
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ class Client
|
|||||||
public function run($method, $arguments = [])
|
public function run($method, $arguments = [])
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Let's validate method
|
* Let's validate method.
|
||||||
|
* It's called in the JsonRpcClientManager::runMethod() too, but I want to verify it before getting session key.
|
||||||
*/
|
*/
|
||||||
$method = MethodType::getValidatedMethod($method);
|
$method = MethodType::getValidatedMethod($method);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Meritoo\LimeSurvey\ApiClient\Exception;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Meritoo\Common\Utilities\Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An exception used when an error occurred while running method
|
||||||
|
*
|
||||||
|
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
|
||||||
|
* @copyright Meritoo.pl
|
||||||
|
*/
|
||||||
|
class InvalidResultOfMethodRunException extends Exception
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Class constructor
|
||||||
|
*
|
||||||
|
* @param Exception $previousException The previous exception, source of an error
|
||||||
|
* @param string $methodName Name of called method
|
||||||
|
* @param array $methodArguments (optional) Arguments of the called method
|
||||||
|
*/
|
||||||
|
public function __construct(Exception $previousException, $methodName, array $methodArguments = [])
|
||||||
|
{
|
||||||
|
$template = "Oops, an error occurred while running method. Is there everything ok? Details:\n"
|
||||||
|
. "- error: %s,\n"
|
||||||
|
. "- method: %s,\n"
|
||||||
|
. '- arguments: %s.';
|
||||||
|
|
||||||
|
if (empty($methodArguments)) {
|
||||||
|
$methodArguments = '(no arguments)';
|
||||||
|
} else {
|
||||||
|
$methodArguments = Arrays::valuesKeys2string($methodArguments, ', ', '=', '"');
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = sprintf($template, $previousException->getMessage(), $methodName, $methodArguments);
|
||||||
|
parent::__construct($message, $previousException->getCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
namespace Meritoo\LimeSurvey\ApiClient\Exception;
|
namespace Meritoo\LimeSurvey\ApiClient\Exception;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
namespace Meritoo\LimeSurvey\ApiClient\Manager;
|
namespace Meritoo\LimeSurvey\ApiClient\Manager;
|
||||||
|
|
||||||
use JsonRPC\Client as RpcClient;
|
use JsonRPC\Client as RpcClient;
|
||||||
|
use JsonRPC\Exception\InvalidJsonFormatException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
|
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\InvalidResultOfMethodRunException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
|
|
||||||
@@ -47,14 +49,22 @@ class JsonRpcClientManager
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
*
|
*
|
||||||
* @throws UnknownMethodException
|
* @throws UnknownMethodException
|
||||||
|
* @throws InvalidResultOfMethodRunException
|
||||||
*/
|
*/
|
||||||
public function runMethod($method, $arguments = [])
|
public function runMethod($method, $arguments = [])
|
||||||
{
|
{
|
||||||
|
$result = null;
|
||||||
$method = MethodType::getValidatedMethod($method);
|
$method = MethodType::getValidatedMethod($method);
|
||||||
|
|
||||||
return $this
|
try {
|
||||||
->getRpcClient()
|
$result = $this
|
||||||
->execute($method, $arguments);
|
->getRpcClient()
|
||||||
|
->execute($method, $arguments);
|
||||||
|
} catch (InvalidJsonFormatException $exception) {
|
||||||
|
throw new InvalidResultOfMethodRunException($exception, $method);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class MethodType extends BaseType
|
|||||||
*/
|
*/
|
||||||
public static function getValidatedMethod($method)
|
public static function getValidatedMethod($method)
|
||||||
{
|
{
|
||||||
if ((new static())->isCorrectType($method)) {
|
if ((new static())->isCorrectType($method) || (new SystemMethodType())->isCorrectType($method)) {
|
||||||
return $method;
|
return $method;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Meritoo\LimeSurvey\Test\ApiClient\Exception;
|
||||||
|
|
||||||
|
use Generator;
|
||||||
|
use Meritoo\Common\Test\Base\BaseTestCase;
|
||||||
|
use Meritoo\Common\Type\OopVisibilityType;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\CreateSessionKeyFailedException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case of an exception used while create of the session key has failed
|
||||||
|
*
|
||||||
|
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
|
||||||
|
* @copyright Meritoo.pl
|
||||||
|
*/
|
||||||
|
class CreateSessionKeyFailedExceptionTest extends BaseTestCase
|
||||||
|
{
|
||||||
|
public function testConstructorVisibilityAndArguments()
|
||||||
|
{
|
||||||
|
static::assertConstructorVisibilityAndArguments(CreateSessionKeyFailedException::class, OopVisibilityType::IS_PUBLIC, 1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $reason Reason of failure, e.g. "Invalid user name or password"
|
||||||
|
* @param string $expectedMessage Expected exception's message
|
||||||
|
*
|
||||||
|
* @dataProvider provideReason
|
||||||
|
*/
|
||||||
|
public function testConstructorMessage($reason, $expectedMessage)
|
||||||
|
{
|
||||||
|
$exception = new CreateSessionKeyFailedException($reason);
|
||||||
|
static::assertEquals($expectedMessage, $exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides reason of failure
|
||||||
|
*
|
||||||
|
* @return Generator
|
||||||
|
*/
|
||||||
|
public function provideReason()
|
||||||
|
{
|
||||||
|
$shortMessage = 'Create of the session key has failed';
|
||||||
|
$longMessageTemplate = sprintf('%s. Reason: \'%s\'.', $shortMessage, '%s');
|
||||||
|
|
||||||
|
yield[
|
||||||
|
'',
|
||||||
|
$shortMessage,
|
||||||
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
'Invalid user name or password',
|
||||||
|
sprintf($longMessageTemplate, 'Invalid user name or password'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Meritoo\LimeSurvey\Test\ApiClient\Exception;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Generator;
|
||||||
|
use Meritoo\Common\Test\Base\BaseTestCase;
|
||||||
|
use Meritoo\Common\Type\OopVisibilityType;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\InvalidResultOfMethodRunException;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case of an exception used when an error occurred while running method
|
||||||
|
*
|
||||||
|
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
|
||||||
|
* @copyright Meritoo.pl
|
||||||
|
*/
|
||||||
|
class InvalidResultOfMethodRunExceptionTest extends BaseTestCase
|
||||||
|
{
|
||||||
|
public function testConstructorVisibilityAndArguments()
|
||||||
|
{
|
||||||
|
static::assertConstructorVisibilityAndArguments(InvalidResultOfMethodRunException::class, OopVisibilityType::IS_PUBLIC, 3, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Exception $previousException The previous exception, source of an error
|
||||||
|
* @param string $methodName Name of called method
|
||||||
|
* @param array $methodArguments Arguments of the called method
|
||||||
|
* @param string $expectedMessage Expected exception's message
|
||||||
|
*
|
||||||
|
* @dataProvider providePreviousExceptionAndMethod
|
||||||
|
*/
|
||||||
|
public function testConstructorMessage(Exception $previousException, $methodName, array $methodArguments, $expectedMessage)
|
||||||
|
{
|
||||||
|
$exception = new InvalidResultOfMethodRunException($previousException, $methodName, $methodArguments);
|
||||||
|
static::assertEquals($expectedMessage, $exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides previous exception, name and arguments of called method
|
||||||
|
*
|
||||||
|
* @return Generator
|
||||||
|
*/
|
||||||
|
public function providePreviousExceptionAndMethod()
|
||||||
|
{
|
||||||
|
$template = "Oops, an error occurred while running method. Is there everything ok? Details:\n"
|
||||||
|
. "- error: %s,\n"
|
||||||
|
. "- method: %s,\n"
|
||||||
|
. '- arguments: %s.';
|
||||||
|
|
||||||
|
yield[
|
||||||
|
new Exception('Lorem ipsum'),
|
||||||
|
MethodType::ADD_RESPONSE,
|
||||||
|
[],
|
||||||
|
sprintf($template, 'Lorem ipsum', MethodType::ADD_RESPONSE, '(no arguments)'),
|
||||||
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
new Exception('Dolor sit amet'),
|
||||||
|
MethodType::LIST_SURVEYS,
|
||||||
|
[
|
||||||
|
'fist_name' => 'John',
|
||||||
|
'last_name' => 'Scott',
|
||||||
|
'email' => 'john@scott.com',
|
||||||
|
],
|
||||||
|
sprintf($template, 'Dolor sit amet', MethodType::LIST_SURVEYS, 'fist_name="John", last_name="Scott", email="john@scott.com"'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Meritoo\LimeSurvey\Test\ApiClient\Exception;
|
||||||
|
|
||||||
|
use Generator;
|
||||||
|
use Meritoo\Common\Test\Base\BaseTestCase;
|
||||||
|
use Meritoo\Common\Type\OopVisibilityType;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownInstanceOfResultItem;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Result\Processor\ResultProcessor;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case of an exception used while instance of one item used by result, with data fetched from the LimeSurvey's
|
||||||
|
* API, is unknown
|
||||||
|
*
|
||||||
|
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
|
||||||
|
* @copyright Meritoo.pl
|
||||||
|
*/
|
||||||
|
class UnknownInstanceOfResultItemTest extends BaseTestCase
|
||||||
|
{
|
||||||
|
public function testConstructorVisibilityAndArguments()
|
||||||
|
{
|
||||||
|
static::assertConstructorVisibilityAndArguments(UnknownInstanceOfResultItem::class, OopVisibilityType::IS_PUBLIC, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $method Name of called method while talking to the LimeSurvey's API. One of the
|
||||||
|
* MethodType class constants.
|
||||||
|
* @param string $expectedMessage Expected exception's message
|
||||||
|
*
|
||||||
|
* @dataProvider provideMethodName
|
||||||
|
*/
|
||||||
|
public function testConstructorMessage($method, $expectedMessage)
|
||||||
|
{
|
||||||
|
$exception = new UnknownInstanceOfResultItem($method);
|
||||||
|
static::assertEquals($expectedMessage, $exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides name of called method
|
||||||
|
*
|
||||||
|
* @return Generator
|
||||||
|
*/
|
||||||
|
public function provideMethodName()
|
||||||
|
{
|
||||||
|
$template = 'Instance of one item used by result the of \'%s\' LimeSurvey API\'s method is unknown. Proper'
|
||||||
|
. ' class is not mapped in %s::%s() method. Did you forget about this?';
|
||||||
|
|
||||||
|
yield[
|
||||||
|
MethodType::LIST_SURVEYS,
|
||||||
|
sprintf($template, MethodType::LIST_SURVEYS, ResultProcessor::class, 'getItemInstance'),
|
||||||
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
MethodType::ADD_PARTICIPANTS,
|
||||||
|
sprintf($template, MethodType::ADD_PARTICIPANTS, ResultProcessor::class, 'getItemInstance'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (c) Meritoo.pl, http://www.meritoo.pl
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Meritoo\LimeSurvey\Test\ApiClient\Exception;
|
||||||
|
|
||||||
|
use Generator;
|
||||||
|
use Meritoo\Common\Test\Base\BaseTestCase;
|
||||||
|
use Meritoo\Common\Type\OopVisibilityType;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case of an exception used while name of method used while talking to the LimeSurvey's API is unknown
|
||||||
|
*
|
||||||
|
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
|
||||||
|
* @copyright Meritoo.pl
|
||||||
|
*/
|
||||||
|
class UnknownMethodExceptionTest extends BaseTestCase
|
||||||
|
{
|
||||||
|
public function testConstructorVisibilityAndArguments()
|
||||||
|
{
|
||||||
|
static::assertConstructorVisibilityAndArguments(UnknownMethodException::class, OopVisibilityType::IS_PUBLIC, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $unknownType The unknown type of something (value of constant)
|
||||||
|
* @param string $expectedMessage Expected exception's message
|
||||||
|
*
|
||||||
|
* @dataProvider provideUnknownType
|
||||||
|
*/
|
||||||
|
public function testConstructorMessage($unknownType, $expectedMessage)
|
||||||
|
{
|
||||||
|
$exception = new UnknownMethodException($unknownType);
|
||||||
|
static::assertEquals($expectedMessage, $exception->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides name of called method
|
||||||
|
*
|
||||||
|
* @return Generator
|
||||||
|
*/
|
||||||
|
public function provideUnknownType()
|
||||||
|
{
|
||||||
|
$allMethods = implode(', ', (new MethodType())->getAll());
|
||||||
|
|
||||||
|
$template = 'The \'%s\' type of name of method used while talking to the LimeSurvey\'s API is unknown. Probably'
|
||||||
|
. ' doesn\'t exist or there is a typo. You should use one of these types: %s.';
|
||||||
|
|
||||||
|
yield[
|
||||||
|
MethodType::ADD_PARTICIPANTS,
|
||||||
|
sprintf($template, MethodType::ADD_PARTICIPANTS, $allMethods),
|
||||||
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
MethodType::ADD_PARTICIPANTS,
|
||||||
|
sprintf($template, MethodType::ADD_PARTICIPANTS, $allMethods),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,9 +9,11 @@
|
|||||||
namespace Meritoo\LimeSurvey\Test\ApiClient\Manager;
|
namespace Meritoo\LimeSurvey\Test\ApiClient\Manager;
|
||||||
|
|
||||||
use JsonRPC\Client as RpcClient;
|
use JsonRPC\Client as RpcClient;
|
||||||
|
use JsonRPC\Exception\InvalidJsonFormatException;
|
||||||
use Meritoo\Common\Test\Base\BaseTestCase;
|
use Meritoo\Common\Test\Base\BaseTestCase;
|
||||||
use Meritoo\Common\Type\OopVisibilityType;
|
use Meritoo\Common\Type\OopVisibilityType;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
|
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\InvalidResultOfMethodRunException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Manager\JsonRpcClientManager;
|
use Meritoo\LimeSurvey\ApiClient\Manager\JsonRpcClientManager;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
use Meritoo\LimeSurvey\Test\ApiClient\Result\Item\SurveyTest;
|
use Meritoo\LimeSurvey\Test\ApiClient\Result\Item\SurveyTest;
|
||||||
@@ -36,7 +38,7 @@ class JsonRpcClientManagerTest extends BaseTestCase
|
|||||||
static::assertConstructorVisibilityAndArguments(JsonRpcClientManager::class, OopVisibilityType::IS_PUBLIC, 1, 1);
|
static::assertConstructorVisibilityAndArguments(JsonRpcClientManager::class, OopVisibilityType::IS_PUBLIC, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testRunMethod()
|
public function testRunMethodWithEmptyArrayReturned()
|
||||||
{
|
{
|
||||||
$rpcClient = $this->createMock(RpcClient::class);
|
$rpcClient = $this->createMock(RpcClient::class);
|
||||||
|
|
||||||
@@ -51,12 +53,12 @@ class JsonRpcClientManagerTest extends BaseTestCase
|
|||||||
->getMock();
|
->getMock();
|
||||||
|
|
||||||
$rpcClient
|
$rpcClient
|
||||||
->expects(static::any())
|
->expects(static::once())
|
||||||
->method('execute')
|
->method('execute')
|
||||||
->willReturn([]);
|
->willReturn([]);
|
||||||
|
|
||||||
$manager
|
$manager
|
||||||
->expects(static::any())
|
->expects(static::once())
|
||||||
->method('getRpcClient')
|
->method('getRpcClient')
|
||||||
->willReturn($rpcClient);
|
->willReturn($rpcClient);
|
||||||
|
|
||||||
@@ -64,18 +66,18 @@ class JsonRpcClientManagerTest extends BaseTestCase
|
|||||||
static::assertEquals([], $manager->runMethod(MethodType::LIST_SURVEYS));
|
static::assertEquals([], $manager->runMethod(MethodType::LIST_SURVEYS));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testRunMethodWithMockedRpcClient()
|
public function testRunMethodWithRawDataReturned()
|
||||||
{
|
{
|
||||||
$rpcClient = $this->createMock(RpcClient::class);
|
$rpcClient = $this->createMock(RpcClient::class);
|
||||||
$manager = $this->createPartialMock(JsonRpcClientManager::class, ['getRpcClient']);
|
$manager = $this->createPartialMock(JsonRpcClientManager::class, ['getRpcClient']);
|
||||||
|
|
||||||
$rpcClient
|
$rpcClient
|
||||||
->expects(static::any())
|
->expects(static::once())
|
||||||
->method('execute')
|
->method('execute')
|
||||||
->willReturn(SurveyTest::getSurveysRawData());
|
->willReturn(SurveyTest::getSurveysRawData());
|
||||||
|
|
||||||
$manager
|
$manager
|
||||||
->expects(static::any())
|
->expects(static::once())
|
||||||
->method('getRpcClient')
|
->method('getRpcClient')
|
||||||
->willReturn($rpcClient);
|
->willReturn($rpcClient);
|
||||||
|
|
||||||
@@ -83,6 +85,27 @@ class JsonRpcClientManagerTest extends BaseTestCase
|
|||||||
static::assertEquals(SurveyTest::getSurveysRawData(), $manager->runMethod(MethodType::LIST_SURVEYS));
|
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()
|
public function testGetRpcClientVisibilityAndArguments()
|
||||||
{
|
{
|
||||||
static::assertMethodVisibilityAndArguments(JsonRpcClientManager::class, 'getRpcClient', OopVisibilityType::IS_PROTECTED);
|
static::assertMethodVisibilityAndArguments(JsonRpcClientManager::class, 'getRpcClient', OopVisibilityType::IS_PROTECTED);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ use Generator;
|
|||||||
use Meritoo\Common\Test\Base\BaseTypeTestCase;
|
use Meritoo\Common\Test\Base\BaseTypeTestCase;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Type\SystemMethodType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test case of the type of method used while talking with LimeSurvey's API
|
* Test case of the type of method used while talking with LimeSurvey's API
|
||||||
@@ -88,6 +89,14 @@ class MethodTypeTest extends BaseTypeTestCase
|
|||||||
yield[
|
yield[
|
||||||
MethodType::LIST_SURVEYS,
|
MethodType::LIST_SURVEYS,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
SystemMethodType::GET_SESSION_KEY,
|
||||||
|
];
|
||||||
|
|
||||||
|
yield[
|
||||||
|
SystemMethodType::RELEASE_SESSION_KEY,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user