1005 lines
34 KiB
PHP
1005 lines
34 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*
|
|
* https://www.d3data.de
|
|
*
|
|
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
|
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
|
* @link https://www.oxidmodule.com
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace D3\Usermanager\tests\unit\Application\Controller;
|
|
|
|
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
|
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
|
use D3\ModCfg\Application\Model\Log\d3log;
|
|
use D3\Usermanager\Application\Controller\d3usermanager_response;
|
|
use D3\Usermanager\Application\Model\d3usermanager;
|
|
use D3\Usermanager\Application\Model\d3usermanager_execute;
|
|
use D3\Usermanager\Application\Model\d3usermanagerlist;
|
|
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_cronUnavailableException;
|
|
use D3\Usermanager\tests\unit\d3UsermanagerUnitTestCase;
|
|
use Exception;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
use OxidEsales\Eshop\Core\Exception\StandardException;
|
|
use OxidEsales\Eshop\Core\Language;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use ReflectionException;
|
|
use RuntimeException;
|
|
use stdClass;
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response
|
|
*/
|
|
class d3usermanager_responseTest extends d3UsermanagerUnitTestCase
|
|
{
|
|
/** @var d3usermanager_response */
|
|
protected $_oController;
|
|
|
|
/**
|
|
* setup basic requirements
|
|
*
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
* @throws Exception
|
|
*/
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->_oController = d3GetOxidDIC()->get(d3usermanager_response::class);
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
parent::tearDown();
|
|
|
|
unset($this->_oController);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::__construct
|
|
* @test
|
|
*/
|
|
public function constructorPass()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $controller */
|
|
$controller = $this->getMockBuilder(d3usermanager_response::class)
|
|
->disableOriginalConstructor()
|
|
->onlyMethods(['isCLI'])
|
|
->getMock();
|
|
$controller->method('isCLI')->willReturn(true);
|
|
|
|
$this->callMethod(
|
|
$controller,
|
|
'__construct'
|
|
);
|
|
|
|
$this->assertSame(
|
|
'd3usermanager',
|
|
d3GetOxidDIC()->getParameter('d3.usermanager.modcfgid')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::__construct
|
|
* @test
|
|
*/
|
|
public function constructorException()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $controller */
|
|
$controller = $this->getMockBuilder(d3usermanager_response::class)
|
|
->disableOriginalConstructor()
|
|
->onlyMethods(['isCLI'])
|
|
->getMock();
|
|
$controller->method('isCLI')->willReturn(true);
|
|
|
|
d3GetOxidDIC()->setParameter('d3.usermanager.modcfgid', 'differentModCfgid');
|
|
|
|
$this->expectException(wrongModIdException::class);
|
|
|
|
$this->callMethod(
|
|
$controller,
|
|
'__construct'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::__construct
|
|
* @test
|
|
*/
|
|
public function constructorNoCli()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $controller */
|
|
$controller = $this->getMockBuilder(d3usermanager_response::class)
|
|
->disableOriginalConstructor()
|
|
->onlyMethods(['isCLI'])
|
|
->getMock();
|
|
$controller->method('isCLI')->willReturn(false);
|
|
|
|
$this->expectException(RuntimeException::class);
|
|
|
|
$this->callMethod(
|
|
$controller,
|
|
'__construct'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::isCLI
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function isCLIPass()
|
|
{
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'isClI'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::initCli
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canRunInitCli()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['_startExecution'])
|
|
->getMock();
|
|
$oControllerMock->expects($this->once())->method('_startExecution')->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'initCli'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_startExecution
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function startExecutionPassWithoutException()
|
|
{
|
|
/** @var d3log|MockObject $oLogMock */
|
|
$oLogMock = $this->getMockBuilder(d3log::class)
|
|
->onlyMethods(['log'])
|
|
->getMock();
|
|
$oLogMock->method('log')->willReturnSelf();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods([
|
|
'd3getLog',
|
|
'setValue',
|
|
'saveNoLicenseRefresh',
|
|
])
|
|
->getMock();
|
|
$oModCfgMock->method('d3getLog')->willReturn($oLogMock);
|
|
$oModCfgMock->method('setValue')->willReturn(true);
|
|
$oModCfgMock->method('saveNoLicenseRefresh')->willReturn(true);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getSet',
|
|
'_checkUnavailableCronjob',
|
|
'_getCronTimestampVarName',
|
|
'_startJobs'])
|
|
->getMock();
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('_checkUnavailableCronjob')->willReturn(null);
|
|
$oControllerMock->method('_getCronTimestampVarName')->willReturn('');
|
|
$oControllerMock->expects($this->once())->method('_startJobs')->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'_startExecution'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_startExecution
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function startExecutionPassWithCronUnavailableException()
|
|
{
|
|
/** @var d3log|MockObject $oLogMock */
|
|
$oLogMock = $this->getMockBuilder(d3log::class)
|
|
->onlyMethods(['log'])
|
|
->getMock();
|
|
$oLogMock->method('log')->willReturnSelf();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods([
|
|
'd3getLog',
|
|
'setValue',
|
|
'saveNoLicenseRefresh',
|
|
])
|
|
->getMock();
|
|
$oModCfgMock->method('d3getLog')->willReturn($oLogMock);
|
|
$oModCfgMock->method('setValue')->willReturn(true);
|
|
$oModCfgMock->method('saveNoLicenseRefresh')->willReturn(true);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getSet',
|
|
'_checkUnavailableCronjob',
|
|
'_getCronTimestampVarName',
|
|
'_startJobs'])
|
|
->getMock();
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('_checkUnavailableCronjob')->will($this->returnCallback([$this, 'unavailableCronjobCallback']));
|
|
$oControllerMock->method('_getCronTimestampVarName')->willReturn('');
|
|
$oControllerMock->expects($this->never())->method('_startJobs')->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->expectException(d3usermanager_cronUnavailableException::class);
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'_startExecution'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @throws StandardException
|
|
* @throws Exception
|
|
*/
|
|
public function standardExceptionCallback()
|
|
{
|
|
d3GetOxidDIC()->setParameter(
|
|
'd3ox.usermanager.'.StandardException::class.'.args.message',
|
|
'cron unavailable'
|
|
);
|
|
|
|
/** @var StandardException $oException */
|
|
$oException = d3GetOxidDIC()->get('d3ox.usermanager.'.StandardException::class);
|
|
|
|
throw $oException;
|
|
}
|
|
|
|
/**
|
|
* @throws d3usermanager_cronUnavailableException
|
|
* @throws Exception
|
|
*/
|
|
public function unavailableCronjobCallback()
|
|
{
|
|
d3GetOxidDIC()->setParameter(
|
|
d3usermanager_cronUnavailableException::class.'.args.message',
|
|
'cron unavailable'
|
|
);
|
|
|
|
/** @var d3usermanager_cronUnavailableException $oException */
|
|
$oException = d3GetOxidDIC()->get(d3usermanager_cronUnavailableException::class);
|
|
|
|
throw $oException;
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getManagerList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getListReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanagerlist::class,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getManagerList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getManagerExecute
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function getManagerExecuteReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanager_execute::class,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getManagerExecute',
|
|
[d3GetOxidDIC()->get(d3usermanager::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_startJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function startedJobsCountPass()
|
|
{
|
|
/** @var d3log|MockObject $oLogMock */
|
|
$oLogMock = $this->getMockBuilder(d3log::class)
|
|
->onlyMethods(['log'])
|
|
->getMock();
|
|
$oLogMock->method('log')->willReturnSelf();
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getId',
|
|
'd3GetLog',
|
|
'load',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->method('getId')->willReturn('sId');
|
|
$oManagerMock->method('d3GetLog')->willReturn($oLogMock);
|
|
$oManagerMock->method('load')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'setManager',
|
|
'startJobExecution',
|
|
'finishJobExecution',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->method('setManager');
|
|
$oManagerExecuteMock->expects($this->exactly(3))->method('startJobExecution');
|
|
$oManagerExecuteMock->expects($this->once())->method('finishJobExecution');
|
|
|
|
/** @var d3usermanagerlist|MockObject $oListMock */
|
|
$oListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods([
|
|
'setCronJobId',
|
|
'setCustomSorting',
|
|
'selectString',
|
|
])
|
|
->getMock();
|
|
$oListMock->method('setCronJobId');
|
|
$oListMock->method('setCustomSorting')->willReturn(true);
|
|
$oListMock->method('selectString')->willReturn(true);
|
|
$oListMock->offsetSet('item1', $oManagerMock);
|
|
$oListMock->offsetSet('item2', $oManagerMock);
|
|
$oListMock->offsetSet('item3', $oManagerMock);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'getManagerList',
|
|
'getManager',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oListMock);
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod($this->_oController, '_startJobs');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getManagerReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanager::class,
|
|
$this->callMethod($this->_oController, 'getManager')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkAccessKey
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function baseAccessKeyPassedToSetOne()
|
|
{
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['getValue'])
|
|
->getMock();
|
|
$map = [
|
|
['sCronPassword', ''],
|
|
];
|
|
$oModCfgMock->method('getValue')->willReturnMap($map);
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getBaseCronPW'])
|
|
->getMock();
|
|
$oManagerMock->method('getBaseCronPW')->willReturn('sBaseCronPw');
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getSet',
|
|
'hasValidAccessKey',
|
|
'getManager',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->expects($this->any())->method('hasValidAccessKey')->with(
|
|
$this->equalTo('sBaseCronPw'),
|
|
$this->equalTo('sSetCronPw')
|
|
)->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$_GET['key'] = 'sSetCronPw';
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod($this->_oController, '_checkAccessKey')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkAccessKey
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function registeredAccessKeyPassedToSetOne()
|
|
{
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['getValue'])
|
|
->getMock();
|
|
$map = [
|
|
['sCronPassword', 'sRegCronPw'],
|
|
];
|
|
$oModCfgMock->method('getValue')->willReturnMap($map);
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getBaseCronPW'])
|
|
->getMock();
|
|
$oManagerMock->method('getBaseCronPW')->willReturn('sBaseCronPw');
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getSet',
|
|
'hasValidAccessKey',
|
|
'getManager',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->expects($this->any())->method('hasValidAccessKey')->with(
|
|
$this->equalTo('sRegCronPw'),
|
|
$this->equalTo('sSetCronPw')
|
|
)->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$_GET['key'] = 'sSetCronPw';
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod($this->_oController, '_checkAccessKey')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_getSet
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getSetReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3_cfg_mod::class,
|
|
$this->callMethod($this->_oController, '_getSet')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::isBrowserCall
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function isNoBrowserCall()
|
|
{
|
|
$_SERVER['REMOTE_ADDR'] = '';
|
|
$_SERVER['HTTP_USER_AGENT'] = '';
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'isBrowserCall'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::isBrowserCall
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function isBrowserCallBecauseUserAgent()
|
|
{
|
|
$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0';
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'isBrowserCall'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::isBrowserCall
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function isBrowserCallBecauseRemoteAddr()
|
|
{
|
|
$_SERVER['REMOTE_ADDR'] = '192.168.133.1';
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'isBrowserCall'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::hasValidAccessKey
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function remoteCallHasValidAccessKey()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['isBrowserCall'])
|
|
->getMock();
|
|
$oControllerMock->method('isBrowserCall')->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'hasValidAccessKey',
|
|
['requAccessKey', 'requAccessKey']
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::hasValidAccessKey
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function remoteCallHasInvalidAccessKey()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['isBrowserCall'])
|
|
->getMock();
|
|
$oControllerMock->method('isBrowserCall')->willReturn(true);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'hasValidAccessKey',
|
|
['requAccessKey', 'passedAccessKey']
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::hasValidAccessKey
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function serverCallDontRequireAccessKey()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['isBrowserCall'])
|
|
->getMock();
|
|
$oControllerMock->method('isBrowserCall')->willReturn(false);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'hasValidAccessKey',
|
|
['requAccessKey', 'passedAccessKey']
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkUnavailableCronjob
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function unavailableInactiveCronjobPass()
|
|
{
|
|
/** @var d3usermanager_cronUnavailableException|MockObject $oExceptionMock */
|
|
$oExceptionMock = $this->getMockBuilder(d3usermanager_cronUnavailableException::class)
|
|
->getMock();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['isActive'])
|
|
->getMock();
|
|
$oModCfgMock->method('isActive')->willReturn(false);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_checkAccessKey',
|
|
'getCronUnavailableException',
|
|
'_getSet',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('_checkAccessKey')->willReturn(true);
|
|
$oControllerMock->method('getCronUnavailableException')->willReturn($oExceptionMock);
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->expectException(d3usermanager_cronUnavailableException::class);
|
|
|
|
$this->callMethod($this->_oController, '_checkUnavailableCronjob');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkUnavailableCronjob
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function unavailableCronjobWrongAccessKeyPass()
|
|
{
|
|
/** @var d3usermanager_cronUnavailableException|MockObject $oExceptionMock */
|
|
$oExceptionMock = $this->getMockBuilder(d3usermanager_cronUnavailableException::class)
|
|
->getMock();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['isActive'])
|
|
->getMock();
|
|
$oModCfgMock->method('isActive')->willReturn(true);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_checkAccessKey',
|
|
'getCronUnavailableException',
|
|
'_getSet',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('_checkAccessKey')->willReturn(false);
|
|
$oControllerMock->method('getCronUnavailableException')->willReturn($oExceptionMock);
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->expectException(d3usermanager_cronUnavailableException::class);
|
|
|
|
$this->callMethod($this->_oController, '_checkUnavailableCronjob');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkUnavailableCronjob
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function unavailableCronjobInactiveCronPass()
|
|
{
|
|
/** @var d3usermanager_cronUnavailableException|MockObject $oExceptionMock */
|
|
$oExceptionMock = $this->getMockBuilder(d3usermanager_cronUnavailableException::class)
|
|
->getMock();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['isActive', 'getValue'])
|
|
->getMock();
|
|
$oModCfgMock->method('isActive')->willReturn(true);
|
|
$oModCfgMock->method('getValue')->willReturn(false);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_checkAccessKey',
|
|
'getCronUnavailableException',
|
|
'_getSet',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('_checkAccessKey')->willReturn(true);
|
|
$oControllerMock->method('getCronUnavailableException')->willReturn($oExceptionMock);
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->expectException(d3usermanager_cronUnavailableException::class);
|
|
|
|
$this->callMethod($this->_oController, '_checkUnavailableCronjob');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_checkUnavailableCronjob
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function unavailableEnabledCronjobPass()
|
|
{
|
|
/** @var d3usermanager_cronUnavailableException|MockObject $oExceptionMock */
|
|
$oExceptionMock = $this->getMockBuilder(d3usermanager_cronUnavailableException::class)
|
|
->getMock();
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['isActive', 'getValue'])
|
|
->getMock();
|
|
$oModCfgMock->expects($this->atLeastOnce())->method('isActive')->willReturn(true);
|
|
$oModCfgMock->expects($this->atLeastOnce())->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_checkAccessKey',
|
|
'getCronUnavailableException',
|
|
'_getSet'])
|
|
->addMethods(['_checkDisabledCronjob'])
|
|
->getMock();
|
|
$oControllerMock->expects($this->any())->method('_checkAccessKey')->willReturn(true);
|
|
$oControllerMock->method('getCronUnavailableException')->willReturn($oExceptionMock);
|
|
$oControllerMock->method('_getSet')->willReturn($oModCfgMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'_checkUnavailableCronjob'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getCronUnavailableException
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getCronUnavailableExceptionReturnsRightInstance()
|
|
{
|
|
/** @var d3usermanager_cronUnavailableException $oInstance */
|
|
$oInstance = $this->callMethod(
|
|
$this->_oController,
|
|
'getCronUnavailableException',
|
|
['testMessage']
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
d3usermanager_cronUnavailableException::class,
|
|
$oInstance
|
|
);
|
|
$this->assertEquals('testMessage', $oInstance->getMessage());
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_getCronJobIdParameter
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetUnsetCjIdParameter()
|
|
{
|
|
$_GET['cjid'] = null;
|
|
|
|
$this->assertEquals(0, $this->callMethod($this->_oController, '_getCronJobIdParameter'));
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_getCronJobIdParameter
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetSetCjIdParameter()
|
|
{
|
|
$_GET['cjid'] = 'foo';
|
|
|
|
$this->assertEquals('foo', $this->callMethod($this->_oController, '_getCronJobIdParameter'));
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_getCronTimestampVarName
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function cronTimestampVarNameWithoutJobParameterPass()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['_getCronJobIdParameter'])
|
|
->getMock();
|
|
$oControllerMock->expects($this->any())->method('_getCronJobIdParameter')->willReturn(false);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertStringContainsStringIgnoringCase('Timestamp', $this->callMethod($this->_oController, '_getCronTimestampVarName'));
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::_getCronTimestampVarName
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function cronTimestampVarNameWithJobParameterPass()
|
|
{
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods(['_getCronJobIdParameter'])
|
|
->getMock();
|
|
$oControllerMock->expects($this->any())->method('_getCronJobIdParameter')->willReturn('testJobId');
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$sReturn = $this->callMethod($this->_oController, '_getCronTimestampVarName');
|
|
$this->assertStringContainsStringIgnoringCase('Timestamp', $sReturn);
|
|
$this->assertStringContainsStringIgnoringCase('testJobId', $sReturn);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getLastExecDate
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getLastExecDatePassed()
|
|
{
|
|
$testValue = 'testValue';
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['getValue'])
|
|
->getMock();
|
|
$map = [
|
|
['tsVarName', $testValue],
|
|
];
|
|
$oModCfgMock->method('getValue')->willReturnMap($map);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getCronTimestampVarName',
|
|
'_getSet',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->expects($this->once())->method('_getCronTimestampVarName')->willReturn('tsVarName');
|
|
$oControllerMock->expects($this->once())->method('_getSet')->willReturn($oModCfgMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertSame(
|
|
$testValue,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getLastExecDate'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getLastExecDateInfo
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getLastExecDateInfoPassed()
|
|
{
|
|
/** @var Language|MockObject $oLangMock */
|
|
$oLangMock = $this->getMockBuilder(Language::class)
|
|
->onlyMethods(['translateString'])
|
|
->getMock();
|
|
$oLangMock->method('translateString')->willReturn('%1$s -- %2$s');
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getAvailableCronjobIds'])
|
|
->getMock();
|
|
$oManagerMock->method('getAvailableCronjobIds')->willReturn(
|
|
[
|
|
[
|
|
'id' => 0,
|
|
'count' => 5,
|
|
],
|
|
[
|
|
'id' => 1,
|
|
'count' => 9,
|
|
],
|
|
[
|
|
'id' => 4,
|
|
'count' => 12,
|
|
],
|
|
]
|
|
);
|
|
|
|
/** @var d3usermanager_response|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3usermanager_response::class)
|
|
->onlyMethods([
|
|
'_getCronJobIdParameter',
|
|
'getManager',
|
|
'getLastExecDate',
|
|
'getLang',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->expects($this->once())->method('_getCronJobIdParameter')->willReturn('1');
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getLastExecDate')->willReturn('2020-02-02');
|
|
$oControllerMock->method('getLang')->willReturn($oLangMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertSame(
|
|
[
|
|
0 => '1 -- 9',
|
|
1 => '1 -- 2020-02-02',
|
|
],
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getLastExecDateInfo'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\d3usermanager_response::getLang
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getLangReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Language::class,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getLang'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param $sLicenseKey
|
|
* @param d3usermanager $oManager
|
|
* @return null
|
|
*/
|
|
protected function _setModuleLicenseKey($sLicenseKey, $oManager = null)
|
|
{
|
|
return null;
|
|
}
|
|
}
|