oxtotp/src/tests/unit/Modules/Application/Controller/d3_totp_getUserTestTrait.php

243 lines
8.9 KiB
PHP
Raw Normal View History

2019-08-08 23:50:09 +02:00
<?php
/**
2022-09-26 15:22:26 +02:00
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
2019-08-08 23:50:09 +02:00
*
2022-09-26 15:22:26 +02:00
* https://www.d3data.de
2019-08-08 23:50:09 +02:00
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
2022-09-26 15:22:26 +02:00
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
2019-08-08 23:50:09 +02:00
*/
2022-11-24 23:52:16 +01:00
declare(strict_types=1);
2019-08-08 23:50:09 +02:00
namespace D3\Totp\tests\unit\Modules\Application\Controller;
2022-11-10 16:45:57 +01:00
use D3\TestingTools\Development\CanAccessRestricted;
2019-08-08 23:50:09 +02:00
use D3\Totp\Application\Model\d3totp;
use D3\Totp\Modules\Application\Controller\d3_totp_OrderController;
2022-11-25 15:42:33 +01:00
use D3\Totp\Modules\Application\Controller\d3_totp_PaymentController;
use D3\Totp\Modules\Application\Controller\d3_totp_UserController;
2019-08-08 23:50:09 +02:00
use OxidEsales\Eshop\Application\Model\User;
use OxidEsales\Eshop\Core\Session;
2022-09-28 00:08:36 +02:00
use PHPUnit\Framework\MockObject\MockObject;
use ReflectionException;
2019-08-08 23:50:09 +02:00
trait d3_totp_getUserTestTrait
{
2022-11-10 16:45:57 +01:00
use CanAccessRestricted;
protected $userFixtureId = 'userIdFixture1';
/** @var User */
protected $userFixture;
public function setUp(): void
{
$this->userFixture = oxNew(User::class);
$this->userFixture->setId($this->userFixtureId);
$this->userFixture->assign(['oxlname' => __METHOD__]);
$this->userFixture->save();
$this->userFixture->load($this->userFixtureId);
}
public function tearDown(): void
{
$this->userFixture->delete($this->userFixtureId);
}
2019-08-08 23:50:09 +02:00
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
2022-09-28 22:25:51 +02:00
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
2019-08-08 23:50:09 +02:00
*/
public function getUserHasNoUser()
{
2022-11-25 15:42:33 +01:00
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
2022-09-28 00:08:36 +02:00
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
->onlyMethods(['d3GetTotpObject'])
->getMock();
2019-08-08 23:50:09 +02:00
$oControllerMock->expects($this->never())->method('d3GetTotpObject');
$this->assertFalse(
2022-11-25 15:42:33 +01:00
$this->callMethod($oControllerMock, 'getUser')
2019-08-08 23:50:09 +02:00
);
}
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
2022-09-28 22:25:51 +02:00
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
2019-08-08 23:50:09 +02:00
*/
public function getUserTotpNotActive()
{
2022-09-28 00:08:36 +02:00
/** @var Session|MockObject $oSessionMock */
$oSessionMock = $this->getMockBuilder(Session::class)
->onlyMethods(['getVariable'])
->getMock();
2019-08-08 23:50:09 +02:00
$oSessionMock->method('getVariable')->willReturn(true);
2022-09-28 00:08:36 +02:00
/** @var d3totp|MockObject $oTotpMock */
$oTotpMock = $this->getMockBuilder(d3totp::class)
->disableOriginalConstructor()
->onlyMethods([
'isActive',
2022-09-30 21:06:30 +02:00
'loadByUserId',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oTotpMock->method('isActive')->willReturn(false);
$oTotpMock->method('loadByUserId')->willReturn(true);
2022-11-25 15:42:33 +01:00
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
2022-09-28 00:08:36 +02:00
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
->onlyMethods([
'd3GetTotpObject',
'd3TotpGetSessionObject',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oControllerMock->expects($this->once())->method('d3GetTotpObject')->willReturn($oTotpMock);
$oControllerMock->method('d3TotpGetSessionObject')->willReturn($oSessionMock);
$oControllerMock->setUser($this->userFixture);
2019-08-08 23:50:09 +02:00
$this->assertSame(
$this->userFixture,
2022-11-25 15:42:33 +01:00
$this->callMethod($oControllerMock, 'getUser')
2019-08-08 23:50:09 +02:00
);
$oControllerMock->setUser(null);
2019-08-08 23:50:09 +02:00
}
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
2022-09-28 22:25:51 +02:00
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
2019-08-08 23:50:09 +02:00
*/
public function getUserTotpFinished()
{
2022-09-28 00:08:36 +02:00
/** @var Session|MockObject $oSessionMock */
$oSessionMock = $this->getMockBuilder(Session::class)
->onlyMethods(['getVariable'])
->getMock();
2019-08-08 23:50:09 +02:00
$oSessionMock->method('getVariable')->willReturn(true);
2022-09-28 00:08:36 +02:00
/** @var d3totp|MockObject $oTotpMock */
$oTotpMock = $this->getMockBuilder(d3totp::class)
->onlyMethods([
'isActive',
2022-09-30 21:06:30 +02:00
'loadByUserId',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oTotpMock->method('isActive')->willReturn(true);
$oTotpMock->method('loadByUserId')->willReturn(true);
2022-11-25 15:42:33 +01:00
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
2022-09-28 00:08:36 +02:00
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
->onlyMethods([
'd3GetTotpObject',
'd3TotpGetSessionObject',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oControllerMock->expects($this->once())->method('d3GetTotpObject')->willReturn($oTotpMock);
$oControllerMock->method('d3TotpGetSessionObject')->willReturn($oSessionMock);
$oControllerMock->setUser($this->userFixture);
2019-08-08 23:50:09 +02:00
$this->assertSame(
$this->userFixture,
2022-11-25 15:42:33 +01:00
$this->callMethod($oControllerMock, 'getUser')
2019-08-08 23:50:09 +02:00
);
$oControllerMock->setUser(null);
2019-08-08 23:50:09 +02:00
}
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
2022-09-28 22:25:51 +02:00
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
2019-08-08 23:50:09 +02:00
*/
public function getUserTotpNotFinished()
{
2022-09-28 00:08:36 +02:00
/** @var Session|MockObject $oSessionMock */
$oSessionMock = $this->getMockBuilder(Session::class)
->onlyMethods(['getVariable'])
->getMock();
2019-08-08 23:50:09 +02:00
$oSessionMock->method('getVariable')->willReturn(false);
2022-09-28 00:08:36 +02:00
/** @var d3totp|MockObject $oTotpMock */
$oTotpMock = $this->getMockBuilder(d3totp::class)
->disableOriginalConstructor()
->onlyMethods([
'isActive',
2022-09-30 21:06:30 +02:00
'loadByUserId',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oTotpMock->method('isActive')->willReturn(true);
$oTotpMock->method('loadByUserId')->willReturn(true);
2022-11-25 15:42:33 +01:00
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
2022-09-28 00:08:36 +02:00
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
->onlyMethods([
'd3GetTotpObject',
'd3TotpGetSessionObject',
2022-09-28 00:08:36 +02:00
])
->getMock();
2019-08-08 23:50:09 +02:00
$oControllerMock->expects($this->once())->method('d3GetTotpObject')->willReturn($oTotpMock);
$oControllerMock->method('d3TotpGetSessionObject')->willReturn($oSessionMock);
$oControllerMock->setUser($this->userFixture);
2019-08-08 23:50:09 +02:00
$this->assertFalse(
2022-11-25 15:42:33 +01:00
$this->callMethod($oControllerMock, 'getUser')
2019-08-08 23:50:09 +02:00
);
$oControllerMock->setUser(null);
2019-08-08 23:50:09 +02:00
}
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
2022-09-28 22:25:51 +02:00
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::d3GetTotpObject
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::d3GetTotpObject
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::d3GetTotpObject
2019-08-08 23:50:09 +02:00
*/
public function d3GetTotpObjectReturnsRightObject()
{
2022-11-25 15:42:33 +01:00
/** @var d3_totp_UserController|d3_totp_PaymentController|d3_totp_OrderController $oController */
$oController = oxNew($this->sControllerClass);
2019-08-08 23:50:09 +02:00
$this->assertInstanceOf(
d3totp::class,
2022-11-25 15:42:33 +01:00
$this->callMethod($oController, 'd3GetTotpObject')
2019-08-08 23:50:09 +02:00
);
}
/**
* @test
2022-09-28 00:08:36 +02:00
* @throws ReflectionException
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_OrderController::d3TotpGetSessionObject
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::d3TotpGetSessionObject
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::d3TotpGetSessionObject
2019-08-08 23:50:09 +02:00
*/
public function d3GetSessionObjectReturnsRightObject()
{
2022-11-25 15:42:33 +01:00
/** @var d3_totp_UserController|d3_totp_PaymentController|d3_totp_OrderController $oController */
$oController = oxNew($this->sControllerClass);
2019-08-08 23:50:09 +02:00
$this->assertInstanceOf(
Session::class,
2022-09-28 00:08:36 +02:00
$this->callMethod(
2022-11-25 15:42:33 +01:00
$oController,
'd3TotpGetSessionObject'
2022-09-28 00:08:36 +02:00
)
2019-08-08 23:50:09 +02:00
);
}
2022-09-30 21:06:30 +02:00
}