1995 lines
70 KiB
PHP
1995 lines
70 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\Modules\Application\Model;
|
|
|
|
use D3\ModCfg\Application\Model\d3str;
|
|
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
|
|
use D3\ModCfg\Application\Model\Log\d3log;
|
|
use D3\Usermanager\Application\Model\d3usermanager;
|
|
use D3\Usermanager\Application\Model\d3usermanagerlist;
|
|
use D3\Usermanager\Application\Model\Exceptions\d3usermanager_templaterendererExceptionInterface;
|
|
use D3\Usermanager\Application\Model\Exceptions\emptyMessageException;
|
|
use D3\Usermanager\Application\Model\MessageContentGenerator;
|
|
use D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager;
|
|
use D3\Usermanager\tests\unit\d3UsermanagerUnitTestCase;
|
|
use Doctrine\DBAL\Query\QueryBuilder;
|
|
use Exception;
|
|
use Html2Text\Html2Text;
|
|
use OxidEsales\Eshop\Application\Model\Content;
|
|
use OxidEsales\Eshop\Application\Model\Remark;
|
|
use OxidEsales\Eshop\Application\Model\Shop;
|
|
use OxidEsales\Eshop\Application\Model\User;
|
|
use OxidEsales\Eshop\Core\Email;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
use OxidEsales\Eshop\Core\Field;
|
|
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
|
use OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface;
|
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateEngineInterface;
|
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererBridgeInterface;
|
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererInterface;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use ReflectionException;
|
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager
|
|
*/
|
|
class d3_oxemail_usermanagerTest extends d3UsermanagerUnitTestCase
|
|
{
|
|
/** @var d3_oxemail_usermanager */
|
|
protected $_oModel;
|
|
|
|
/**
|
|
* setup basic requirements
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
* @throws Exception
|
|
*/
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->_oModel = d3GetOxidDIC()->get('d3ox.usermanager.'.Email::class);
|
|
}
|
|
|
|
public function tearDown(): void
|
|
{
|
|
parent::tearDown();
|
|
|
|
unset($this->_oModel);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::__construct
|
|
* @test
|
|
*/
|
|
public function constructorPass()
|
|
{
|
|
$this->assertEquals(
|
|
'd3usermanager',
|
|
d3GetOxidDIC()->getParameter('d3.usermanager.modcfgid')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::__construct
|
|
* @test
|
|
*/
|
|
public function constructorException()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $controller */
|
|
$controller = $this->getMockBuilder(d3_oxemail_usermanager::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
|
|
d3GetOxidDIC()->setParameter('d3.usermanager.modcfgid', 'differentModCfgid');
|
|
|
|
$this->expectException(wrongModIdException::class);
|
|
|
|
$this->callMethod(
|
|
$controller,
|
|
'__construct'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3GetUserManagerTemplateEngine
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function templateEngineHasRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
TemplateEngineInterface::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetUserManagerTemplateEngine'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3sendUserManagerEmail
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canSendUserManagerEmail()
|
|
{
|
|
$viewData = [
|
|
'item1' => 'value1',
|
|
'item2' => 'value2',
|
|
];
|
|
|
|
/** @var Shop|MockObject $oFieldMock */
|
|
$oFieldMock = $this->getMockBuilder(Shop::class)
|
|
->addMethods(['getRawValue'])
|
|
->getMock();
|
|
$oFieldMock->method('getRawValue')->willReturn('value');
|
|
|
|
/** @var Shop|MockObject $oShopMock */
|
|
$oShopMock = $this->getMockBuilder(Shop::class)
|
|
->onlyMethods([
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oShopMock->method('__get')->willReturn($oFieldMock);
|
|
$oShopMock->method('getFieldData')->willReturn('value');
|
|
|
|
/** @var d3log|MockObject $oD3LogMock */
|
|
$oD3LogMock = $this->getMockBuilder(d3log::class)
|
|
->onlyMethods(['log'])
|
|
->getMock();
|
|
$oD3LogMock->method('log')->willReturnSelf();
|
|
|
|
/** @var TemplateRendererInterface $renderer */
|
|
$renderer = ContainerFactory::getInstance()->getContainer()
|
|
->get(TemplateRendererBridgeInterface::class)
|
|
->getTemplateRenderer();
|
|
$templateEngine = $renderer->getTemplateEngine();
|
|
$templateEngineClass = get_class($templateEngine);
|
|
|
|
/** @var TemplateEngineInterface|MockObject $templateEngineMock */
|
|
$templateEngineMock = $this->getMockBuilder($templateEngineClass)
|
|
->onlyMethods(['render', 'addGlobal'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$templateEngineMock->method('render')->willReturn('renderedTemplateContent');
|
|
$templateEngineMock->expects($this->exactly(count($viewData)))->method('addGlobal')->willReturn(true);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'getShop',
|
|
'd3GetUserManagerTemplateEngine',
|
|
'setMailParams',
|
|
'setViewData',
|
|
'processViewArray',
|
|
'd3UMsetBody',
|
|
'd3UMsetAltBody',
|
|
'getBody',
|
|
'd3UMsetSubject',
|
|
'setRecipient',
|
|
'setReplyTo',
|
|
'send',
|
|
'getViewData',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('getShop')->willReturn($oShopMock);
|
|
$oModelMock->method('d3GetUserManagerTemplateEngine')->willReturn($templateEngineMock);
|
|
$oModelMock->method('setMailParams')->willReturn(true);
|
|
$oModelMock->method('setViewData')->willReturn(true);
|
|
$oModelMock->method('processViewArray')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('d3UMsetBody')->willReturn(true);
|
|
$oModelMock->method('d3UMsetAltBody')->willReturn(true);
|
|
$oModelMock->method('getBody')->willReturn('mailBody');
|
|
$oModelMock->method('d3UMsetSubject')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('setRecipient')->willReturn(true);
|
|
$oModelMock->method('setReplyTo')->willReturn(true);
|
|
$oModelMock->method('getViewData')->willReturn($viewData);
|
|
$oModelMock->expects($this->once())->method('send')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
true,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3sendUserManagerEmail',
|
|
[[]]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerUser
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canLoadUserUniqueOxid()
|
|
{
|
|
/** @var d3usermanagerlist|MockObject $oUserManagerListMock */
|
|
$oUserManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetUserSaveTriggeredManagerTasks'])
|
|
->getMock();
|
|
$oUserManagerListMock->method('d3GetUserSaveTriggeredManagerTasks')->willReturnSelf();
|
|
|
|
d3GetOxidDIC()->set(d3usermanagerlist::class, $oUserManagerListMock);
|
|
|
|
/** preparing */
|
|
/** @var QueryBuilder $queryBuilder */
|
|
$queryBuilder = ContainerFactory::getInstance()->getContainer()->get(QueryBuilderFactoryInterface::class)->create();
|
|
$queryBuilder->delete('oxuser')
|
|
->where(
|
|
$queryBuilder->expr()->or(
|
|
$queryBuilder->expr()->in('oxid', [
|
|
$queryBuilder->createNamedParameter('testOxId1'),
|
|
$queryBuilder->createNamedParameter('testOxId2'),
|
|
]),
|
|
$queryBuilder->expr()->eq('oxusername', $queryBuilder->createNamedParameter(''))
|
|
)
|
|
);
|
|
$queryBuilder->execute();
|
|
|
|
/** @var User $oUser */
|
|
$oUser = oxNew(User::class);
|
|
$oUser->setId('testOxId1');
|
|
$oUser->save();
|
|
|
|
$oReturnUser = $this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerUser',
|
|
['testOxId1']
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
User::class,
|
|
$oReturnUser
|
|
);
|
|
$this->assertSame(
|
|
'testOxId1',
|
|
$oReturnUser->getId()
|
|
);
|
|
|
|
$oUser->delete('testOxId1');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerUser
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canLoadUserOxidPartOfOtherData()
|
|
{
|
|
/** @var d3usermanagerlist|MockObject $oUserManagerListMock */
|
|
$oUserManagerListMock = $this->getMockBuilder(d3usermanagerlist::class)
|
|
->onlyMethods(['d3GetUserSaveTriggeredManagerTasks'])
|
|
->getMock();
|
|
$oUserManagerListMock->method('d3GetUserSaveTriggeredManagerTasks')->willReturn(oxNew(d3usermanagerlist::class));
|
|
|
|
d3GetOxidDIC()->set(d3usermanagerlist::class, $oUserManagerListMock);
|
|
|
|
$oUser = new User();
|
|
$oUser->setId('testOxId2');
|
|
$oUser->save();
|
|
|
|
$oReturnUser = $this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerUser',
|
|
['testOxId2@@otherData']
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
User::class,
|
|
$oReturnUser
|
|
);
|
|
$this->assertSame(
|
|
'testOxId2',
|
|
$oReturnUser->getId()
|
|
);
|
|
|
|
$oUser->delete('testOxId2');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManager
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canLoadManager()
|
|
{
|
|
/** @var d3usermanager $oManager */
|
|
$oManager = d3GetOxidDIC()->get(d3usermanager::class);
|
|
$oManager->setId('testOxId3');
|
|
$oManager->save();
|
|
|
|
$oReturnManager = $this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManager',
|
|
['testOxId3']
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
d3usermanager::class,
|
|
$oReturnManager
|
|
);
|
|
$this->assertSame(
|
|
'testOxId3',
|
|
$oReturnManager->getId()
|
|
);
|
|
|
|
$oManager->delete('testOxId3');
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::sendUserManagerMail
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canStartSendingUserManagerMail()
|
|
{
|
|
/** @var Remark|MockObject $oRemarkMock */
|
|
$oRemarkMock = $this->getMockBuilder(Remark::class)
|
|
->onlyMethods(['save'])
|
|
->getMock();
|
|
$oRemarkMock->expects($this->once())->method('save')->willReturn(true);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'getUserManagerMailContent',
|
|
'getShop',
|
|
'd3UMsetBody',
|
|
'd3UMsetAltBody',
|
|
'd3UMsetSubject',
|
|
'd3SetUserManagerReplyAddress',
|
|
'd3SetUserManagerMailRecipients',
|
|
'send',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('getUserManagerMailContent')->willReturn([
|
|
'html' => 'foo',
|
|
'plain' => 'bar',
|
|
'subject' => 'testSubject',
|
|
]);
|
|
$oModelMock->method('getShop')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.'.Shop::class));
|
|
$oModelMock->expects($this->once())->method('d3UMsetBody')->willReturn(true);
|
|
$oModelMock->method('d3UMsetAltBody')->willReturn(true);
|
|
$oModelMock->method('d3UMsetSubject')->willReturn(true);
|
|
$oModelMock->method('d3SetUserManagerReplyAddress')->willReturn(true);
|
|
$oModelMock->method('d3SetUserManagerMailRecipients')->willReturn($oRemarkMock);
|
|
$oModelMock->expects($this->once())->method('send')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
true,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'sendUserManagerMail',
|
|
[d3GetOxidDIC()->get(d3usermanager::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::sendUserManagerMail
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function cantSendEmptyUserManagerMail()
|
|
{
|
|
/** @var Remark|MockObject $oRemarkMock */
|
|
$oRemarkMock = $this->getMockBuilder(Remark::class)
|
|
->onlyMethods(['save'])
|
|
->getMock();
|
|
$oRemarkMock->expects($this->never())->method('save')->willReturn(true);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'getUserManagerMailContent',
|
|
'getShop',
|
|
'd3UMsetBody',
|
|
'd3UMsetAltBody',
|
|
'd3UMsetSubject',
|
|
'd3SetUserManagerReplyAddress',
|
|
'd3SetUserManagerMailRecipients',
|
|
'send',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('getUserManagerMailContent')->willThrowException(oxNew(emptyMessageException::class));
|
|
$oModelMock->method('getShop')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.'.Shop::class));
|
|
$oModelMock->expects($this->never())->method('d3UMsetBody')->willReturn(true);
|
|
$oModelMock->method('d3UMsetAltBody')->willReturn(true);
|
|
$oModelMock->method('d3UMsetSubject')->willReturn(true);
|
|
$oModelMock->method('d3SetUserManagerReplyAddress')->willReturn(true);
|
|
$oModelMock->method('d3SetUserManagerMailRecipients')->willReturn($oRemarkMock);
|
|
$oModelMock->expects($this->never())->method('send')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
false,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'sendUserManagerMail',
|
|
[d3GetOxidDIC()->get(d3usermanager::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetBody
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetAltBody
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetSubject
|
|
* @test
|
|
* @param $setMethod
|
|
* @param $getMethod
|
|
* @param $returnValue
|
|
* @param $expectException
|
|
*
|
|
* @throws ReflectionException
|
|
* @dataProvider canSetUserManagerMailContentDataProvider
|
|
*/
|
|
public function canSetUserManagerMailContent($setMethod, $getMethod, $returnValue, $expectException)
|
|
{
|
|
/** @var Email|MockObject $mailMock */
|
|
$mailMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([$setMethod, $getMethod, 'd3UserManagerThrowUnequalContentException'])
|
|
->getMock();
|
|
$mailMock->expects($this->atLeastOnce())->method($setMethod)->willReturn(true);
|
|
$mailMock->method($getMethod)->willReturn($returnValue);
|
|
$mailMock->expects($this->exactly((int) $expectException))->method('d3UserManagerThrowUnequalContentException');
|
|
|
|
$this->_oModel = $mailMock;
|
|
|
|
$methodName = 'd3UM'.$setMethod;
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
$methodName,
|
|
['content']
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array[]
|
|
*/
|
|
public function canSetUserManagerMailContentDataProvider(): array
|
|
{
|
|
return [
|
|
'body return passed' => ['setBody', 'getBody', 'content', false],
|
|
'body return empty' => ['setBody', 'getBody', '', true],
|
|
'altbody return passed' => ['setAltBody', 'getAltBody', 'content', false],
|
|
'altbody return empty' => ['setAltBody', 'getAltBody', '', true],
|
|
'subject return passed' => ['setSubject', 'getSubject', 'content', false],
|
|
'subject return empty' => ['setSubject', 'getSubject', '', true],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetBody
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetAltBody
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UMsetSubject
|
|
* @test
|
|
*
|
|
* @param $setMethod
|
|
* @param $getMethod
|
|
*
|
|
* @throws ReflectionException
|
|
* @dataProvider canSetUserManagerMailContentEmptyDataProvider
|
|
*/
|
|
public function canSetUserManagerMailContentEmpty($setMethod, $getMethod)
|
|
{
|
|
/** @var Email|MockObject $mailMock */
|
|
$mailMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([$setMethod, $getMethod, 'd3UserManagerThrowUnequalContentException'])
|
|
->getMock();
|
|
$mailMock->expects(self::atLeastOnce())->method($setMethod)->willReturn(true);
|
|
$mailMock->expects($this->never())->method($getMethod);
|
|
$mailMock->expects($this->never())->method('d3UserManagerThrowUnequalContentException');
|
|
|
|
$this->_oModel = $mailMock;
|
|
|
|
$methodName = 'd3UM'.$setMethod;
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
$methodName,
|
|
['']
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array[]
|
|
*/
|
|
public function canSetUserManagerMailContentEmptyDataProvider(): array
|
|
{
|
|
return [
|
|
'body' => ['setBody', 'getBody'],
|
|
'altbody' => ['setAltBody', 'getAltBody'],
|
|
'subject' => ['setSubject', 'getSubject'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3SetUserManagerMailRecipients
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canSetUserManagerMailRecipientsCustomer()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomerRecipient',
|
|
'd3sendUserManagerMailToCustomer',
|
|
'd3hasUserManagerOwnerRecipient',
|
|
'd3sendUserManagerMailToOwner',
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3sendUserManagerMailToCustom',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomerRecipient')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('d3sendUserManagerMailToCustomer')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
$oModelMock->method('d3hasUserManagerOwnerRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToOwner')->willReturn(oxNew(Remark::class));
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToCustom')->willReturn(oxNew(Remark::class));
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertInstanceOf(
|
|
Remark::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3SetUserManagerMailRecipients',
|
|
[d3GetOxidDIC()->get('d3ox.usermanager.'.Shop::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3SetUserManagerMailRecipients
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canSetUserManagerMailRecipientsOwner()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomerRecipient',
|
|
'd3sendUserManagerMailToCustomer',
|
|
'd3hasUserManagerOwnerRecipient',
|
|
'd3sendUserManagerMailToOwner',
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3sendUserManagerMailToCustom',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomerRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToCustomer')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
$oModelMock->method('d3hasUserManagerOwnerRecipient')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('d3sendUserManagerMailToOwner')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToCustom')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertInstanceOf(
|
|
Remark::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3SetUserManagerMailRecipients',
|
|
[d3GetOxidDIC()->get('d3ox.usermanager.'.Shop::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3SetUserManagerMailRecipients
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canSetUserManagerMailRecipientsCustom()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomerRecipient',
|
|
'd3sendUserManagerMailToCustomer',
|
|
'd3hasUserManagerOwnerRecipient',
|
|
'd3sendUserManagerMailToOwner',
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3sendUserManagerMailToCustom',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomerRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToCustomer')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
$oModelMock->method('d3hasUserManagerOwnerRecipient')->willReturn(false);
|
|
$oModelMock->expects($this->never())->method('d3sendUserManagerMailToOwner')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('d3sendUserManagerMailToCustom')->willReturn(d3GetOxidDIC()->get('d3ox.usermanager.' . Remark::class));
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertInstanceOf(
|
|
Remark::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3SetUserManagerMailRecipients',
|
|
[d3GetOxidDIC()->get('d3ox.usermanager.'.Shop::class)]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerMailOption
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGgetUserManagerMailOptionEdited()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getValue',
|
|
'getEditedValues',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->never())->method('getValue')->willReturn('objectProperty');
|
|
$oManagerMock->expects($this->once())->method('getEditedValues')->willReturn(['editedVar' => 'editedProperty']);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'oUserManager',
|
|
$oManagerMock
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerMailOption',
|
|
['editedVar']
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerMailOption
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGgetUserManagerMailOptionObject()
|
|
{
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getValue',
|
|
'getEditedValues',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->expects($this->once())->method('getValue')->willReturn('objectProperty');
|
|
$oManagerMock->expects($this->once())->method('getEditedValues')->willReturn(['editedVar' => 'editedProperty']);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'oUserManager',
|
|
$oManagerMock
|
|
);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerMailOption',
|
|
['objectVar']
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3hasUserManagerCustomerRecipient
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canHasUserManagerCustomerRecipient()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3getUserManagerMailOption'])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3getUserManagerMailOption')->with(
|
|
$this->stringContains('Customer')
|
|
)->willReturn('returnValue');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
'returnValue',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3hasUserManagerCustomerRecipient'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3hasUserManagerOwnerRecipient
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canHasUserManagerOwnerRecipient()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3getUserManagerMailOption'])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3getUserManagerMailOption')->with(
|
|
$this->stringContains('Owner')
|
|
)->willReturn('returnValue');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
'returnValue',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3hasUserManagerOwnerRecipient'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3hasUserManagerCustomRecipient
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canHasUserManagerCustomRecipient()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3getUserManagerMailOption'])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3getUserManagerMailOption')->with(
|
|
$this->stringContains('Custom')
|
|
)->willReturn('returnValue');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
'returnValue',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3hasUserManagerCustomRecipient'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerCustomRecipientList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetUserManagerCustomRecipientList()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3getUserManagerMailOption'])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3getUserManagerMailOption')->with(
|
|
$this->stringContains('CustomAddress')
|
|
)->willReturn('returnValue');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
'returnValue',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerCustomRecipientList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getUserManagerMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
* @dataProvider canGetUserManagerMailContentEmptyExceptionDataProvider
|
|
*/
|
|
public function canGetUserManagerMailContentEmptyException($throwException)
|
|
{
|
|
$expected = [
|
|
'html' => '',
|
|
'subject' => '',
|
|
'plain' => '',
|
|
];
|
|
|
|
if ($throwException) {
|
|
$this->expectException(emptyMessageException::class);
|
|
}
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getEditedValues', 'getFieldData'])
|
|
->getMock();
|
|
$oManagerMock->method('getEditedValues')->willReturn(
|
|
['mail' => [
|
|
'html' => '',
|
|
'subject' => '',
|
|
'plain' => '',
|
|
'genplain' => 1,
|
|
]]
|
|
);
|
|
$oManagerMock->method('getFieldData')->willReturn('fieldData');
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3HasUserManagerEditorMailContent', 'd3generateUserManagerPlainContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3HasUserManagerEditorMailContent')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('d3generateUserManagerPlainContent')->with(
|
|
$this->identicalTo('')
|
|
)->willReturn('');
|
|
|
|
$this->assertSame(
|
|
$expected,
|
|
$this->callMethod(
|
|
$oModelMock,
|
|
'getUserManagerMailContent',
|
|
[ $oManagerMock, $throwException ]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function canGetUserManagerMailContentEmptyExceptionDataProvider(): array
|
|
{
|
|
return [
|
|
'throw exception' => [true],
|
|
'dont throw exception' => [false],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getUserManagerMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
* @dataProvider canGetUserManagerMailContentEditedDataProvider
|
|
*/
|
|
public function canGetUserManagerMailContentEdited($generatePlain)
|
|
{
|
|
$expected = [
|
|
'html' => 'contentHtml',
|
|
'subject' => 'contentSubject',
|
|
'plain' => $generatePlain ? 'contentPlainFromHtml' : 'contentPlain',
|
|
];
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getEditedValues',
|
|
])
|
|
->getMock();
|
|
$oManagerMock->method('getEditedValues')->willReturn(
|
|
['mail' => [
|
|
'html' => 'contentHtml',
|
|
'subject' => 'contentSubject',
|
|
'plain' => 'contentPlain',
|
|
'genplain' => $generatePlain,
|
|
]]
|
|
);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3HasUserManagerEditorMailContent', 'd3generateUserManagerPlainContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3HasUserManagerEditorMailContent')->willReturn(true);
|
|
$oModelMock->expects($this->exactly($generatePlain))->method('d3generateUserManagerPlainContent')->with(
|
|
$this->identicalTo('contentHtml')
|
|
)->willReturn('contentPlainFromHtml');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$expected,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getUserManagerMailContent',
|
|
[$oManagerMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @return \int[][]
|
|
*/
|
|
public function canGetUserManagerMailContentEditedDataProvider(): array
|
|
{
|
|
return [
|
|
'no plain generator' => [0],
|
|
'use plain generator' => [1],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getUserManagerMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetUserManagerMailContentCms()
|
|
{
|
|
$expected = [
|
|
'html' => 'content',
|
|
'subject' => 'contentField',
|
|
'plain' => 'content',
|
|
];
|
|
|
|
/** @var User|MockObject $oItemMock */
|
|
$oItemMock = $this->getMockBuilder(User::class)
|
|
->onlyMethods([
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oItemMock->method('getFieldData')->willReturn(1);
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getValue',
|
|
'getCurrentItem',
|
|
])
|
|
->getMock();
|
|
$getValueMap = [['sSendMailFromContentname', 'cmsIdent'], ['sSendMailFromContentnamePlain', 'cmsIdentPlain'], ['sSendMailFromSource', 'cms']];
|
|
$oManagerMock->method('getValue')->willReturnMap($getValueMap);
|
|
$oManagerMock->method('getCurrentItem')->willReturn($oItemMock);
|
|
|
|
/** @var Content|MockObject $contentMock */
|
|
$contentMock = $this->getMockBuilder(Content::class)
|
|
->onlyMethods(['load', 'getFieldData'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$contentMock->expects($this->once())->method('load')->with(
|
|
$this->identicalTo('cmsIdent')
|
|
)->willReturnSelf();
|
|
$contentMock->expects($this->atLeastOnce())->method('getFieldData')->willReturn('contentField');
|
|
|
|
/** @var MessageContentGenerator|MockObject $messageContentGeneratorMock */
|
|
$messageContentGeneratorMock = $this->getMockBuilder(MessageContentGenerator::class)
|
|
->onlyMethods(['generateFromCms'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$messageContentGeneratorMock->expects($this->exactly(2))->method('generateFromCms')->willReturn('content');
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['getMessageContentGeneratorUserManager', 'd3GetUserManagerContentObject'])
|
|
->getMock();
|
|
$oModelMock->method('getMessageContentGeneratorUserManager')->willReturn($messageContentGeneratorMock);
|
|
$oModelMock->method('d3GetUserManagerContentObject')->willReturn($contentMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$expected,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getUserManagerMailContent',
|
|
[$oManagerMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getUserManagerMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetUserManagerMailContentAdminTpl()
|
|
{
|
|
$expected = [
|
|
'html' => 'content',
|
|
'subject' => 'content',
|
|
'plain' => 'content',
|
|
];
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getValue',
|
|
'getCurrentItem',
|
|
])
|
|
->getMock();
|
|
$getValueMap = [
|
|
['sSendMailFromTheme', 'admin'],
|
|
['sSendMailFromSource', 'template'],
|
|
['sSendMailFromTemplatename', 'myTemplate'],
|
|
['sSendMailFromSubject', 'mySubject'],
|
|
['sSendMailFromTemplatenamePlain', 'myPlainTemplate'],
|
|
];
|
|
$oManagerMock->method('getValue')->willReturnMap($getValueMap);
|
|
|
|
/** @var MessageContentGenerator|MockObject $messageContentGeneratorMock */
|
|
$messageContentGeneratorMock = $this->getMockBuilder(MessageContentGenerator::class)
|
|
->onlyMethods(['setTemplateFrom', 'generateFromTpl'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$messageContentGeneratorMock->expects($this->atLeastOnce())->method('setTemplateFrom')->with($this->equalTo(MessageContentGenerator::TEMPLATE_FROM_ADMIN));
|
|
$messageContentGeneratorMock->expects($this->exactly(3))->method('generateFromTpl')->willReturn('content');
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['getMessageContentGeneratorUserManager'])
|
|
->getMock();
|
|
$oModelMock->method('getMessageContentGeneratorUserManager')->willReturn($messageContentGeneratorMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$expected,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getUserManagerMailContent',
|
|
[$oManagerMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getUserManagerMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
* @throws Exception
|
|
*/
|
|
public function canGetUserManagerMailContentFrontendTpl()
|
|
{
|
|
$expected = [
|
|
'html' => 'content',
|
|
'subject' => 'content',
|
|
'plain' => 'content',
|
|
];
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods([
|
|
'getValue',
|
|
])
|
|
->getMock();
|
|
$getValueMap = [
|
|
['sSendMailFromTheme', 'frontend'],
|
|
['sSendMailFromSource', 'template'],
|
|
['sSendMailFromTemplatename', 'myTemplate'],
|
|
['sSendMailFromSubject', 'mySubject'],
|
|
['sSendMailFromTemplatenamePlain', 'myPlainTemplate'],
|
|
];
|
|
$oManagerMock->method('getValue')->willReturnMap($getValueMap);
|
|
|
|
/** @var MessageContentGenerator|MockObject $messageContentGeneratorMock */
|
|
$messageContentGeneratorMock = $this->getMockBuilder(MessageContentGenerator::class)
|
|
->onlyMethods(['setTemplateFrom', 'generateFromTpl'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$messageContentGeneratorMock->expects($this->atLeastOnce())->method('setTemplateFrom')->with($this->equalTo(MessageContentGenerator::TEMPLATE_FROM_FRONTEND));
|
|
$messageContentGeneratorMock->expects($this->exactly(3))->method('generateFromTpl')->willReturn('content');
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['getMessageContentGeneratorUserManager'])
|
|
->getMock();
|
|
$oModelMock->method('getMessageContentGeneratorUserManager')->willReturn($messageContentGeneratorMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$expected,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getUserManagerMailContent',
|
|
[$oManagerMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3GetUserManagerContentObject
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetUserManagerContentObjectReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Content::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetUserManagerContentObject'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getD3UserManagerStrObject
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getD3UserManagerStrObjectReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
d3str::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getD3UserManagerStrObject'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3HasUserManagerEditorMailContentPass()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3isUserManagerArrayEditorMailContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3isUserManagerArrayEditorMailContent')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$aEditedValues = [
|
|
'mail' => [
|
|
'subject' => 'subjectContent',
|
|
'html' => 'htmlContent',
|
|
'plain' => 'plainContent',
|
|
],
|
|
];
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3HasUserManagerEditorMailContentIsNoArray()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3isUserManagerArrayEditorMailContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3isUserManagerArrayEditorMailContent')->willReturn(false);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$aEditedValues = [
|
|
'mail' => [
|
|
'subject' => 'subjectContent',
|
|
'html' => 'htmlContent',
|
|
'plain' => 'plainContent',
|
|
],
|
|
];
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3HasUserManagerEditorMailContentIsNoSubject()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3isUserManagerArrayEditorMailContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3isUserManagerArrayEditorMailContent')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$aEditedValues = [
|
|
'mail' => [
|
|
'subject' => false,
|
|
'html' => 'htmlContent',
|
|
'plain' => 'plainContent',
|
|
],
|
|
];
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3HasUserManagerEditorMailContentIsNoHtml()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3isUserManagerArrayEditorMailContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3isUserManagerArrayEditorMailContent')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$aEditedValues = [
|
|
'mail' => [
|
|
'subject' => 'subjectContent',
|
|
'html' => false,
|
|
'plain' => 'plainContent',
|
|
],
|
|
];
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3HasUserManagerEditorMailContentIsNoPlain()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3isUserManagerArrayEditorMailContent'])
|
|
->getMock();
|
|
$oModelMock->method('d3isUserManagerArrayEditorMailContent')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$aEditedValues = [
|
|
'mail' => [
|
|
'subject' => 'subjectContent',
|
|
'html' => 'htmlContent',
|
|
'plain' => false,
|
|
],
|
|
];
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3isUserManagerArrayEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3isUserManagerArrayEditorMailContentPass()
|
|
{
|
|
$aEditedValues = [
|
|
'mail' => [],
|
|
];
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3isUserManagerArrayEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3isUserManagerArrayEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3isUserManagerArrayEditorMailContentNoMailArray()
|
|
{
|
|
$aEditedValues = [];
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3isUserManagerArrayEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3isUserManagerArrayEditorMailContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3isUserManagerArrayEditorMailContentNoValuesArray()
|
|
{
|
|
$aEditedValues = null;
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3isUserManagerArrayEditorMailContent',
|
|
[$aEditedValues]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3generateUserManagerPlainContent
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGeneratePlainContent()
|
|
{
|
|
/** @var Html2Text|MockObject $oHtml2TextMock */
|
|
$oHtml2TextMock = $this->getMockBuilder(Html2Text::class)
|
|
->onlyMethods(['getText'])
|
|
->getMock();
|
|
$oHtml2TextMock->expects($this->once())->method('getText')->willReturn('plainContent');
|
|
|
|
d3GetOxidDIC()->set(Html2Text::class, $oHtml2TextMock);
|
|
|
|
$this->assertSame(
|
|
'plainContent',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3generateUserManagerPlainContent',
|
|
[
|
|
'HtmlContent',
|
|
]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3sendUserManagerMailToOwner
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canSendUserManagerMailToOwner()
|
|
{
|
|
/** @var Shop|MockObject $oFieldMock */
|
|
$oFieldMock = $this->getMockBuilder(Shop::class)
|
|
->addMethods(['getRawValue'])
|
|
->getMock();
|
|
$oFieldMock->method('getRawValue')->willReturn('shopName');
|
|
|
|
/** @var Shop|MockObject $oShopMock */
|
|
$oShopMock = $this->getMockBuilder(Shop::class)
|
|
->onlyMethods([
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oShopMock->method('__get')->willReturn($oFieldMock);
|
|
$oShopMock->method('getFieldData')->willReturn('info@mail.com');
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'setRecipient',
|
|
'd3HasUserManagerCustomMailAddresses',
|
|
'd3getUserManagerCustomMailAddressList',
|
|
'AddBcc',
|
|
'd3generateUserManagerRemark',
|
|
])
|
|
->getMock();
|
|
|
|
$oModelMock->expects($this->once())->method('setRecipient')->willReturn(true);
|
|
$oModelMock->method('d3HasUserManagerCustomMailAddresses')->willReturn(true);
|
|
$oModelMock->expects($this->exactly(2))->method('AddBcc')->willReturn(true);
|
|
$oModelMock->method('d3getUserManagerCustomMailAddressList')->willReturn(
|
|
[
|
|
'mail1',
|
|
'mail2',
|
|
]
|
|
);
|
|
$returnValue = oxNew(Remark::class);
|
|
$oModelMock->method('d3generateUserManagerRemark')->willReturn($returnValue);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$returnValue,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3sendUserManagerMailToOwner',
|
|
[$oShopMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3sendUserManagerMailToCustom
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canSendUserManagerMailToCustom()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomMailAddresses',
|
|
'd3getUserManagerCustomMailAddressList',
|
|
'setRecipient',
|
|
'd3generateUserManagerRemark',
|
|
])
|
|
->getMock();
|
|
|
|
$oModelMock->expects($this->once())->method('d3HasUserManagerCustomMailAddresses')->willReturn(true);
|
|
$oModelMock->expects($this->exactly(2))->method('setRecipient')->willReturn(true);
|
|
$oModelMock->method('d3getUserManagerCustomMailAddressList')->willReturn(
|
|
[
|
|
'mail1',
|
|
'mail2',
|
|
]
|
|
);
|
|
$returnValue = oxNew(Remark::class);
|
|
$oModelMock->method('d3generateUserManagerRemark')->willReturn($returnValue);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
$returnValue,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3sendUserManagerMailToCustom'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerCustomMailAddressList
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canExtractCustomMailAddressList()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods(['d3getUserManagerCustomRecipientList'])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3getUserManagerCustomRecipientList')->willReturn(
|
|
'mailNo1; mailNo2; '
|
|
);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertSame(
|
|
[
|
|
'mailNo1',
|
|
'mailNo2',
|
|
],
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerCustomMailAddressList'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerCustomMailAddresses
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function hasUserManagerCustomMailAddressesPass()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3getUserManagerCustomRecipientList',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(true);
|
|
$oModelMock->method('d3getUserManagerCustomRecipientList')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertTrue(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerCustomMailAddresses'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerCustomMailAddresses
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function hasUserManagerCustomMailAddressesNoCustRecipient()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3getUserManagerCustomRecipientList',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(false);
|
|
$oModelMock->method('d3getUserManagerCustomRecipientList')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerCustomMailAddresses'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3HasUserManagerCustomMailAddresses
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function hasUserManagerCustomMailAddressesNoCustRecipientList()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3hasUserManagerCustomRecipient',
|
|
'd3getUserManagerCustomRecipientList',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('d3hasUserManagerCustomRecipient')->willReturn(true);
|
|
$oModelMock->method('d3getUserManagerCustomRecipientList')->willReturn(false);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertFalse(
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3HasUserManagerCustomMailAddresses'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3GetUserManagerRemark
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function d3GetRemarkReturnsRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
Remark::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3GetUserManagerRemark'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3sendUserManagerMailToCustomer
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canD3sendUserManagerMailToCustomerNoOrderUser()
|
|
{
|
|
/** @var Field|MockObject $oFieldMock */
|
|
$oFieldMock = $this->getMockBuilder(Field::class)
|
|
->onlyMethods(['getRawValue'])
|
|
->getMock();
|
|
$oFieldMock->method('getRawValue')->willReturn('rawValue');
|
|
|
|
/** @var Shop|MockObject $oShopMock */
|
|
$oShopMock = $this->getMockBuilder(Shop::class)
|
|
->onlyMethods([
|
|
'getFieldData',
|
|
'__get',
|
|
])
|
|
->getMock();
|
|
$oShopMock->method('getFieldData')->willReturn('fieldData');
|
|
$oShopMock->method('__get')->willReturn($oFieldMock);
|
|
|
|
/** @var User|MockObject $oOrderUserMock */
|
|
$oOrderUserMock = $this->getMockBuilder(User::class)
|
|
->onlyMethods([
|
|
'getId',
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oOrderUserMock->method('getId')->willReturn(false);
|
|
$oOrderUserMock->expects($this->never())->method('__get')->willReturn($oFieldMock);
|
|
$oOrderUserMock->method('getFieldData')->willReturn('fieldData');
|
|
|
|
/** @var User|MockObject $oItemMock */
|
|
$oItemMock = $this->getMockBuilder(User::class)
|
|
->addMethods([
|
|
'getOrderUser',
|
|
])
|
|
->onlyMethods([
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oItemMock->method('getOrderUser')->willReturn($oOrderUserMock);
|
|
$oItemMock->expects($this->exactly(2))->method('__get')->willReturn($oFieldMock);
|
|
$oItemMock->method('getFieldData')->willReturn('fieldData');
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getCurrentItem'])
|
|
->getMock();
|
|
$oManagerMock->method('getCurrentItem')->willReturn($oItemMock);
|
|
|
|
/** @var Remark|MockObject $oRemarkMock */
|
|
$oRemarkMock = $this->getMockBuilder(Remark::class)
|
|
->onlyMethods(['assign'])
|
|
->getMock();
|
|
$oRemarkMock->expects($this->once())->method('assign')->willReturn(true);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'setRecipient',
|
|
'd3hasUserManagerOwnerRecipient',
|
|
'AddBcc',
|
|
'd3HasUserManagerCustomMailAddresses',
|
|
'd3getUserManagerCustomMailAddressList',
|
|
'd3GetUserManagerRemark',
|
|
])
|
|
->getMock();
|
|
$oModelMock->method('setRecipient')->willReturn(true);
|
|
$oModelMock->method('d3hasUserManagerOwnerRecipient')->willReturn(true);
|
|
$oModelMock->expects($this->exactly(3))->method('AddBcc')->willReturn(true);
|
|
$oModelMock->method('d3HasUserManagerCustomMailAddresses')->willReturn(true);
|
|
$oModelMock->method('d3getUserManagerCustomMailAddressList')->willReturn([ 'addrNo1', 'addrNo2']);
|
|
$oModelMock->method('d3GetUserManagerRemark')->willReturn($oRemarkMock);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'oUserManager',
|
|
$oManagerMock
|
|
);
|
|
|
|
$this->assertInstanceOf(
|
|
Remark::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3sendUserManagerMailToCustomer',
|
|
[$oShopMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3SetUserManagerReplyAddress
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canSetUserManagerReplyAddressWithReply()
|
|
{
|
|
/** @var Field|MockObject $oFieldMock */
|
|
$oFieldMock = $this->getMockBuilder(Field::class)
|
|
->onlyMethods(['getRawValue'])
|
|
->getMock();
|
|
$oFieldMock->method('getRawValue')->willReturn('rawValue');
|
|
|
|
/** @var Shop|MockObject $oShopMock */
|
|
$oShopMock = $this->getMockBuilder(Shop::class)
|
|
->onlyMethods([
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oShopMock->method('__get')->willReturn($oFieldMock);
|
|
$oShopMock->method('getFieldData')->willReturn('fieldData');
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$getValueMap = [
|
|
['sSendMailReplyAddress', 'reply@test.com'],
|
|
];
|
|
$oManagerMock->method('getValue')->willReturnMap($getValueMap);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'setFrom',
|
|
'setReplyTo',
|
|
])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('setFrom')->willReturn(true);
|
|
$oModelMock->expects($this->once())->method('setReplyTo')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3SetUserManagerReplyAddress',
|
|
[$oManagerMock, $oShopMock]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3SetUserManagerReplyAddress
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canSetUserManagerReplyAddressWithoutReply()
|
|
{
|
|
/** @var Field|MockObject $oFieldMock */
|
|
$oFieldMock = $this->getMockBuilder(Field::class)
|
|
->onlyMethods(['getRawValue'])
|
|
->getMock();
|
|
$oFieldMock->method('getRawValue')->willReturn('rawValue');
|
|
|
|
/** @var Shop|MockObject $oShopMock */
|
|
$oShopMock = $this->getMockBuilder(Shop::class)
|
|
->onlyMethods([
|
|
'__get',
|
|
'getFieldData',
|
|
])
|
|
->getMock();
|
|
$oShopMock->method('__get')->willReturn($oFieldMock);
|
|
$oShopMock->method('getFieldData')->willReturn('fieldData');
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getValue'])
|
|
->getMock();
|
|
$getValueMap = [
|
|
['sSendMailReplyAddress', null],
|
|
];
|
|
$oManagerMock->method('getValue')->willReturnMap($getValueMap);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'setFrom',
|
|
'setReplyTo',
|
|
])
|
|
->getMock();
|
|
$oModelMock->expects($this->atLeastOnce())->method('setFrom')->willReturn(true);
|
|
$oModelMock->expects($this->atLeastOnce())->method('setReplyTo')->willReturn(true);
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3SetUserManagerReplyAddress',
|
|
[$oManagerMock, $oShopMock]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3generateUserManagerRemark
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGenerateRemark()
|
|
{
|
|
/** @var Remark|MockObject $remarkMock */
|
|
$remarkMock = $this->getMockBuilder(Remark::class)
|
|
->onlyMethods(['assign'])
|
|
->getMock();
|
|
$remarkMock->method('assign')->with($this->isType('array'))->willReturn(true);
|
|
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'd3GetUserManagerRemark',
|
|
'getAllRecipientAddresses',
|
|
'getBody',
|
|
'getAltBody',
|
|
])
|
|
->getMock();
|
|
$oModelMock->expects($this->once())->method('d3GetUserManagerRemark')->willReturn($remarkMock);
|
|
$oModelMock->expects($this->any())->method('getAllRecipientAddresses')->willReturn(
|
|
[
|
|
'key1' => 'value1',
|
|
'key2' => 'value2',
|
|
]
|
|
);
|
|
$oModelMock->expects($this->any())->method('getBody')->willReturn('testBody');
|
|
$oModelMock->expects($this->any())->method('getAltBody')->willReturn('testAltBody');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
/** @var User|MockObject $oItemMock */
|
|
$oItemMock = $this->getMockBuilder(User::class)
|
|
->onlyMethods(['getId'])
|
|
->getMock();
|
|
$oItemMock->method('getId')->willReturn('userId');
|
|
|
|
/** @var User|MockObject $oItemMock */
|
|
$oItemMock = $this->getMockBuilder(User::class)
|
|
->addMethods(['getOrderUser'])
|
|
->getMock();
|
|
$oItemMock->method('getOrderUser')->willReturn($oItemMock);
|
|
|
|
/** @var d3usermanager|MockObject $oManagerMock */
|
|
$oManagerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getCurrentItem'])
|
|
->getMock();
|
|
$oManagerMock->expects($this->any())->method('getCurrentItem')->willReturn($oItemMock);
|
|
|
|
$this->setValue(
|
|
$this->_oModel,
|
|
'oUserManager',
|
|
$oManagerMock
|
|
);
|
|
|
|
$this->assertSame(
|
|
$remarkMock,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3generateUserManagerRemark'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerRemarkText
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function canGetRemarkText()
|
|
{
|
|
/** @var d3_oxemail_usermanager|MockObject $oModelMock */
|
|
$oModelMock = $this->getMockBuilder(Email::class)
|
|
->onlyMethods([
|
|
'getAllRecipientAddresses',
|
|
'getBody',
|
|
'getAltBody',
|
|
])
|
|
->getMock();
|
|
$oModelMock->expects($this->any())->method('getAllRecipientAddresses')->willReturn(
|
|
[
|
|
'key1' => 'value1',
|
|
'key2' => 'value2',
|
|
]
|
|
);
|
|
$oModelMock->expects($this->any())->method('getBody')->willReturn('testBody');
|
|
$oModelMock->expects($this->any())->method('getAltBody')->willReturn('testAltBody');
|
|
|
|
$this->_oModel = $oModelMock;
|
|
|
|
$this->assertEquals(
|
|
'Recipients:'.
|
|
PHP_EOL.'---'.PHP_EOL.
|
|
'key1, key2'.
|
|
PHP_EOL.'---'.PHP_EOL.
|
|
'HTML:'.
|
|
PHP_EOL.'---'.PHP_EOL.
|
|
'testBody'.
|
|
PHP_EOL.'---'.PHP_EOL.
|
|
'Plain'.
|
|
PHP_EOL.'---'.PHP_EOL.
|
|
'testAltBody',
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerRemarkText'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param $sLicenseKey
|
|
* @param d3usermanager $oManager
|
|
* @return null
|
|
*/
|
|
protected function _setModuleLicenseKey($sLicenseKey, $oManager = null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3getUserManagerDIContainer
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function getDIContainerHasRightInstance()
|
|
{
|
|
$this->assertInstanceOf(
|
|
ContainerInterface::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3getUserManagerDIContainer'
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
* @return void
|
|
* @throws ReflectionException
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::getMessageContentGeneratorUserManager
|
|
*/
|
|
public function getMessageContentGeneratorHasRightInstance()
|
|
{
|
|
/** @var d3usermanager|MockObject $managerMock */
|
|
$managerMock = $this->getMockBuilder(d3usermanager::class)
|
|
->onlyMethods(['getCurrentItem'])
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$managerMock->method('getCurrentItem')->willReturn(oxNew(User::class));
|
|
|
|
$this->assertInstanceOf(
|
|
MessageContentGenerator::class,
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'getMessageContentGeneratorUserManager',
|
|
[$managerMock]
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @covers \D3\Usermanager\Modules\Application\Model\d3_oxemail_usermanager::d3UserManagerThrowUnequalContentException
|
|
* @test
|
|
* @throws ReflectionException
|
|
*/
|
|
public function throwUnequalContentExceptionHasRightInstance()
|
|
{
|
|
$this->expectException(d3usermanager_templaterendererExceptionInterface::class);
|
|
|
|
$this->callMethod(
|
|
$this->_oModel,
|
|
'd3UserManagerThrowUnequalContentException'
|
|
);
|
|
}
|
|
}
|