public function separateActiveAndInactiveTokensTests(array $patterns, $expectedActive)
{
$mockRequestPatterns = [];
foreach ($patterns as $pattern) {
$mockRequestPattern = $this->getMockBuilder(RequestPatternInterface::class)->setMockClassName('RequestPattern_' . $pattern['type'])->getMock();
$mockRequestPattern->expects($this->any())->method('matchRequest')->with($this->mockActionRequest)->will($this->returnValue($pattern['matchesRequest']));
$mockRequestPatterns[] = $mockRequestPattern;
}
$mockToken = $this->createMock(TokenInterface::class);
$mockToken->expects($this->once())->method('hasRequestPatterns')->will($this->returnValue($mockRequestPatterns !== []));
$mockToken->expects($this->any())->method('getRequestPatterns')->will($this->returnValue($mockRequestPatterns));
/** @var AuthenticationManagerInterface|\PHPUnit_Framework_MockObject_MockObject $mockAuthenticationManager */
$mockAuthenticationManager = $this->createMock(AuthenticationManagerInterface::class);
$mockAuthenticationManager->expects($this->once())->method('getTokens')->will($this->returnValue([$mockToken]));
$this->securityContext = $this->getAccessibleMock(Context::class, ['dummy']);
$settings = [];
$settings['security']['authentication']['authenticationStrategy'] = 'allTokens';
$this->securityContext->injectSettings($settings);
$this->securityContext->injectAuthenticationManager($mockAuthenticationManager);
$this->securityContext->setRequest($this->mockActionRequest);
$this->securityContext->initialize();
if ($expectedActive) {
$this->assertContains($mockToken, $this->securityContext->_get('activeTokens'));
} else {
$this->assertContains($mockToken, $this->securityContext->_get('inactiveTokens'));
}
}