Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/vendor/php-xapi/model/spec/ContextSpec.php

212 lines
7.6 KiB

<?php
namespace spec\Xabbuh\XApi\Model;
use PhpSpec\ObjectBehavior;
use Xabbuh\XApi\Model\Agent;
use Xabbuh\XApi\Model\Context;
use Xabbuh\XApi\Model\ContextActivities;
use Xabbuh\XApi\Model\Extensions;
use Xabbuh\XApi\Model\Group;
use Xabbuh\XApi\Model\InverseFunctionalIdentifier;
use Xabbuh\XApi\Model\IRI;
use Xabbuh\XApi\Model\StatementId;
use Xabbuh\XApi\Model\StatementReference;
class ContextSpec extends ObjectBehavior
{
public function its_properties_are_empty_by_default()
{
$this->getRegistration()->shouldBeNull();
$this->getInstructor()->shouldBeNull();
$this->getTeam()->shouldBeNull();
$this->getContextActivities()->shouldBeNull();
$this->getRevision()->shouldBeNull();
$this->getPlatform()->shouldBeNull();
$this->getLanguage()->shouldBeNull();
$this->getStatement()->shouldBeNull();
$this->getExtensions()->shouldBeNull();
}
public function it_returns_a_new_instance_with_registration()
{
$context = $this->withRegistration('12345678-1234-5678-8234-567812345678');
$this->getRegistration()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getRegistration()->shouldReturn('12345678-1234-5678-8234-567812345678');
}
public function it_returns_a_new_instance_with_instructor()
{
$instructor = new Agent(InverseFunctionalIdentifier::withMbox(IRI::fromString('mailto:conformancetest@tincanapi.com')));
$context = $this->withInstructor($instructor);
$this->getInstructor()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getInstructor()->shouldReturn($instructor);
}
public function it_returns_a_new_instance_with_team()
{
$team = new Group(InverseFunctionalIdentifier::withMbox(IRI::fromString('mailto:conformancetest@tincanapi.com')), 'team');
$context = $this->withTeam($team);
$this->getTeam()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getTeam()->shouldReturn($team);
}
public function it_returns_a_new_instance_with_context_activities()
{
$contextActivities = new ContextActivities();
$context = $this->withContextActivities($contextActivities);
$this->getContextActivities()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getContextActivities()->shouldReturn($contextActivities);
}
public function it_returns_a_new_instance_with_revision()
{
$context = $this->withRevision('test');
$this->getRevision()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getRevision()->shouldReturn('test');
}
public function it_returns_a_new_instance_with_platform()
{
$context = $this->withPlatform('test');
$this->getPlatform()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getPlatform()->shouldReturn('test');
}
public function it_returns_a_new_instance_with_language()
{
$context = $this->withLanguage('en-US');
$this->getLanguage()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getLanguage()->shouldReturn('en-US');
}
public function it_returns_a_new_instance_with_statement_reference()
{
$statementReference = new StatementReference(StatementId::fromString('16fd2706-8baf-433b-82eb-8c7fada847da'));
$context = $this->withStatement($statementReference);
$this->getStatement()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getStatement()->shouldReturn($statementReference);
}
public function it_returns_a_new_instance_with_extensions()
{
$extensions = new \SplObjectStorage();
$extensions->attach(IRI::fromString('http://id.tincanapi.com/extension/topic'), 'Conformance Testing');
$extensions = new Extensions($extensions);
$context = $this->withExtensions($extensions);
$this->getExtensions()->shouldBeNull();
$context->shouldNotBe($this);
$context->shouldBeAnInstanceOf('\Xabbuh\XApi\Model\Context');
$context->getExtensions()->shouldReturn($extensions);
}
function it_is_not_equal_to_other_context_if_only_this_context_has_a_team()
{
$context = $this->withTeam(new Group());
$context->equals(new Context())->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_only_the_other_context_has_a_team()
{
$otherContext = $this->withTeam(new Group());
$this->equals($otherContext)->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_teams_are_not_equal()
{
$context = $this->withTeam(new Group());
$otherContext = new Context();
$otherContext = $otherContext->withTeam(new Group(InverseFunctionalIdentifier::withMbox(IRI::fromString('mailto:conformancetest-group@tincanapi.com'))));
$context->equals($otherContext)->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_only_this_context_has_a_statement_reference()
{
$context = $this->withStatement(new StatementReference(StatementId::fromString('16fd2706-8baf-433b-82eb-8c7fada847da')));
$context->equals(new Context())->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_only_the_other_context_has_a_statement_reference()
{
$otherContext = $this->withStatement(new StatementReference(StatementId::fromString('16fd2706-8baf-433b-82eb-8c7fada847da')));
$this->equals($otherContext)->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_statement_references_are_not_equal()
{
$context = $this->withStatement(new StatementReference(StatementId::fromString('16fd2706-8baf-433b-82eb-8c7fada847da')));
$otherContext = new Context();
$otherContext = $otherContext->withStatement(new StatementReference(StatementId::fromString('39e24cc4-69af-4b01-a824-1fdc6ea8a3af')));
$context->equals($otherContext)->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_only_this_context_has_extensions()
{
$context = $this->withExtensions(new Extensions());
$context->equals(new Context())->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_only_the_other_context_has_extensions()
{
$otherContext = $this->withExtensions(new Extensions());
$this->equals($otherContext)->shouldReturn(false);
}
function it_is_not_equal_to_other_context_if_extensions_are_not_equal()
{
$extensions = new \SplObjectStorage();
$extensions->attach(IRI::fromString('http://id.tincanapi.com/extension/subject'), 'Conformance Testing');
$context = $this->withExtensions(new Extensions($extensions));
$extensions = new \SplObjectStorage();
$extensions->attach(IRI::fromString('http://id.tincanapi.com/extension/topic'), 'Conformance Testing');
$otherContext = new Context();
$otherContext = $otherContext->withExtensions(new Extensions($extensions));
$context->equals($otherContext)->shouldReturn(false);
}
}