11<?php
22/**
3- * Copyright © Magento, Inc. All rights reserved.
4- * See COPYING.txt for license details .
3+ * Copyright 2021 Adobe
4+ * All Rights Reserved .
55 */
66declare (strict_types=1 );
77
8- /**
9- * Test class for \Magento\Framework\Session\SaveHandler
10- */
11-
128namespace Magento \Framework \Session \Test \Unit ;
139
10+ use Magento \Framework \App \Area as AppArea ;
11+ use Magento \Framework \App \State as AppState ;
12+ use Magento \Framework \Message \ManagerInterface ;
1413use Magento \Framework \Session \Config \ConfigInterface ;
1514use Magento \Framework \Session \SaveHandler ;
1615use Magento \Framework \Session \SaveHandlerFactory ;
1716use Magento \Framework \Session \SaveHandlerInterface ;
1817use Magento \Framework \Session \SessionMaxSizeConfig ;
19- use Magento \Framework \TestFramework \Unit \Helper \ObjectManager ;
2018use PHPUnit \Framework \MockObject \MockObject ;
2119use PHPUnit \Framework \TestCase ;
20+ use Psr \Log \LoggerInterface ;
2221
2322/**
2423 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2524 */
2625class SaveHandlerTest extends TestCase
2726{
28- /**
29- * @var ObjectManager
30- */
31- protected $ helper ;
32-
3327 /**
3428 * @var SaveHandler
3529 */
36- protected $ saveHandler ;
30+ private $ saveHandler ;
3731
3832 /**
3933 * @var SaveHandlerFactory|MockObject
4034 */
41- protected $ saveHandlerFactoryMock ;
35+ private $ saveHandlerFactoryMock ;
4236
4337 /**
4438 * @var SaveHandlerInterface|MockObject
4539 */
46- protected $ saveHandlerAdapterMock ;
40+ private $ saveHandlerAdapterMock ;
4741
4842 /**
4943 * @var ConfigInterface|MockObject
5044 */
51- protected $ configMock ;
45+ private $ configMock ;
5246
5347 /**
5448 * @var SessionMaxSizeConfig|MockObject
5549 */
56- protected $ sessionMaxSizeConfigMock ;
57-
58- protected function setUp (): void
59- {
60- $ this ->configMock = $ this ->getMockBuilder (ConfigInterface::class)
61- ->disableOriginalConstructor ()
62- ->getMockForAbstractClass ();
50+ private $ sessionMaxSizeConfigMock ;
6351
64- $ this -> sessionMaxSizeConfigMock = $ this -> getMockBuilder (SaveHandlerFactory::class)
65- -> disableOriginalConstructor ()
66- -> addMethods ([ ' getSessionMaxSize ' ])
67- -> getMock () ;
52+ /**
53+ * @var ManagerInterface|MockObject
54+ */
55+ private $ messageManagerMock ;
6856
69- $ this -> saveHandlerAdapterMock = $ this -> getMockBuilder (SaveHandlerInterface::class)
70- -> disableOriginalConstructor ()
71- -> onlyMethods ([ ' write ' ])
72- -> getMockForAbstractClass () ;
57+ /**
58+ * @var AppState|MockObject
59+ */
60+ private $ appStateMock ;
7361
62+ protected function setUp (): void
63+ {
64+ $ this ->configMock = $ this ->createMock (ConfigInterface::class);
65+ $ this ->sessionMaxSizeConfigMock = $ this ->createMock (SessionMaxSizeConfig::class);
66+ $ this ->saveHandlerAdapterMock = $ this ->createMock (SaveHandlerInterface::class);
7467 $ this ->saveHandlerAdapterMock ->expects ($ this ->any ())
7568 ->method ('write ' )
7669 ->willReturn (true );
77-
78- $ this ->saveHandlerFactoryMock = $ this ->getMockBuilder (SaveHandlerFactory::class)
79- ->disableOriginalConstructor ()
80- ->onlyMethods (['create ' ])
81- ->getMock ();
82-
70+ $ this ->saveHandlerFactoryMock = $ this ->createMock (SaveHandlerFactory::class);
8371 $ this ->saveHandlerFactoryMock ->expects ($ this ->any ())
8472 ->method ('create ' )
8573 ->willReturn ($ this ->saveHandlerAdapterMock );
86-
87- $ this ->helper = new ObjectManager ($ this );
88- $ this ->saveHandler = $ this ->helper ->getObject (
89- SaveHandler::class,
90- [
91- 'saveHandlerFactory ' => $ this ->saveHandlerFactoryMock ,
92- 'sessionConfig ' => $ this ->configMock ,
93- 'sessionMaxSizeConfig ' => $ this ->sessionMaxSizeConfigMock ,
94- ]
74+ $ loggerMock = $ this ->createMock (LoggerInterface::class);
75+ $ this ->messageManagerMock = $ this ->createMock (ManagerInterface::class);
76+ $ this ->appStateMock = $ this ->createMock (AppState::class);
77+
78+ $ this ->saveHandler = new SaveHandler (
79+ $ this ->saveHandlerFactoryMock ,
80+ $ this ->configMock ,
81+ $ loggerMock ,
82+ $ this ->sessionMaxSizeConfigMock ,
83+ SaveHandlerInterface::DEFAULT_HANDLER ,
84+ $ this ->messageManagerMock ,
85+ $ this ->appStateMock
9586 );
9687 }
9788
@@ -146,7 +137,14 @@ public function testReadMoreThanSessionMaxSize(): void
146137 ->with ('test_session_id ' )
147138 ->willReturn ('test_session_data ' );
148139
149- $ this ->assertEquals (null , $ this ->saveHandler ->read ("test_session_id " ));
140+ $ this ->appStateMock ->expects ($ this ->once ())
141+ ->method ('getAreaCode ' )
142+ ->willReturn (AppArea::AREA_FRONTEND );
143+ $ this ->messageManagerMock ->expects ($ this ->once ())
144+ ->method ('addErrorMessage ' )
145+ ->willReturnSelf ();
146+
147+ $ this ->assertEmpty ($ this ->saveHandler ->read ('test_session_id ' ));
150148 }
151149
152150 public function testReadSessionMaxZero (): void
@@ -162,6 +160,34 @@ public function testReadSessionMaxZero(): void
162160 ->with ('test_session_id ' )
163161 ->willReturn ('test_session_data ' );
164162
165- $ this ->assertEquals (null , $ this ->saveHandler ->read ("test_session_id " ));
163+ $ this ->appStateMock ->expects ($ this ->once ())
164+ ->method ('getAreaCode ' )
165+ ->willReturn (AppArea::AREA_FRONTEND );
166+ $ this ->messageManagerMock ->expects ($ this ->once ())
167+ ->method ('addErrorMessage ' )
168+ ->willReturnSelf ();
169+
170+ $ this ->assertEmpty ($ this ->saveHandler ->read ('test_session_id ' ));
171+ }
172+
173+ public function testReadMoreThanSessionMaxSizeAdmin (): void
174+ {
175+ $ this ->sessionMaxSizeConfigMock ->expects ($ this ->once ())
176+ ->method ('getSessionMaxSize ' )
177+ ->willReturn (1 );
178+
179+ $ this ->saveHandlerAdapterMock ->expects ($ this ->once ())
180+ ->method ('read ' )
181+ ->with ('test_session_id ' )
182+ ->willReturn ('test_session_data ' );
183+
184+ $ this ->appStateMock ->expects ($ this ->once ())
185+ ->method ('getAreaCode ' )
186+ ->willReturn (AppArea::AREA_ADMINHTML );
187+ $ this ->messageManagerMock ->expects ($ this ->once ())
188+ ->method ('addNoticeMessage ' )
189+ ->willReturnSelf ();
190+
191+ $ this ->assertEquals ('test_session_data ' , $ this ->saveHandler ->read ('test_session_id ' ));
166192 }
167193}
0 commit comments