Participants collection - store instances of ParticipantShort instead of Participant

Required to fix bug "Call to undefined method Meritoo\LimeSurvey\ApiClient\Result\Item\ParticipantShort::isCompleted() in /src/Service/ParticipantService.php on line 206"
This commit is contained in:
Meritoo
2017-10-01 11:46:59 +02:00
parent 54bd0ca114
commit 41156ed058
5 changed files with 59 additions and 24 deletions

View File

@@ -14,6 +14,7 @@ use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\LimeSurvey\ApiClient\Result\Collection\Participants;
use Meritoo\LimeSurvey\ApiClient\Result\Item\Participant;
use Meritoo\LimeSurvey\ApiClient\Result\Item\ParticipantShort;
/**
* Test case of the collection of participants (of surveys)
@@ -126,11 +127,13 @@ class ParticipantsTest extends BaseTestCase
$surveyId = 1;
$email = 'john@scott.com';
$participant = new Participant([
'firstname' => 'John',
'lastname' => 'Scott',
'email' => $email,
'completed' => 'Y',
$participant = new ParticipantShort([
'tid' => 1,
'participant_info' => [
'firstname' => 'John',
'lastname' => 'Scott',
'email' => $email,
],
]);
$participants = new Participants();
@@ -148,11 +151,13 @@ class ParticipantsTest extends BaseTestCase
$surveyId = 1;
$email = 'john@scott.com';
$participant = new Participant([
'firstname' => 'John',
'lastname' => 'Scott',
'email' => $email,
'completed' => 'Y',
$participant = new ParticipantShort([
'tid' => 1,
'participant_info' => [
'firstname' => 'John',
'lastname' => 'Scott',
'email' => $email,
],
]);
$result = $this

View File

@@ -202,14 +202,31 @@ class ParticipantServiceTest extends BaseTestCase
$this->serviceWithoutParticipants->hasParticipantFilledSurvey(1, 'john@scott.com');
}
public function testHasParticipantFilledSurvey()
public function testHasParticipantFilledSurveyUsingExistingParticipant()
{
$rpcClientManager = $this->getJsonRpcClientManager(0);
$runMethodCallResults = [
'firstname' => 'John',
'lastname' => 'Scott',
'email' => 'john@scott.com',
'completed' => 'Y',
];
$rpcClientManager = $this->getJsonRpcClientManager(1, $runMethodCallResults);
$sessionManager = $this->getSessionManager();
$this->createServiceWithParticipants($rpcClientManager, $sessionManager);
static::assertTrue($this->serviceWithParticipants->hasParticipantFilledSurvey(1, 'john@scott.com'));
static::assertFalse($this->serviceWithParticipants->hasParticipantFilledSurvey(1, 'mary@jane.com'));
}
public function testHasParticipantFilledSurveyUsingNotExistingParticipant()
{
$this->expectException(MissingParticipantOfSurveyException::class);
$rpcClientManager = $this->getJsonRpcClientManager(1);
$sessionManager = $this->getSessionManager();
$this->createServiceWithParticipants($rpcClientManager, $sessionManager);
$this->serviceWithParticipants->hasParticipantFilledSurvey(3, 'mary@jane.com');
}
/**