Files
Chamilo/vendor/php-xapi/client/tests/Api/AgentProfileApiClientTest.php
Xes 73154ae174
Behat tests 1.11.x 🐞 / PHP 7.4 Test on ubuntu-latest (push) Canceled after 0s
PHP-CS-Fixer / composer_install (7.4) (push) Canceled after 0s
Chamilo 1.11.40 (ZIP oficial v1.11.40)
Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip
sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439
Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
2026-08-06 17:59:45 +02:00

139 lines
3.8 KiB
PHP

<?php
/*
* This file is part of the xAPI package.
*
* (c) Christian Flothmann <christian.flothmann@xabbuh.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Xabbuh\XApi\Client\Tests\Api;
use Xabbuh\XApi\Client\Api\AgentProfileApiClient;
use Xabbuh\XApi\DataFixtures\DocumentFixtures;
use Xabbuh\XApi\Model\Agent;
use Xabbuh\XApi\Model\AgentProfile;
use Xabbuh\XApi\Model\AgentProfileDocument;
use Xabbuh\XApi\Model\InverseFunctionalIdentifier;
use Xabbuh\XApi\Model\IRI;
use Xabbuh\XApi\Serializer\Symfony\ActorSerializer;
use Xabbuh\XApi\Serializer\Symfony\DocumentDataSerializer;
/**
* @author Christian Flothmann <christian.flothmann@xabbuh.de>
*/
class AgentProfileApiClientTest extends ApiClientTest
{
/**
* @var AgentProfileApiClient
*/
private $client;
protected function setUp(): void
{
parent::setUp();
$this->client = new AgentProfileApiClient(
$this->requestHandler,
'1.0.1',
new DocumentDataSerializer($this->serializer),
new ActorSerializer($this->serializer)
);
}
public function testCreateOrUpdateDocument()
{
$document = DocumentFixtures::getAgentProfileDocument();
$profile = $document->getAgentProfile();
$this->validateStoreApiCall(
'post',
'agents/profile',
array(
'agent' => 'agent-as-json',
'profileId' => 'profile-id',
),
204,
'',
$document->getData(),
array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json'))
);
$this->client->createOrUpdateDocument($document);
}
public function testCreateOrReplaceDocument()
{
$document = DocumentFixtures::getAgentProfileDocument();
$profile = $document->getAgentProfile();
$this->validateStoreApiCall(
'put',
'agents/profile',
array(
'agent' => 'agent-as-json',
'profileId' => 'profile-id',
),
204,
'',
$document->getData(),
array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json'))
);
$this->client->createOrReplaceDocument($document);
}
public function testDeleteDocument()
{
$profile = $this->createAgentProfile();
$this->validateRequest(
'delete',
'agents/profile',
array(
'agent' => 'agent-as-json',
'profileId' => 'profile-id',
),
''
);
$this->validateSerializer(array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json')));
$this->client->deleteDocument(
$profile
);
}
public function testGetDocument()
{
$document = DocumentFixtures::getAgentProfileDocument();
$profile = $document->getAgentProfile();
$this->validateRetrieveApiCall(
'get',
'agents/profile',
array(
'agent' => 'agent-as-json',
'profileId' => 'profile-id',
),
200,
'DocumentData',
$document->getData(),
array(array('data' => $profile->getAgent(), 'result' => 'agent-as-json'))
);
$document = $this->client->getDocument($profile);
$this->assertInstanceOf(AgentProfileDocument::class, $document);
$this->assertEquals($profile, $document->getAgentProfile());
}
private function createAgentProfile()
{
$agent = new Agent(InverseFunctionalIdentifier::withMbox(IRI::fromString('mailto:christian@example.com')));
$profile = new AgentProfile('profile-id', $agent);
return $profile;
}
}