1
1
<?php
2
2
/**
3
- * Copyright © Magento, Inc. All rights reserved.
4
- * See COPYING.txt for license details .
3
+ * Copyright 2021 Adobe
4
+ * All Rights Reserved .
5
5
*/
6
6
declare (strict_types=1 );
7
7
8
- /**
9
- * Test class for \Magento\Framework\Session\SaveHandler
10
- */
11
-
12
8
namespace Magento \Framework \Session \Test \Unit ;
13
9
10
+ use Magento \Framework \App \Area as AppArea ;
11
+ use Magento \Framework \App \State as AppState ;
12
+ use Magento \Framework \Message \ManagerInterface ;
14
13
use Magento \Framework \Session \Config \ConfigInterface ;
15
14
use Magento \Framework \Session \SaveHandler ;
16
15
use Magento \Framework \Session \SaveHandlerFactory ;
17
16
use Magento \Framework \Session \SaveHandlerInterface ;
18
17
use Magento \Framework \Session \SessionMaxSizeConfig ;
19
- use Magento \Framework \TestFramework \Unit \Helper \ObjectManager ;
20
18
use PHPUnit \Framework \MockObject \MockObject ;
21
19
use PHPUnit \Framework \TestCase ;
20
+ use Psr \Log \LoggerInterface ;
22
21
23
22
/**
24
23
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
25
24
*/
26
25
class SaveHandlerTest extends TestCase
27
26
{
28
- /**
29
- * @var ObjectManager
30
- */
31
- protected $ helper ;
32
-
33
27
/**
34
28
* @var SaveHandler
35
29
*/
36
- protected $ saveHandler ;
30
+ private $ saveHandler ;
37
31
38
32
/**
39
33
* @var SaveHandlerFactory|MockObject
40
34
*/
41
- protected $ saveHandlerFactoryMock ;
35
+ private $ saveHandlerFactoryMock ;
42
36
43
37
/**
44
38
* @var SaveHandlerInterface|MockObject
45
39
*/
46
- protected $ saveHandlerAdapterMock ;
40
+ private $ saveHandlerAdapterMock ;
47
41
48
42
/**
49
43
* @var ConfigInterface|MockObject
50
44
*/
51
- protected $ configMock ;
45
+ private $ configMock ;
52
46
53
47
/**
54
48
* @var SessionMaxSizeConfig|MockObject
55
49
*/
56
- protected $ sessionMaxSizeConfigMock ;
57
-
58
- protected function setUp (): void
59
- {
60
- $ this ->configMock = $ this ->getMockBuilder (ConfigInterface::class)
61
- ->disableOriginalConstructor ()
62
- ->getMockForAbstractClass ();
50
+ private $ sessionMaxSizeConfigMock ;
63
51
64
- $ this -> sessionMaxSizeConfigMock = $ this -> getMockBuilder (SaveHandlerFactory::class)
65
- -> disableOriginalConstructor ()
66
- -> addMethods ([ ' getSessionMaxSize ' ])
67
- -> getMock () ;
52
+ /**
53
+ * @var ManagerInterface|MockObject
54
+ */
55
+ private $ messageManagerMock ;
68
56
69
- $ this -> saveHandlerAdapterMock = $ this -> getMockBuilder (SaveHandlerInterface::class)
70
- -> disableOriginalConstructor ()
71
- -> onlyMethods ([ ' write ' ])
72
- -> getMockForAbstractClass () ;
57
+ /**
58
+ * @var AppState|MockObject
59
+ */
60
+ private $ appStateMock ;
73
61
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);
74
67
$ this ->saveHandlerAdapterMock ->expects ($ this ->any ())
75
68
->method ('write ' )
76
69
->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);
83
71
$ this ->saveHandlerFactoryMock ->expects ($ this ->any ())
84
72
->method ('create ' )
85
73
->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
95
86
);
96
87
}
97
88
@@ -146,7 +137,14 @@ public function testReadMoreThanSessionMaxSize(): void
146
137
->with ('test_session_id ' )
147
138
->willReturn ('test_session_data ' );
148
139
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 ' ));
150
148
}
151
149
152
150
public function testReadSessionMaxZero (): void
@@ -162,6 +160,34 @@ public function testReadSessionMaxZero(): void
162
160
->with ('test_session_id ' )
163
161
->willReturn ('test_session_data ' );
164
162
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 ' ));
166
192
}
167
193
}
0 commit comments