Skip to content

Commit

Permalink
Merge pull request #108 from oat-sa/develop
Browse files Browse the repository at this point in the history
feat: roles management
  • Loading branch information
ekkinox committed May 6, 2021
2 parents d42b569 + db32c5e commit 3a5b96d
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 44 deletions.
4 changes: 1 addition & 3 deletions src/Role/Type/ContextRole.php
Expand Up @@ -55,9 +55,7 @@ public function getSubName(): ?string
public function isCore(): bool
{
if (strpos($this->name, static::getNamespace() . '/') === 0) {
$exp = explode('#', substr($this->name, strlen(static::getNamespace() . '/')));

return $this->getMap()[current($exp)];
return false;
}

if (strpos($this->name, static::getNamespace()) === 0) {
Expand Down
22 changes: 21 additions & 1 deletion tests/Unit/Role/Factory/RoleFactoryTest.php
Expand Up @@ -52,13 +52,33 @@ public function testCreateInstitutionRole(): void
}

public function testCreateContextRole(): void
{
$result = RoleFactory::create('http://purl.imsglobal.org/vocab/lis/v2/membership#Administrator');

$this->assertInstanceOf(ContextRole::class, $result);
$this->assertEquals('http://purl.imsglobal.org/vocab/lis/v2/membership#Administrator', $result->getName());
$this->assertNull($result->getSubName());
$this->assertTrue($result->isCore());
}

public function testCreateContextShortRole(): void
{
$result = RoleFactory::create('Administrator');

$this->assertInstanceOf(ContextRole::class, $result);
$this->assertEquals('Administrator', $result->getName());
$this->assertNull($result->getSubName());
$this->assertTrue($result->isCore());
}

public function testCreateContextSubRole(): void
{
$result = RoleFactory::create('http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Administrator');

$this->assertInstanceOf(ContextRole::class, $result);
$this->assertEquals('http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Administrator', $result->getName());
$this->assertEquals('Administrator', $result->getSubName());
$this->assertTrue($result->isCore());
$this->assertFalse($result->isCore());
}

public function testCreateFailure(): void
Expand Down
80 changes: 40 additions & 40 deletions tests/Unit/Role/Type/ContextRoleTest.php
Expand Up @@ -140,142 +140,142 @@ public function provideValidRolesMap(): array
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Administrator',
'subName' => 'Administrator',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Developer',
'subName' => 'Developer',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalDeveloper',
'subName' => 'ExternalDeveloper',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalSupport',
'subName' => 'ExternalSupport',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalSystemAdministrator',
'subName' => 'ExternalSystemAdministrator',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Support',
'subName' => 'Support',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#SystemAdministrator',
'subName' => 'SystemAdministrator',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ContentDeveloper',
'subName' => 'ContentDeveloper',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ContentExpert',
'subName' => 'ContentExpert',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ExternalContentExpert',
'subName' => 'ExternalContentExpert',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#Librarian',
'subName' => 'Librarian',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#ExternalInstructor',
'subName' => 'ExternalInstructor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#Grader',
'subName' => 'Grader',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#GuestInstructor',
'subName' => 'GuestInstructor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#Lecturer',
'subName' => 'Lecturer',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#PrimaryInstructor',
'subName' => 'PrimaryInstructor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#SecondaryInstructor',
'subName' => 'SecondaryInstructor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistant',
'subName' => 'TeachingAssistant',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantGroup',
'subName' => 'TeachingAssistantGroup',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantOffering',
'subName' => 'TeachingAssistantOffering',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantSection',
'subName' => 'TeachingAssistantSection',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantSectionAssociation',
'subName' => 'TeachingAssistantSectionAssociation',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantTemplate',
'subName' => 'TeachingAssistantTemplate',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#ExternalLearner',
'subName' => 'ExternalLearner',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#GuestLearner',
'subName' => 'GuestLearner',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#Instructor',
'subName' => 'Instructor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#Learner',
'subName' => 'Learner',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#NonCreditLearner',
'subName' => 'NonCreditLearner',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#AreaManager',
Expand Down Expand Up @@ -310,62 +310,62 @@ public function provideValidRolesMap(): array
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Advisor',
'subName' => 'Advisor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Auditor',
'subName' => 'Auditor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalAdvisor',
'subName' => 'ExternalAdvisor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalAuditor',
'subName' => 'ExternalAuditor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalLearningFacilitator',
'subName' => 'ExternalLearningFacilitator',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalMentor',
'subName' => 'ExternalMentor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalReviewer',
'subName' => 'ExternalReviewer',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalTutor',
'subName' => 'ExternalTutor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#LearningFacilitator',
'subName' => 'LearningFacilitator',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Mentor',
'subName' => 'Mentor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Reviewer',
'subName' => 'Reviewer',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Tutor',
'subName' => 'Tutor',
'isCore' => true
'isCore' => false
],
[
'roleName' => 'http://purl.imsglobal.org/vocab/lis/v2/membership/Officer#Chair',
Expand Down

0 comments on commit 3a5b96d

Please sign in to comment.