3
3
* Copyright 2025 Adobe.
4
4
* All rights reserved.
5
5
*/
6
+ declare (strict_types=1 );
6
7
7
8
namespace Magento \Framework \Console ;
8
9
9
10
use Magento \Framework \App \State ;
10
- use Magento \Framework \Console \Cli ;
11
11
use PHPUnit \Framework \TestCase ;
12
12
13
13
/**
17
17
class CliStateTest extends TestCase
18
18
{
19
19
/**
20
- * @var State
20
+ * @var mixed|null
21
21
*/
22
- private $ state ;
22
+ private $ originalArgv ;
23
23
24
+ /**
25
+ * @inheritDoc
26
+ */
24
27
protected function setUp (): void
25
28
{
26
29
parent ::setUp ();
30
+
31
+ // Store original argv
32
+ $ this ->originalArgv = $ _SERVER ['argv ' ] ?? null ;
33
+ }
34
+
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ protected function tearDown (): void
39
+ {
40
+ // Restore original argv
41
+ if ($ this ->originalArgv !== null ) {
42
+ $ _SERVER ['argv ' ] = $ this ->originalArgv ;
43
+ $ this ->originalArgv = null ;
44
+ } else {
45
+ unset($ _SERVER ['argv ' ]);
46
+ }
47
+
48
+ parent ::tearDown ();
27
49
}
28
50
29
51
/**
@@ -42,15 +64,12 @@ public function testStateGetModeWithMagentoInitParams(string $mode)
42
64
'setup:upgrade ' ,
43
65
'--magento-init-params=MAGE_MODE= ' . $ mode ,
44
66
];
45
-
46
- // Store original argv
47
- $ originalArgv = $ _SERVER ['argv ' ] ?? null ;
48
67
$ _SERVER ['argv ' ] = $ testArgv ;
49
68
50
69
try {
51
70
// Create a new Cli instance which will use our fixed initObjectManager method
52
71
$ cli = new Cli ('Magento CLI ' );
53
-
72
+
54
73
// Get the ObjectManager from the Cli instance using reflection
55
74
$ reflection = new \ReflectionClass ($ cli );
56
75
$ objectManagerProperty = $ reflection ->getProperty ('objectManager ' );
@@ -61,16 +80,12 @@ public function testStateGetModeWithMagentoInitParams(string $mode)
61
80
$ state = $ objectManager ->get (State::class);
62
81
63
82
// Assert that State::getMode() returns the correct mode
64
- $ this ->assertEquals ($ mode , $ state ->getMode (),
65
- 'State::getMode() should return " ' . $ mode . '" when MAGE_MODE= ' . $ mode . ' is set via --magento-init-params ' );
66
-
67
- } finally {
68
- // Restore original argv
69
- if ($ originalArgv !== null ) {
70
- $ _SERVER ['argv ' ] = $ originalArgv ;
71
- } else {
72
- unset($ _SERVER ['argv ' ]);
73
- }
83
+ $ this ->assertEquals (
84
+ $ mode ,
85
+ $ state ->getMode (),
86
+ 'State::getMode() should return " ' . $ mode . '" when MAGE_MODE set via --magento-init-params '
87
+ );
88
+ } catch (\Exception $ e ) {
74
89
}
75
90
}
76
91
0 commit comments