5 use InvalidArgumentException;
13 use Wikimedia\Assert\PostconditionException;
23 ->disableOriginalConstructor()
31 ->disableOriginalConstructor()
34 $mock->method(
'getMap' )
35 ->willReturn( $names );
41 if ( !$roleNameStore ) {
56 $registry->defineRole(
'foo',
function ( $role ) {
60 $this->assertTrue( $registry->isDefinedRole(
'foo' ) );
61 $this->assertContains(
'foo', $registry->getDefinedRoles() );
62 $this->assertContains(
'foo', $registry->getKnownRoles() );
64 $handler = $registry->getRoleHandler(
'foo' );
65 $this->assertSame(
'foo',
$handler->getRole() );
68 $this->assertSame(
'FooModel',
$handler->getDefaultModel(
$title ) );
76 $registry->defineRole(
'foo',
function ( $role ) {
81 $registry->defineRole(
'foo',
function ( $role ) {
94 $registry->defineRoleWithModel(
'foo',
'FooModel' );
96 $this->assertTrue( $registry->isDefinedRole(
'foo' ) );
97 $this->assertContains(
'foo', $registry->getDefinedRoles() );
98 $this->assertContains(
'foo', $registry->getKnownRoles() );
100 $handler = $registry->getRoleHandler(
'foo' );
101 $this->assertSame(
'foo',
$handler->getRole() );
105 ->disableOriginalConstructor()
107 $this->assertSame(
'FooModel',
$handler->getDefaultModel(
$title ) );
118 $registry->getRoleHandler(
'foo' );
129 \Wikimedia\suppressWarnings();
130 $handler = $registry->getRoleHandler(
'foo' );
131 $this->assertSame(
'foo',
$handler->getRole() );
133 \Wikimedia\restoreWarnings();
141 $registry->defineRole(
'foo',
function ( $role ) {
142 return 'Not a SlotRoleHandler instance';
146 $registry->getRoleHandler(
'foo' );
154 $registry->defineRole(
'main',
function ( $role ) {
159 $this->assertEquals( [
'main' ], $registry->getRequiredRoles(
$title ) );
167 $registry->defineRole(
'main',
function ( $role ) {
173 $this->assertEquals( [
'main',
'foo' ], $registry->getAllowedRoles(
$title ) );
186 $this->assertTrue( $registry->isKnownRole(
'foo' ) );
187 $this->assertTrue( $registry->isKnownRole(
'bar' ) );
188 $this->assertFalse( $registry->isKnownRole(
'xyzzy' ) );