get('LmcRbacMvc\Options\ModuleOptions'); $this->assertEquals('LmcRbacMvc\Identity\AuthenticationIdentityProvider', $moduleOptions->getIdentityProvider()); $this->assertEquals('guest', $moduleOptions->getGuestRole()); $this->assertEquals('allow', $moduleOptions->getProtectionPolicy()); $this->assertIsArray($moduleOptions->getGuards()); $this->assertIsArray($moduleOptions->getRoleProvider()); $this->assertIsArray($moduleOptions->getAssertionMap()); $this->assertInstanceOf('LmcRbacMvc\Options\UnauthorizedStrategyOptions', $moduleOptions->getUnauthorizedStrategy()); $this->assertInstanceOf('LmcRbacMvc\Options\RedirectStrategyOptions', $moduleOptions->getRedirectStrategy()); } public function testSettersAndGetters() { $moduleOptions = new ModuleOptions([ 'identity_provider' => 'IdentityProvider', 'guest_role' => 'unknown', 'guards' => [], 'protection_policy' => 'deny', 'role_provider' => [], 'assertion_map' => [ 'foo' => 'bar' ], 'unauthorized_strategy' => [ 'template' => 'error/unauthorized' ], 'redirect_strategy' => [ 'redirect_to_route_connected' => 'home', 'redirect_to_route_disconnected' => 'login' ] ]); $this->assertEquals('IdentityProvider', $moduleOptions->getIdentityProvider()); $this->assertEquals('unknown', $moduleOptions->getGuestRole()); $this->assertEquals([], $moduleOptions->getGuards()); $this->assertEquals('deny', $moduleOptions->getProtectionPolicy()); $this->assertEquals([], $moduleOptions->getRoleProvider()); $this->assertEquals(['foo' => 'bar'], $moduleOptions->getAssertionMap()); $this->assertInstanceOf('LmcRbacMvc\Options\UnauthorizedStrategyOptions', $moduleOptions->getUnauthorizedStrategy()); $this->assertInstanceOf('LmcRbacMvc\Options\RedirectStrategyOptions', $moduleOptions->getRedirectStrategy()); } public function testThrowExceptionForInvalidProtectionPolicy() { $this->expectException(\LmcRbacMvc\Exception\RuntimeException::class); $moduleOptions = new ModuleOptions(); $moduleOptions->setProtectionPolicy('invalid'); } public function testThrowExceptionIfMoreThanOneRoleProviderIsSet() { $this->expectException(\LmcRbacMvc\Exception\RuntimeException::class); $moduleOptions = new ModuleOptions(); $moduleOptions->setRoleProvider(['foo', 'bar']); } }