1273 lines
46 KiB
PHP
1273 lines
46 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\Admin;
|
|
|
|
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
|
use D3\ModCfg\Application\Model\d3filesystem;
|
|
use D3\ModCfg\Application\Model\d3str;
|
|
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
|
use D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs;
|
|
use D3\Usermanager\Application\Model\d3usermanager;
|
|
use D3\Usermanager\Application\Model\d3usermanager_configurationcheck;
|
|
use D3\Usermanager\Application\Model\d3usermanager_execute;
|
|
use D3\Usermanager\Application\Model\d3usermanager_touserassignment;
|
|
use D3\Usermanager\Application\Model\d3usermanagerlist;
|
|
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_requirementException;
|
|
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_smartyException;
|
|
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_templaterendererExceptionInterface;
|
|
use D3\Usermanager\tests\unit\d3UsermanagerUnitTestCase;
|
|
use Exception;
|
|
use OxidEsales\Eshop\Application\Model\User;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
use OxidEsales\Eshop\Core\Language;
|
|
use OxidEsales\Eshop\Core\Session;
|
|
use OxidEsales\Eshop\Core\Model\ListModel;
|
|
use OxidEsales\Eshop\Core\UtilsView;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use ReflectionException;
|
|
use stdClass;
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs
|
|
*/
|
|
class d3_usermanager_jobsTest extends d3UsermanagerUnitTestCase
|
|
{
|
|
/** @var d3_usermanager_jobs */
|
|
protected $_oController;
|
|
|
|
/**
|
|
* setup basic requirements
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
* @throws Exception
|
|
*/
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->_oController = d3GetOxidDIC()->get(d3_usermanager_jobs::class);
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
parent::tearDown();
|
|
|
|
unset($this->_oController);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::__construct
|
|
* @test
|
|
*/
|
|
public function constructorPass()
|
|
{
|
|
$this->assertSame(
|
|
'd3usermanager',
|
|
d3GetOxidDIC()->getParameter('d3.usermanager.modcfgid')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::__construct
|
|
* @test
|
|
*/
|
|
public function constructorException()
|
|
{
|
|
/** @var d3_usermanager_jobs|MockObject $controller */
|
|
$controller = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
d3GetOxidDIC()->setParameter('d3.usermanager.modcfgid', 'differentModCfgid');
|
|
|
|
$this->expectException(wrongModIdException::class);
|
|
|
|
$this->callMethod(
|
|
$controller,
|
|
'__construct'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getItemObject
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getItemObjectReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
User::class,
|
|
$this->callMethod($this->_oController, 'getItemObject')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3GetSession
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getSessionReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Session::class,
|
|
$this->callMethod($this->_oController, 'd3GetSession')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::render
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function renderPass()
|
|
{
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
/** @var User|MockObject $oItemMock */
|
|
$oItemMock = $this->getMockBuilder(User::class)
|
|
->onlyMethods(['load'])
|
|
->getMock();
|
|
$oItemMock->expects($this->once())->method('load')->willReturn(true);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getEditObjectId',
|
|
'getItemObject',
|
|
'_d3GetManuallyManagerJobs',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getEditObjectId')->willReturn('testOxId');
|
|
$oControllerMock->method('getItemObject')->willReturn($oItemMock);
|
|
$oControllerMock->method('_d3GetManuallyManagerJobs')->willReturn($oManagerListMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertStringContainsStringIgnoringCase(
|
|
'@d3usermanager/admin/d3_usermanager_jobs',
|
|
$this->callMethod($this->_oController, 'render')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::changeFolder
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canChangeFolder()
|
|
{
|
|
$_POST['jobfolder'] = 'newSelectedFolder';
|
|
|
|
/** @var Session|MockObject $oSessionMock */
|
|
$oSessionMock = $this->getMockBuilder(Session::class)
|
|
->onlyMethods(['setVariable'])
|
|
->getMock();
|
|
$oSessionMock->expects($this->once())->method('setVariable')->willReturn(true);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods(['d3GetSession'])
|
|
->getMock();
|
|
$oControllerMock->method('d3GetSession')->willReturn($oSessionMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'changeFolder'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getManagerList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getManagerListReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanagerlist::class,
|
|
$this->callMethod($this->_oController, 'getManagerList')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3GetManagerJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetManagerJobs()
|
|
{
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['getList'])
|
|
->getMock();
|
|
$oManagerListMock->expects($this->once())->method('getList')->willReturn(true);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods(['getManagerList'])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oManagerListMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertInstanceOf(
|
|
d3usermanagerlist::class,
|
|
$this->callMethod($this->_oController, 'd3GetManagerJobs')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::_d3GetManuallyManagerJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetManuallyExecutableManagerJobsNoConditionCheck()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$oManagerMock->method('getValue')->willReturn(false);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods(['userMeetsConditions'])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(true);
|
|
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetManuallyManagerJobsByFolder', 'offsetUnset'])
|
|
->getMock();
|
|
$oManagerListMock->expects($this->once())->method('d3GetManuallyManagerJobsByFolder')->willReturnSelf();
|
|
$oManagerListMock->expects($this->never())->method('offsetUnset');
|
|
$oManagerListMock->offsetSet('No1', $oManagerMock);
|
|
$oManagerListMock->offsetSet('No2', $oManagerMock);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManagerList',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oManagerListMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$generatedList = $this->callMethod(
|
|
$this->_oController,
|
|
'_d3GetManuallyManagerJobs',
|
|
['sTestFolderId']
|
|
);
|
|
$this->assertInstanceOf(
|
|
ListModel::class,
|
|
$generatedList
|
|
);
|
|
$this->assertCount(2, $generatedList);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::_d3GetManuallyManagerJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetManuallyExecutableManagerJobsConditionCheckPass()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$oManagerMock->method('getValue')->willReturn(false);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods(['userMeetsConditions'])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->method('userMeetsConditions')->will($this->onConsecutiveCalls(false, true));
|
|
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetManuallyManagerJobsByFolder', 'offsetUnset'])
|
|
->getMock();
|
|
$oManagerListMock->expects($this->once())->method('d3GetManuallyManagerJobsByFolder')->willReturnSelf();
|
|
$oManagerListMock->expects($this->never())->method('offsetUnset');
|
|
$oManagerListMock->offsetSet('No1', $oManagerMock);
|
|
$oManagerListMock->offsetSet('No2', $oManagerMock);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManagerList',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oManagerListMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$generatedList = $this->callMethod(
|
|
$this->_oController,
|
|
'_d3GetManuallyManagerJobs',
|
|
['sTestFolderId']
|
|
);
|
|
$this->assertInstanceOf(
|
|
ListModel::class,
|
|
$generatedList
|
|
);
|
|
$this->assertCount(2, $generatedList);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::_d3GetManuallyManagerJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetManuallyExecutableManagerJobsConditionCheckFailed()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods(['userMeetsConditions'])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->method('userMeetsConditions')->will($this->onConsecutiveCalls(false, true));
|
|
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetManuallyManagerJobsByFolder', 'offsetUnset'])
|
|
->getMock();
|
|
$oManagerListMock->expects($this->once())->method('d3GetManuallyManagerJobsByFolder')->willReturnSelf();
|
|
$oManagerListMock->expects($this->once())->method('offsetUnset');
|
|
$oManagerListMock->offsetSet('No1', $oManagerMock);
|
|
$oManagerListMock->offsetSet('No2', $oManagerMock);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManagerList',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oManagerListMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$generatedList = $this->callMethod(
|
|
$this->_oController,
|
|
'_d3GetManuallyManagerJobs',
|
|
['sTestFolderId']
|
|
);
|
|
$this->assertInstanceOf(
|
|
ListModel::class,
|
|
$generatedList
|
|
);
|
|
// offsetUnset doesn't work, because it's mocked
|
|
// $this->assertCount(1, $generatedList);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::_d3GetManuallyManagerJobs
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function cannotGetManuallyExecutableManagerJobsBecauseUnvalidConfiguration()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_requirementException|MockObject $exception */
|
|
$exception = $this->getMockBuilder(d3usermanager_requirementException::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
/** @var UtilsView|MockObject $utilsViewMock */
|
|
$utilsViewMock = $this->getMockBuilder(UtilsView::class)
|
|
->onlyMethods(['addErrorToDisplay'])
|
|
->getMock();
|
|
$utilsViewMock->expects($this->atLeastOnce())->method('addErrorToDisplay')->willReturn(true);
|
|
d3GetOxidDIC()->set('d3ox.usermanager.'.UtilsView::class, $utilsViewMock);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->addMethods(['orderMeetsConditions'])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->method('orderMeetsConditions')->willThrowException($exception);
|
|
|
|
/** @var d3usermanagerlist|MockObject $oManagerListMock */
|
|
$oManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetManuallyManagerJobsByFolder', 'offsetUnset'])
|
|
->getMock();
|
|
$oManagerListMock->expects($this->once())->method('d3GetManuallyManagerJobsByFolder')->willReturnSelf();
|
|
$oManagerListMock->expects($this->never())->method('offsetUnset');
|
|
$oManagerListMock->offsetSet('No1', $oManagerMock);
|
|
$oManagerListMock->offsetSet('No2', $oManagerMock);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManagerList',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManagerList')->willReturn($oManagerListMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$generatedList = $this->callMethod(
|
|
$this->_oController,
|
|
'_d3GetManuallyManagerJobs',
|
|
['sTestFolderId']
|
|
);
|
|
$this->assertInstanceOf(
|
|
ListModel::class,
|
|
$generatedList
|
|
);
|
|
$this->assertEmpty($generatedList);
|
|
// offsetUnset doesn't work, because it's mocked
|
|
// $this->assertCount(1, $generatedList);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3GetJobList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetJobList()
|
|
{
|
|
$aArray = [
|
|
'1' => '2',
|
|
];
|
|
|
|
/** @var ListModel|MockObject $oJobListMock */
|
|
$oJobListMock = $this->getMockBuilder(ListModel::class)
|
|
->onlyMethods(['getArray'])
|
|
->getMock();
|
|
$oJobListMock->method('getArray')->willReturn($aArray);
|
|
|
|
$this->setValue($this->_oController, '_aJobList', $oJobListMock);
|
|
|
|
$this->assertSame(
|
|
$aArray,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3GetJobList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getManagerReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanager::class,
|
|
$this->callMethod($this->_oController, 'getManager')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::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\Admin\d3_usermanager_jobs::d3execusermanager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function usermanagerStartExecutionNoConditionCheck()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->never())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(false);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->once())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->once())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(false);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3execusermanager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3execusermanager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function usermanagerStartExecutionConditionCheckPass()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->never())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->once())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->once())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(true);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
'checkForConfigurationException',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3execusermanager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3execusermanager
|
|
* @test
|
|
* @param $exceptionClass
|
|
* @throws ReflectionException
|
|
* @dataProvider cannotExecChangedContentsBecauseOfExceptionDataProvider
|
|
*/
|
|
public function usermanagerStartExecutionConditionCheckFailed($exceptionClass)
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->never())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->never())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->never())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(false);
|
|
|
|
/** @var d3usermanager_requirementException|d3usermanager_templaterendererExceptionInterface|MockObject $exception */
|
|
$exception = $this->getMockBuilder($exceptionClass)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
'checkForConfigurationException',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
$oControllerMock->method('checkForConfigurationException')->willThrowException($exception);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3execusermanager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3ExecChangedUserManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function changedUsermanagerStartExecutionNoConditionCheck()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->once())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(false);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->once())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->once())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(false);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3ExecChangedUserManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3ExecChangedUserManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function changedUsermanagerStartExecutionConditionCheckPass()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->once())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->once())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->once())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(true);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
'checkForConfigurationException',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3ExecChangedUserManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3ExecChangedUserManager
|
|
* @test
|
|
* @param $exceptionClass
|
|
* @throws ReflectionException
|
|
* @dataProvider cannotExecChangedContentsBecauseOfExceptionDataProvider
|
|
*/
|
|
public function changedUsermanagerStartExecutionConditionCheckFailed($exceptionClass)
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'setEditedValues',
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->once())->method('setEditedValues');
|
|
$oManagerMock->method('getValue')->willReturn(true);
|
|
|
|
/** @var d3usermanager_execute|MockObject $oManagerExecuteMock */
|
|
$oManagerExecuteMock = $this->getMockBuilder(d3usermanager_execute::class)
|
|
->onlyMethods([
|
|
'exec4user',
|
|
'finishJobExecution',
|
|
'userMeetsConditions',
|
|
])
|
|
->setConstructorArgs([$oManagerMock])
|
|
->getMock();
|
|
$oManagerExecuteMock->expects($this->never())->method('exec4user');
|
|
$oManagerExecuteMock->expects($this->never())->method('finishJobExecution');
|
|
$oManagerExecuteMock->method('userMeetsConditions')->willReturn(false);
|
|
|
|
/** @var d3usermanager_requirementException|d3usermanager_templaterendererExceptionInterface|MockObject $exception */
|
|
$exception = $this->getMockBuilder($exceptionClass)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getManagerExecute',
|
|
'checkForConfigurationException',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('getManagerExecute')->willReturn($oManagerExecuteMock);
|
|
$oControllerMock->method('checkForConfigurationException')->willThrowException($exception);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3ExecChangedUserManager'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getUserManagerAssignment
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function userManagerAssignmentReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3usermanager_touserassignment::class,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getUserManagerAssignment',
|
|
[d3GetOxidDIC()->get(d3usermanager::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3resetUserManagerAssignment
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canStartResettingUserManagerAssignment()
|
|
{
|
|
/** @var d3usermanager_execute|MockObject $oManagerAssignmentMock */
|
|
$oManagerAssignmentMock = $this->getMockBuilder(d3usermanager_touserassignment::class)
|
|
->onlyMethods(['resetAssignment'])
|
|
->setConstructorArgs([d3GetOxidDIC()->get(d3usermanager::class)])
|
|
->getMock();
|
|
$oManagerAssignmentMock->expects($this->once())->method('resetAssignment');
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'getManager',
|
|
'getUserManagerAssignment',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn(d3GetOxidDIC()->get(d3usermanager::class));
|
|
$oControllerMock->method('getUserManagerAssignment')->willReturn($oManagerAssignmentMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'd3resetUserManagerAssignment'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getFolderList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetManagerFolderList()
|
|
{
|
|
$aFolderList = [
|
|
'Folder#1',
|
|
'Folder#2',
|
|
];
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['d3getSelectableFolderList'])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('d3getSelectableFolderList')->willReturn($aFolderList);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods(['getManager'])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertSame(
|
|
$aFolderList,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getFolderList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::execChangedContents
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canExecChangedContents()
|
|
{
|
|
$_POST['oxid'] = 'testItemId';
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'getEditableContent',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->once())->method('getEditableContent')->with(
|
|
$this->stringContains('testItemId')
|
|
)->willReturn(['html' => '<h1>HTML</h1>']);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods(['getManager'])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'execChangedContents'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::execChangedContents
|
|
* @test
|
|
* @param $exceptionClass
|
|
* @throws ReflectionException
|
|
* @dataProvider cannotExecChangedContentsBecauseOfExceptionDataProvider
|
|
*/
|
|
public function cannotExecChangedContentsBecauseOfException($exceptionClass)
|
|
{
|
|
$_POST['oxid'] = 'testItemId';
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'load',
|
|
'getEditableContent',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('load')->willReturn(true);
|
|
$oManagerMock->expects($this->never())->method('getEditableContent')->with(
|
|
$this->stringContains('testItemId')
|
|
)->willReturn([]);
|
|
|
|
/** @var d3usermanager_requirementException|MockObject $exception */
|
|
$exception = $this->getMockBuilder($exceptionClass)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
/** @var UtilsView|MockObject $utilsViewMock */
|
|
$utilsViewMock = $this->getMockBuilder(UtilsView::class)
|
|
->onlyMethods(['addErrorToDisplay'])
|
|
->getMock();
|
|
$utilsViewMock->expects($this->atLeastOnce())->method('addErrorToDisplay')->willReturn(true);
|
|
d3GetOxidDIC()->set('d3ox.usermanager.'.UtilsView::class, $utilsViewMock);
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods(['getManager', 'checkForConfigurationException'])
|
|
->getMock();
|
|
$oControllerMock->method('getManager')->willReturn($oManagerMock);
|
|
$oControllerMock->method('checkForConfigurationException')->willThrowException($exception);
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'execChangedContents'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return string[][]
|
|
*/
|
|
public function cannotExecChangedContentsBecauseOfExceptionDataProvider(): array
|
|
{
|
|
return [
|
|
'unvalid configuration' => [d3usermanager_requirementException::class],
|
|
'smarty rendering error' => [d3usermanager_smartyException::class],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getUserMessages
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getUserMessagesHasRightType()
|
|
{
|
|
$this->assertIsArray(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getUserMessages'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getLang
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getLangReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Language::class,
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getLang'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getHelpURL
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetHelpUrlWithExtension()
|
|
{
|
|
/** @var d3filesystem|MockObject $oFileSystemMock */
|
|
$oFileSystemMock = $this->getMockBuilder(d3filesystem::class)
|
|
->onlyMethods(['splitFilename'])
|
|
->getMock();
|
|
$oFileSystemMock->method('splitFilename')->willReturn(
|
|
['name' => 'filename', 'ext' => 'html']
|
|
);
|
|
|
|
d3GetOxidDIC()->set(d3filesystem::class, $oFileSystemMock);
|
|
|
|
/** @var d3str|MockObject $oD3StrMock */
|
|
$oD3StrMock = $this->getMockBuilder(d3str::class)
|
|
->onlyMethods([
|
|
'unprefixedslashit',
|
|
'trailingslashit',
|
|
])
|
|
->getMock();
|
|
$oD3StrMock->method('unprefixedslashit')->willReturnCallback([$this, 'firstArgumentReturnCallback']);
|
|
$oD3StrMock->expects($this->never())->method('trailingslashit')->willReturnCallback([$this, 'firstArgumentReturnCallback']);
|
|
|
|
d3GetOxidDIC()->set(d3str::class, $oD3StrMock);
|
|
|
|
/** @var Language|MockObject $oLangMock */
|
|
$oLangMock = $this->getMockBuilder(Language::class)
|
|
->onlyMethods(['translateString'])
|
|
->getMock();
|
|
$oLangMock->method('translateString')->willReturn('modulepath');
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['getHelpURL'])
|
|
->getMock();
|
|
$oModCfgMock->method('getHelpURL')->willReturn('https://faq.d3data.de/module/');
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'd3GetSet',
|
|
'getLang',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('d3GetSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('getLang')->willReturn($oLangMock);
|
|
|
|
$this->setValue($oControllerMock, '_sHelpLinkMLAdd', 'foobar');
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertEquals(
|
|
'https://faq.d3data.de/module/modulepath',
|
|
$this->callMethod($this->_oController, 'getHelpURL')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getHelpURL
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetHelpUrlWithoutExtension()
|
|
{
|
|
/** @var d3filesystem|MockObject $oFileSystemMock */
|
|
$oFileSystemMock = $this->getMockBuilder(d3filesystem::class)
|
|
->onlyMethods(['splitFilename'])
|
|
->getMock();
|
|
$oFileSystemMock->method('splitFilename')->willReturn(
|
|
['name' => 'filename', 'ext' => '']
|
|
);
|
|
|
|
d3GetOxidDIC()->set(d3filesystem::class, $oFileSystemMock);
|
|
|
|
/** @var d3str|MockObject $oD3StrMock */
|
|
$oD3StrMock = $this->getMockBuilder(d3str::class)
|
|
->onlyMethods([
|
|
'unprefixedslashit',
|
|
'trailingslashit',
|
|
])
|
|
->getMock();
|
|
$oD3StrMock->method('unprefixedslashit')->willReturnCallback([$this, 'firstArgumentReturnCallback']);
|
|
$oD3StrMock->expects($this->once())->method('trailingslashit')->willReturnCallback([$this, 'firstArgumentReturnCallback']);
|
|
|
|
d3GetOxidDIC()->set(d3str::class, $oD3StrMock);
|
|
|
|
/** @var Language|MockObject $oLangMock */
|
|
$oLangMock = $this->getMockBuilder(Language::class)
|
|
->onlyMethods(['translateString'])
|
|
->getMock();
|
|
$oLangMock->method('translateString')->willReturn('modulepath');
|
|
|
|
/** @var stdClass|MockObject $oModCfgMock */
|
|
$oModCfgMock = $this->getMockBuilder(stdClass::class)
|
|
->addMethods(['getHelpURL'])
|
|
->getMock();
|
|
$oModCfgMock->method('getHelpURL')->willReturn('https://faq.d3data.de/module/');
|
|
|
|
/** @var d3_usermanager_jobs|MockObject $oControllerMock */
|
|
$oControllerMock = $this->getMockBuilder(d3_usermanager_jobs::class)
|
|
->onlyMethods([
|
|
'd3GetSet',
|
|
'getLang',
|
|
])
|
|
->getMock();
|
|
$oControllerMock->method('d3GetSet')->willReturn($oModCfgMock);
|
|
$oControllerMock->method('getLang')->willReturn($oLangMock);
|
|
|
|
$this->setValue($oControllerMock, '_sHelpLinkMLAdd', 'foobar');
|
|
|
|
$this->_oController = $oControllerMock;
|
|
|
|
$this->assertEquals(
|
|
'https://faq.d3data.de/module/modulepath',
|
|
$this->callMethod($this->_oController, 'getHelpURL')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function firstArgumentReturnCallback()
|
|
{
|
|
$args = func_get_args();
|
|
return $args[0];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::d3GetSet
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getSetReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3_cfg_mod::class,
|
|
$this->callMethod($this->_oController, 'd3GetSet')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::getLink
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getLinkReturnsString()
|
|
{
|
|
$this->assertIsString(
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'getLink'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param $sLicenseKey
|
|
* @param d3usermanager $oManager
|
|
* @return null
|
|
*/
|
|
protected function _setModuleLicenseKey($sLicenseKey, $oManager = null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Application\Controller\Admin\d3_usermanager_jobs::checkForConfigurationException
|
|
* @test
|
|
* @param $configuration
|
|
* @throws ReflectionException
|
|
* @dataProvider canCheckForConfigurationExceptionDataProvider
|
|
*/
|
|
public function canCheckForConfigurationException($configuration)
|
|
{
|
|
/** @var d3usermanager_configurationcheck|MockObject $confCheckMock */
|
|
$confCheckMock = $this->getMockBuilder(d3usermanager_configurationcheck::class)
|
|
->disableOriginalConstructor()
|
|
->onlyMethods(['checkThrowingExceptions'])
|
|
->getMock();
|
|
$confCheckMock->expects($this->once())->method('checkThrowingExceptions');
|
|
d3GetOxidDIC()->set(d3usermanager_configurationcheck::class, $confCheckMock);
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$oManagerMock->method('getValue')->willReturn($configuration);
|
|
|
|
$this->callMethod(
|
|
$this->_oController,
|
|
'checkForConfigurationException',
|
|
[$oManagerMock]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array[]
|
|
*/
|
|
public function canCheckForConfigurationExceptionDataProvider(): array
|
|
{
|
|
return [
|
|
[d3usermanager_configurationcheck::REQUIREMENTS_AND_ACTIONS],
|
|
[d3usermanager_configurationcheck::ACTIONS_ONLY],
|
|
];
|
|
}
|
|
}
|