SurveyService - getAllSurveys() method - catch and serve an exception while fetching all surveys

This commit is contained in:
Meritoo
2017-09-29 16:55:04 +02:00
parent ab328b96ee
commit d54765b378
5 changed files with 82 additions and 6 deletions

View File

@@ -208,7 +208,7 @@ class ParticipantServiceTest extends BaseTestCase
}
/**
* Returns manager of the JsonRPC client used while connecting to LimeSurvey's API
* Returns manager of the JsonRPC client used while connecting to LimeSurvey's API with mocked method runMethod()
*
* @param int $runMethodCallCount Count of calls of the runMethod() method (who is mocked)
* @param array $runMethodCallResults (optional) Results of calls of the runMethod() method (who is mocked)

View File

@@ -8,15 +8,18 @@
namespace Meritoo\LimeSurvey\Test\ApiClient\Service;
use Exception;
use Meritoo\Common\Collection\Collection;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\LimeSurvey\ApiClient\Client\Client;
use Meritoo\LimeSurvey\ApiClient\Configuration\ConnectionConfiguration;
use Meritoo\LimeSurvey\ApiClient\Exception\CannotProcessDataException;
use Meritoo\LimeSurvey\ApiClient\Manager\JsonRpcClientManager;
use Meritoo\LimeSurvey\ApiClient\Manager\SessionManager;
use Meritoo\LimeSurvey\ApiClient\Result\Item\Survey;
use Meritoo\LimeSurvey\ApiClient\Service\SurveyService;
use Meritoo\LimeSurvey\ApiClient\Type\ReasonType;
use PHPUnit_Framework_MockObject_MockObject;
/**
@@ -66,6 +69,29 @@ class SurveyServiceTest extends BaseTestCase
static::assertEquals($client, $surveyService->getClient());
}
public function testGetAllSurveysWithImportantException()
{
$this->expectException(CannotProcessDataException::class);
$exception = new CannotProcessDataException(ReasonType::NO_TOKEN_TABLE);
$rpcClientManager = $this->getJsonRpcClientManagerWithException(1, $exception);
$sessionManager = $this->getSessionManager();
$this->createServiceWithoutSurveys($rpcClientManager, $sessionManager);
$this->serviceWithoutSurveys->getAllSurveys();
}
public function testGetAllSurveysWithNoSurveysException()
{
$exception = new CannotProcessDataException(ReasonType::NO_SURVEYS_FOUND);
$rpcClientManager = $this->getJsonRpcClientManagerWithException(1, $exception);
$sessionManager = $this->getSessionManager();
$this->createServiceWithoutSurveys($rpcClientManager, $sessionManager);
static::assertCount(0, $this->serviceWithoutSurveys->getAllSurveys());
}
public function testGetAllSurveys()
{
$rpcClientManager = $this->getJsonRpcClientManager(1);
@@ -115,7 +141,7 @@ class SurveyServiceTest extends BaseTestCase
}
/**
* Returns manager of the JsonRPC client used while connecting to LimeSurvey's API
* Returns manager of the JsonRPC client used while connecting to LimeSurvey's API with mocked method runMethod()
*
* @param int $runMethodCallCount Count of calls of the runMethod() method (who is mocked)
* @param array $runMethodCallResults (optional) Results of calls of the runMethod() method (who is mocked)
@@ -133,6 +159,26 @@ class SurveyServiceTest extends BaseTestCase
return $rpcClientManager;
}
/**
* Returns manager of the JsonRPC client used while connecting to LimeSurvey's API with mocked method runMethod()
* that throws an exception
*
* @param int $runMethodCallCount Count of calls of the runMethod() method (who is mocked)
* @param Exception $exception The exception that should be thrown
* @return PHPUnit_Framework_MockObject_MockObject
*/
private function getJsonRpcClientManagerWithException($runMethodCallCount, Exception $exception)
{
$rpcClientManager = $this->createMock(JsonRpcClientManager::class);
$rpcClientManager
->expects(static::exactly($runMethodCallCount))
->method('runMethod')
->willThrowException($exception);
return $rpcClientManager;
}
/**
* Creates instance of the tested service without surveys
*