Usermanager/tests/unit/Application/Controller/Admin/d3_cfg_usermanageritem_overviewTest.php

1501 lignes
51 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\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_action;
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview;
use D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_requ;
use D3\Usermanager\Application\Model\Actions\d3usermanager_actionlist;
use D3\Usermanager\Application\Model\d3usermanager;
use D3\Usermanager\Application\Model\d3usermanager_conf;
use D3\Usermanager\Application\Model\d3usermanager_configurationcheck;
use D3\Usermanager\Application\Model\d3usermanager_listgenerator;
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_requirementException;
use D3\Usermanager\Application\Model\Requirements\d3usermanager_requirementlist;
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\Exception\SystemComponentException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Request;
use OxidEsales\Eshop\Core\UtilsView;
use PHPUnit\Framework\MockObject\MockObject;
use ReflectionException;
use stdClass;
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview
*/
class d3_cfg_usermanageritem_overviewTest extends d3UsermanagerUnitTestCase
{
/** @var d3_cfg_usermanageritem_overview */
protected $_oController;
/**
* setup basic requirements
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws Exception
*/
public function setUp(): void
{
parent::setUp();
$this->_oController = d3GetOxidDIC()->get(d3_cfg_usermanageritem_overview::class);
}
public function tearDown(): void
{
parent::tearDown();
unset($this->_oController);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::render
* @test
* @throws ReflectionException
*/
public function renderThrowsException()
{
/** @var d3usermanager_requirementException|MockObject $excMock */
$excMock = $this->getMockBuilder(d3usermanager_requirementException::class)
->disableOriginalConstructor()
->getMock();
/** @var d3usermanager_configurationcheck|MockObject $confCheckMock */
$confCheckMock = $this->getMockBuilder(d3usermanager_configurationcheck::class)
->onlyMethods(['checkThrowingExceptions'])
->disableOriginalConstructor()
->getMock();
$confCheckMock->method('checkThrowingExceptions')->willThrowException($excMock);
d3GetOxidDIC()->set(d3usermanager_configurationcheck::class, $confCheckMock);
/** @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);
$this->callMethod(
$this->_oController,
'render'
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::render
* @test
* @throws ReflectionException
*/
public function renderDontThrowsException()
{
/** @var d3usermanager_configurationcheck|MockObject $confCheckMock */
$confCheckMock = $this->getMockBuilder(d3usermanager_configurationcheck::class)
->onlyMethods(['checkThrowingExceptions'])
->disableOriginalConstructor()
->getMock();
$confCheckMock->method('checkThrowingExceptions');
d3GetOxidDIC()->set(d3usermanager_configurationcheck::class, $confCheckMock);
/** @var UtilsView|MockObject $utilsViewMock */
$utilsViewMock = $this->getMockBuilder(UtilsView::class)
->onlyMethods(['addErrorToDisplay'])
->getMock();
$utilsViewMock->expects($this->never())->method('addErrorToDisplay')->willReturn(true);
d3GetOxidDIC()->set('d3ox.usermanager.'.UtilsView::class, $utilsViewMock);
$this->callMethod(
$this->_oController,
'render'
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getActionAdminController
* @test
* @throws ReflectionException
*/
public function actionAdminControllerIsRightInstance()
{
$this->assertInstanceOf(
d3_cfg_usermanageritem_action::class,
$this->callMethod(
$this->_oController,
'getActionAdminController'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getRequirementAdminController
* @test
* @throws ReflectionException
*/
public function requirementAdminControllerIsRightInstance()
{
$this->assertInstanceOf(
d3_cfg_usermanageritem_requ::class,
$this->callMethod(
$this->_oController,
'getRequirementAdminController'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::__call
* @test
* @throws ReflectionException
*/
public function callFromActionItemClassPass()
{
$sMethodName = 'methodeName';
$sOtherMethodName = 'otherMethodName';
$mExpectedAction = 'returnValueAction';
$mExpectedRequ = 'returnValueRequ';
$mExpectedController = 'returnValueController';
/** @var d3_cfg_usermanageritem_action|MockObject $oActionAdminControllerMock */
$oActionAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_action::class)
->addMethods([$sMethodName])
->getMock();
$oActionAdminControllerMock
->expects($this->once())
->method($sMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedAction);
/** @var d3_cfg_usermanageritem_requ|MockObject $oRequirementAdminControllerMock */
$oRequirementAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_requ::class)
->addMethods([$sOtherMethodName])
->getMock();
$oRequirementAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedRequ);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->addMethods(['otherMethodName'])
->onlyMethods([
'getActionAdminController',
'getRequirementAdminController',
])
->getMock();
$oControllerMock->method('getActionAdminController')->willReturn($oActionAdminControllerMock);
$oControllerMock->method('getRequirementAdminController')->willReturn($oRequirementAdminControllerMock);
$oControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedController);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpectedAction,
$this->callMethod(
$this->_oController,
'__call',
[$sMethodName, ['sArg1']]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::__call
* @test
* @throws ReflectionException
*/
public function callFromRequItemClassPass()
{
$sMethodName = 'methodeName';
$sOtherMethodName = 'otherMethodName';
$mExpectedAction = 'returnValueAction';
$mExpectedRequ = 'returnValueRequ';
$mExpectedController = 'returnValueController';
/** @var d3_cfg_usermanageritem_action|MockObject $oActionAdminControllerMock */
$oActionAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_action::class)
->addMethods([$sOtherMethodName])
->getMock();
$oActionAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedAction);
/** @var d3_cfg_usermanageritem_requ|MockObject $oRequirementAdminControllerMock */
$oRequirementAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_requ::class)
->addMethods([$sMethodName])
->getMock();
$oRequirementAdminControllerMock
->expects($this->once())
->method($sMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedRequ);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->addMethods([$sOtherMethodName])
->onlyMethods([
'getActionAdminController',
'getRequirementAdminController',
])
->getMock();
$oControllerMock->method('getActionAdminController')->willReturn($oActionAdminControllerMock);
$oControllerMock->method('getRequirementAdminController')->willReturn($oRequirementAdminControllerMock);
$oControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedController);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpectedRequ,
$this->callMethod(
$this->_oController,
'__call',
[$sMethodName, ['sArg1']]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::__call
* @test
* @throws ReflectionException
*/
public function callFromControllerClassPass()
{
$sMethodName = 'methodeName';
$sOtherMethodName = 'otherMethodName';
$mExpectedAction = 'returnValueAction';
$mExpectedRequ = 'returnValueRequ';
$mExpectedController = 'returnValueController';
/** @var d3_cfg_usermanageritem_action|MockObject $oActionAdminControllerMock */
$oActionAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_action::class)
->addMethods([$sOtherMethodName])
->getMock();
$oActionAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedAction);
/** @var d3_cfg_usermanageritem_requ|MockObject $oRequirementAdminControllerMock */
$oRequirementAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_requ::class)
->addMethods([$sOtherMethodName])
->getMock();
$oRequirementAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedRequ);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->addMethods([$sMethodName])
->onlyMethods([
'getActionAdminController',
'getRequirementAdminController',
])
->getMock();
$oControllerMock->method('getActionAdminController')->willReturn($oActionAdminControllerMock);
$oControllerMock->method('getRequirementAdminController')->willReturn($oRequirementAdminControllerMock);
$oControllerMock
->expects($this->once())
->method($sMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedController);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpectedController,
$this->callMethod(
$this->_oController,
'__call',
[$sMethodName, ['sArg1']]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::__call
* @test
* @throws ReflectionException
*/
public function callDontPass()
{
$sMethodName = 'methodeName';
$sOtherMethodName = 'otherMethodName';
$mExpectedAction = 'returnValueAction';
$mExpectedRequ = 'returnValueRequ';
$mExpectedController = 'returnValueController';
/** @var d3_cfg_usermanageritem_action|MockObject $oActionAdminControllerMock */
$oActionAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_action::class)
->addMethods([$sOtherMethodName])
->getMock();
$oActionAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedAction);
/** @var d3_cfg_usermanageritem_requ|MockObject $oRequirementAdminControllerMock */
$oRequirementAdminControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_requ::class)
->addMethods([$sOtherMethodName])
->getMock();
$oRequirementAdminControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedRequ);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->addMethods([$sOtherMethodName])
->onlyMethods([
'getActionAdminController',
'getRequirementAdminController',
])
->getMock();
$oControllerMock->method('getActionAdminController')->willReturn($oActionAdminControllerMock);
$oControllerMock->method('getRequirementAdminController')->willReturn($oRequirementAdminControllerMock);
$oControllerMock
->expects($this->never())
->method($sOtherMethodName)
->with(
$this->stringContains('sArg1')
)
->willReturn($mExpectedController);
$this->_oController = $oControllerMock;
$this->expectException(SystemComponentException::class);
$this->assertSame(
$mExpectedController,
$this->callMethod(
$this->_oController,
'__call',
[$sMethodName, ['sArg1']]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getRequirementListObject
* @test
* @throws ReflectionException
* @throws Exception
*/
public function requirementListObjectIsRightInstance()
{
$this->assertInstanceOf(
d3usermanager_requirementlist::class,
$this->callMethod(
$this->_oController,
"getRequirementListObject",
[d3GetOxidDIC()->get(d3usermanager::class)]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getRequirementList
* @test
* @throws ReflectionException
*/
public function canGetRequirementList()
{
$expected = [
'test' => 'item',
];
/** @var d3usermanager_conf|MockObject $oManagerConfMock */
$oManagerConfMock = $this->getMockBuilder(d3usermanager_conf::class)
->onlyMethods(['getRequirementIdList'])
->getMock();
$oManagerConfMock->method('getRequirementIdList')->willReturn([]);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getConfiguration'])
->getMock();
$oProfileMock->method('getConfiguration')->willReturn($oManagerConfMock);
/** @var d3usermanager_requirementlist|MockObject $oRequListMock */
$oRequListMock = $this->getMockBuilder(d3usermanager_requirementlist::class)
->onlyMethods([
'setRequirements',
'getRequirementList',
])
->setConstructorArgs([$oProfileMock])
->getMock();
$oRequListMock->method('setRequirements');
$oRequListMock->expects($this->once())->method('getRequirementList')->willReturn($expected);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'getProfile',
'getRequirementListObject',
])
->getMock();
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$oControllerMock->method('getRequirementListObject')->willReturn($oRequListMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$expected,
$this->callMethod(
$this->_oController,
"getRequirementList"
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getActionListObject
* @test
* @throws ReflectionException
* @throws Exception
*/
public function actionListObjectIsRightInstance()
{
$this->assertInstanceOf(
d3usermanager_actionlist::class,
$this->callMethod(
$this->_oController,
"getActionListObject",
[d3GetOxidDIC()->get(d3usermanager::class)]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getActionList
* @test
* @throws ReflectionException
* @throws Exception
*/
public function canGetActionList()
{
$expected = [
'test' => 'item',
];
/** @var d3usermanager_conf|MockObject $oManagerConfMock */
$oManagerConfMock = $this->getMockBuilder(d3usermanager_conf::class)
->onlyMethods(['getActionIdList'])
->getMock();
$oManagerConfMock->method('getActionIdList')->willReturn([]);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getConfiguration'])
->getMock();
$oProfileMock->method('getConfiguration')->willReturn($oManagerConfMock);
/** @var d3usermanager_actionlist|MockObject $oActionListMock */
$oActionListMock = $this->getMockBuilder(d3usermanager_actionlist::class)
->onlyMethods([
'setActions',
'getActionList',
])
->setConstructorArgs([$oProfileMock, d3GetOxidDIC()->get('d3ox.usermanager.'.User::class)])
->getMock();
$oActionListMock->method('setActions');
$oActionListMock->expects($this->once())->method('getActionList')->willReturn($expected);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'getProfile',
'getActionListObject',
])
->getMock();
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$oControllerMock->method('getActionListObject')->willReturn($oActionListMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$expected,
$this->callMethod(
$this->_oController,
"getActionList"
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::isEditMode
* @test
* @throws ReflectionException
*/
public function editModeIsBoolean()
{
$this->assertIsBool(
$this->callMethod(
$this->_oController,
'isEditMode'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::setRequestData
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::_getRequestData
* @test
* @throws ReflectionException
*/
public function canSetAndGetRequestData()
{
$sExpected = 'testData';
$_POST['sRequestData'] = $sExpected;
$this->callMethod($this->_oController, 'setRequestData');
$this->assertSame($sExpected, $this->callMethod($this->_oController, '_getRequestData'));
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getToFinishedCount
* @test
* @throws ReflectionException
* @throws Exception
*/
public function canGetToFinishedCountCanRequestData()
{
$mExpected = 255;
/** @var d3usermanager_listgenerator|MockObject $oListGeneratorMock */
$oListGeneratorMock = $this->getMockBuilder(d3usermanager_listgenerator::class)
->onlyMethods(['getConcernedItemCount'])
->setConstructorArgs([d3GetOxidDIC()->get(d3usermanager::class)])
->getMock();
$oListGeneratorMock->method('getConcernedItemCount')->willReturn($mExpected);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getListGenerator'])
->getMock();
$oProfileMock->method('getListGenerator')->willReturn($oListGeneratorMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'getProfile',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(true);
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getToFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getToFinishedCount
* @test
* @throws ReflectionException
*/
public function canGetToFinishedCountHasRequestData()
{
$mExpected = 256;
$_POST['toFinishedCount'] = $mExpected;
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(true);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getToFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getToFinishedCount
* @test
* @throws ReflectionException
*/
public function canNotGetToFinishedCount()
{
/** @var Request|MockObject $requestMock */
$requestMock = $this->getMockBuilder(Request::class)
->onlyMethods(['getRequestEscapedParameter'])
->getMock();
$requestMock->method('getRequestEscapedParameter')
->with($this->matches('toFinishedCount'))
->willReturn(20);
d3GetOxidDIC()->set('d3ox.usermanager.'.Request::class, $requestMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertEmpty(
$this->callMethod(
$this->_oController,
'getToFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedCount
* @test
* @throws ReflectionException
* @throws Exception
*/
public function canGetFinishedCountCanRequestData()
{
$mExpected = 257;
/** @var d3usermanager_listgenerator|MockObject $oListGeneratorMock */
$oListGeneratorMock = $this->getMockBuilder(d3usermanager_listgenerator::class)
->onlyMethods(['getFinishedItemCount'])
->setConstructorArgs([d3GetOxidDIC()->get(d3usermanager::class)])
->getMock();
$oListGeneratorMock->method('getFinishedItemCount')->willReturn($mExpected);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getListGenerator'])
->getMock();
$oProfileMock->method('getListGenerator')->willReturn($oListGeneratorMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'getProfile',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(true);
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedCount
* @test
* @throws ReflectionException
*/
public function canGetFinishedCountHasRequestData()
{
$mExpected = 258;
$_POST['finishedCount'] = $mExpected;
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(true);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedCount
* @test
* @throws ReflectionException
*/
public function canNotGetFinishedCount()
{
/** @var Request|MockObject $requestMock */
$requestMock = $this->getMockBuilder(Request::class)
->onlyMethods(['getRequestEscapedParameter'])
->getMock();
$requestMock->method('getRequestEscapedParameter')
->with($this->matches('finishedCount'))
->willReturn(20);
d3GetOxidDIC()->set('d3ox.usermanager.'.Request::class, $requestMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertEmpty(
$this->callMethod(
$this->_oController,
'getFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedMonthCount
* @test
* @throws ReflectionException
* @throws Exception
*/
public function canGetFinishedMonthCountCanRequestData()
{
$mExpected = 259;
/** @var d3usermanager_listgenerator|MockObject $oListGeneratorMock */
$oListGeneratorMock = $this->getMockBuilder(d3usermanager_listgenerator::class)
->onlyMethods(['getFinishedMonthItemCount'])
->setConstructorArgs([d3GetOxidDIC()->get(d3usermanager::class)])
->getMock();
$oListGeneratorMock->method('getFinishedMonthItemCount')->willReturn($mExpected);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getListGenerator'])
->getMock();
$oProfileMock->method('getListGenerator')->willReturn($oListGeneratorMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'getProfile',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(true);
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getFinishedMonthCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedMonthCount
* @test
* @throws ReflectionException
*/
public function canGetFinishedMonthCountHasRequestData()
{
$mExpected = 260;
$_POST['finishedMonthCount'] = $mExpected;
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(true);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getFinishedMonthCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getFinishedMonthCount
* @test
* @throws ReflectionException
*/
public function canNotGetFinishedMonthCount()
{
/** @var Request|MockObject $requestMock */
$requestMock = $this->getMockBuilder(Request::class)
->onlyMethods(['getRequestEscapedParameter'])
->getMock();
$requestMock->method('getRequestEscapedParameter')
->with($this->matches('finishedMonthCount'))
->willReturn(20);
d3GetOxidDIC()->set('d3ox.usermanager.'.Request::class, $requestMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertEmpty(
$this->callMethod(
$this->_oController,
'getFinishedMonthCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getNotFinishedCount
* @test
* @throws ReflectionException
* @throws Exception
*/
public function canGetNotFinishedCountCanRequestData()
{
$mExpected = 261;
/** @var d3usermanager_listgenerator|MockObject $oListGeneratorMock */
$oListGeneratorMock = $this->getMockBuilder(d3usermanager_listgenerator::class)
->onlyMethods(['getNotFinishedItemCount'])
->setConstructorArgs([d3GetOxidDIC()->get(d3usermanager::class)])
->getMock();
$oListGeneratorMock->method('getNotFinishedItemCount')->willReturn($mExpected);
/** @var d3usermanager|MockObject $oProfileMock */
$oProfileMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods(['getListGenerator'])
->getMock();
$oProfileMock->method('getListGenerator')->willReturn($oListGeneratorMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'getProfile',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(true);
$oControllerMock->method('getProfile')->willReturn($oProfileMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getNotFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getNotFinishedCount
* @test
* @throws ReflectionException
*/
public function canGetNotFinishedCountHasRequestData()
{
$mExpected = 262;
$_POST['notFinishedCount'] = $mExpected;
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(true);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getNotFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getNotFinishedCount
* @test
* @throws ReflectionException
*/
public function canNotGetNotFinishedMonthCount()
{
/** @var Request|MockObject $requestMock */
$requestMock = $this->getMockBuilder(Request::class)
->onlyMethods(['getRequestEscapedParameter'])
->getMock();
$requestMock->method('getRequestEscapedParameter')
->with($this->matches('notFinishedCount'))
->willReturn(20);
d3GetOxidDIC()->set('d3ox.usermanager.'.Request::class, $requestMock);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'canRequestData',
'canUseRequestData',
])
->getMock();
$oControllerMock->method('canRequestData')->willReturn(false);
$oControllerMock->method('canUseRequestData')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertEmpty(
$this->callMethod(
$this->_oController,
'getNotFinishedCount'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::canRequestData
* @test
* @throws ReflectionException
*/
public function canRequestDataNoDemand()
{
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['getDataOnDemand'])
->getMock();
$oControllerMock->method('getDataOnDemand')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertTrue(
$this->callMethod(
$this->_oController,
'canRequestData',
[$sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::canRequestData
* @test
* @throws ReflectionException
*/
public function canRequestDataOnDemandHasRequestData()
{
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'getDataOnDemand',
'_getRequestData',
])
->getMock();
$oControllerMock->method('getDataOnDemand')->willReturn(true);
$oControllerMock->method('_getRequestData')->willReturn($sFncName);
$this->_oController = $oControllerMock;
$this->assertTrue(
$this->callMethod(
$this->_oController,
'canRequestData',
[$sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::canRequestData
* @test
* @throws ReflectionException
*/
public function canRequestDataOnDemandHasNoRequestData()
{
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'getDataOnDemand',
'_getRequestData',
])
->getMock();
$oControllerMock->method('getDataOnDemand')->willReturn(true);
$oControllerMock->method('_getRequestData')->willReturn('otherFncName');
$this->_oController = $oControllerMock;
$this->assertFalse(
$this->callMethod(
$this->_oController,
'canRequestData',
[$sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::canUseRequestData
* @test
* @throws ReflectionException
*/
public function checkUsableRequestDataNoDemand()
{
$iRequestCount = '300';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['getDataOnDemand'])
->getMock();
$oControllerMock->method('getDataOnDemand')->willReturn(false);
$this->_oController = $oControllerMock;
$this->assertFalse(
$this->callMethod(
$this->_oController,
'canUseRequestData',
[$iRequestCount]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::canUseRequestData
* @test
*
* @param $dataOnDemand
* @param $requestData
* @param $expected
*
* @throws ReflectionException
* @dataProvider checkUsableRequestDataOnDemandDataProvider
*/
public function checkUsableRequestDataOnDemandPass($dataOnDemand, $requestData, $expected)
{
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['getDataOnDemand'])
->getMock();
$oControllerMock->method('getDataOnDemand')->willReturn($dataOnDemand);
$this->_oController = $oControllerMock;
$this->assertSame(
$expected,
$this->callMethod(
$this->_oController,
'canUseRequestData',
[ $requestData ]
)
);
}
/**
* @return array[]
*/
public function checkUsableRequestDataOnDemandDataProvider(): array
{
return [
'noDOD' => [false, '10', false],
'intRequest' => [true, 10, true],
'stringRequest' => [true, '10', true],
'falseRequest' => [true, false, false],
'nullRequest' => [true, null, false],
];
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getDataOnDemand
* @test
*
* @param $onDemandSetting
* @param $expected
*
* @throws ReflectionException
* @dataProvider dataOnDemandOptionPassDataProvider
*/
public function dataOnDemandOptionPass($onDemandSetting, $expected)
{
/** @var stdClass|MockObject $oModCfgMock */
$oModCfgMock = $this->getMockBuilder(stdClass::class)
->addMethods(['getValue'])
->getMock();
$oModCfgMock->method('getValue')->willReturn($onDemandSetting);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['d3GetSet'])
->getMock();
$oControllerMock->method('d3GetSet')->willReturn($oModCfgMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$expected,
$this->callMethod(
$this->_oController,
'getDataOnDemand'
)
);
}
/**
* @return array[]
*/
public function dataOnDemandOptionPassDataProvider(): array
{
return [
'onDemand unset' => [null, false],
'onDemand not set' => ['0', false],
'onDemand set' => ['1', true],
];
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::hasRequestedData
* @test
* @throws ReflectionException
*/
public function hasRequestedDataHasData()
{
$_POST['sRequestName'] = 400;
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['_getRequestData'])
->getMock();
$oControllerMock->method('_getRequestData')->willReturn($sFncName);
$this->_oController = $oControllerMock;
$this->assertTrue(
$this->callMethod(
$this->_oController,
'hasRequestedData',
['sRequestName', $sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::hasRequestedData
* @test
* @throws ReflectionException
*/
public function hasRequestedDataHasNoData()
{
$_POST['sRequestName'] = null;
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['_getRequestData'])
->getMock();
$oControllerMock->method('_getRequestData')->willReturn($sFncName);
$this->_oController = $oControllerMock;
$this->assertTrue(
$this->callMethod(
$this->_oController,
'hasRequestedData',
['sRequestName', $sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::hasRequestedData
* @test
* @throws ReflectionException
*/
public function hasRequestedDataHasOtherFunctionName()
{
$_POST['sRequestName'] = 401;
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['_getRequestData'])
->getMock();
$oControllerMock->method('_getRequestData')->willReturn('otherFncName');
$this->_oController = $oControllerMock;
$this->assertTrue(
$this->callMethod(
$this->_oController,
'hasRequestedData',
['sRequestName', $sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::hasRequestedData
* @test
* @throws ReflectionException
*/
public function hasRequestedDataHasNoDataAndOtherFunctionName()
{
$_POST['sRequestName'] = null;
$sFncName = 'fncName';
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['_getRequestData'])
->getMock();
$oControllerMock->method('_getRequestData')->willReturn('otherFncName');
$this->_oController = $oControllerMock;
$this->assertFalse(
$this->callMethod(
$this->_oController,
'hasRequestedData',
['sRequestName', $sFncName]
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getManager
* @test
* @throws ReflectionException
*/
public function getManagerReturnsRightInstance()
{
$this->assertInstanceOf(
d3usermanager::class,
$this->callMethod(
$this->_oController,
'getManager'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getLang
* @test
* @throws ReflectionException
*/
public function getLangReturnsRightInstance()
{
$this->assertInstanceOf(
Language::class,
$this->callMethod(
$this->_oController,
'getLang'
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getManagerTitle
* @test
* @throws ReflectionException
*/
public function getManagerTitleFromObjectPass()
{
$mExpected = 'managerTitleFromObject';
/** @var d3usermanager|MockObject $oManagerMock */
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods([
'load',
'getFieldData',
])
->getMock();
$oManagerMock->method('load')->willReturn(true);
$oManagerMock->method('getFieldData')->willReturn($mExpected);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods(['getManager'])
->getMock();
$oControllerMock->method('getManager')->willReturn($oManagerMock);
$this->_oController = $oControllerMock;
$this->assertSame(
$mExpected,
$this->callMethod(
$this->_oController,
'getManagerTitle',
['sManagerId']
)
);
}
/**
* @covers \D3\Usermanager\Application\Controller\Admin\d3_cfg_usermanageritem_overview::getManagerTitle
* @test
* @throws ReflectionException
*/
public function getManagerTitleFromTranslationPass()
{
$mExpected = 'managerTitleFromTranslation';
/** @var Language|MockObject $oLangMock */
$oLangMock = $this->getMockBuilder(Language::class)
->onlyMethods(['translateString'])
->getMock();
$oLangMock->method('translateString')->willReturn($mExpected);
/** @var d3usermanager|MockObject $oManagerMock */
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
->onlyMethods([
'load',
'getFieldData',
])
->getMock();
$oManagerMock->method('load')->willReturn(false);
$oManagerMock->method('getFieldData')->willReturn($mExpected);
/** @var d3_cfg_usermanageritem_overview|MockObject $oControllerMock */
$oControllerMock = $this->getMockBuilder(d3_cfg_usermanageritem_overview::class)
->onlyMethods([
'getManager',
'getLang',
])
->getMock();
$oControllerMock->method('getManager')->willReturn($oManagerMock);
$oControllerMock->method('getLang')->willReturn($oLangMock);
$this->_oController = $oControllerMock;
$sTitle = $this->callMethod(
$this->_oController,
'getManagerTitle',
['sManagerId']
);
$this->assertMatchesRegularExpression('@'.$mExpected.'@i', $sTitle);
$this->assertMatchesRegularExpression('@sManagerId@i', $sTitle);
}
/**
* @param $sLicenseKey
* @param d3usermanager $oManager
* @return null
*/
protected function _setModuleLicenseKey($sLicenseKey, $oManager = null)
{
return null;
}
}