![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Framework/Session/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Session; use Magento\Framework\App\DeploymentConfig; use Magento\Framework\Exception\SessionException; use Magento\Framework\Phrase; use Magento\Framework\Session\Config\ConfigInterface; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\ObjectManager; /** * Tests \Magento\Framework\Session\SaveHandler functionality. * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class SaveHandlerTest extends \PHPUnit\Framework\TestCase { /** * @var ObjectManager */ private $objectManager; /** * @var DeploymentConfig|\PHPUnit\Framework\MockObject\MockObject */ private $deploymentConfigMock; /** * @var SaveHandlerFactory|\PHPUnit\Framework\MockObject\MockObject */ private $saveHandlerFactoryMock; /** * @inheritdoc */ protected function setUp(): void { $this->objectManager = Bootstrap::getObjectManager(); $this->deploymentConfigMock = $this->createMock(DeploymentConfig::class); $this->objectManager->addSharedInstance($this->deploymentConfigMock, DeploymentConfig::class); $this->saveHandlerFactoryMock = $this->createMock(SaveHandlerFactory::class); $this->objectManager->addSharedInstance($this->saveHandlerFactoryMock, SaveHandlerFactory::class); } /** * @inheritdoc */ protected function tearDown(): void { $this->objectManager->removeSharedInstance(DeploymentConfig::class); $this->objectManager->removeSharedInstance(SaveHandlerFactory::class); } /** * @return void */ public function testRedisSaveHandler(): void { $this->deploymentConfigMock->method('get') ->willReturnMap( [ [Config::PARAM_SESSION_SAVE_METHOD, null, 'redis'], [Config::PARAM_SESSION_SAVE_PATH, null, 'explicit_save_path'], ] ); $redisHandlerMock = $this->getMockBuilder(SaveHandler\Redis::class) ->disableOriginalConstructor() ->getMock(); $redisHandlerMock->method('open') ->with('explicit_save_path', 'test_session_id') ->willReturn(true); $this->saveHandlerFactoryMock->expects($this->exactly(1)) ->method('create') ->with('redis') ->willReturn($redisHandlerMock); $sessionConfig = $this->objectManager->create(ConfigInterface::class); /** @var SaveHandler $saveHandler */ $saveHandler = $this->objectManager->create(SaveHandler::class, ['sessionConfig' => $sessionConfig]); $result = $saveHandler->open('explicit_save_path', 'test_session_id'); $this->assertTrue($result); } /** * @return void */ public function testRedisSaveHandlerFallbackToDefaultOnSessionException(): void { $this->deploymentConfigMock->method('get') ->willReturnMap( [ [Config::PARAM_SESSION_SAVE_METHOD, null, 'redis'], [Config::PARAM_SESSION_SAVE_PATH, null, 'explicit_save_path'], ] ); $redisHandlerMock = $this->getMockBuilder(SaveHandler\Redis::class) ->disableOriginalConstructor() ->getMock(); $redisHandlerMock->method('open') ->with('explicit_save_path', 'test_session_id') ->willThrowException(new SessionException(new Phrase('Session Exception'))); $defaultHandlerMock = $this->getMockBuilder(SaveHandler\Native::class) ->disableOriginalConstructor() ->getMock(); $defaultHandlerMock->expects($this->once())->method('open')->with('explicit_save_path', 'test_session_id'); $this->saveHandlerFactoryMock ->method('create') ->withConsecutive(['redis'], [SaveHandlerInterface::DEFAULT_HANDLER]) ->willReturnOnConsecutiveCalls($redisHandlerMock, $defaultHandlerMock); $sessionConfig = $this->objectManager->create(ConfigInterface::class); /** @var SaveHandler $saveHandler */ $saveHandler = $this->objectManager->create(SaveHandler::class, ['sessionConfig' => $sessionConfig]); $saveHandler->open('explicit_save_path', 'test_session_id'); } }