Test Failed
Pull Request — master (#893)
by Maxim
18:07
created
src/Console/tests/Configurator/Attribute/OptionsTest.php 1 patch
Braces   +42 added lines, -21 removed lines patch added patch discarded remove patch
@@ -26,7 +26,8 @@  discard block
 block discarded – undo
26 26
     public function testRequired(): void
27 27
     {
28 28
         $result = $this->parser->parse(new \ReflectionClass(
29
-            new #[AsCommand(name: 'foo')] class {
29
+            new #[AsCommand(name: 'foo')] class
30
+            {
30 31
                 #[Option(mode: InputOption::VALUE_REQUIRED)]
31 32
                 private int $option;
32 33
             }
@@ -44,7 +45,8 @@  discard block
 block discarded – undo
44 45
     public function testDefaultValue(): void
45 46
     {
46 47
         $result = $this->parser->parse(new \ReflectionClass(
47
-            new #[AsCommand(name: 'foo')] class {
48
+            new #[AsCommand(name: 'foo')] class
49
+            {
48 50
                 #[Option(mode: InputOption::VALUE_OPTIONAL)]
49 51
                 private string $option = 'some';
50 52
             }
@@ -62,7 +64,8 @@  discard block
 block discarded – undo
62 64
     public function testNullable(): void
63 65
     {
64 66
         $result = $this->parser->parse(new \ReflectionClass(
65
-            new #[AsCommand(name: 'foo')] class {
67
+            new #[AsCommand(name: 'foo')] class
68
+            {
66 69
                 #[Option(mode: InputOption::VALUE_OPTIONAL)]
67 70
                 private ?string $option;
68 71
             }
@@ -80,7 +83,8 @@  discard block
 block discarded – undo
80 83
     public function testWithName(): void
81 84
     {
82 85
         $result = $this->parser->parse(new \ReflectionClass(
83
-            new #[AsCommand(name: 'foo')] class {
86
+            new #[AsCommand(name: 'foo')] class
87
+            {
84 88
                 #[Option(name: 'customName', mode: InputOption::VALUE_OPTIONAL)]
85 89
                 private ?string $option;
86 90
             }
@@ -98,7 +102,8 @@  discard block
 block discarded – undo
98 102
     public function testWithShortcut(): void
99 103
     {
100 104
         $result = $this->parser->parse(new \ReflectionClass(
101
-            new #[AsCommand(name: 'foo')] class {
105
+            new #[AsCommand(name: 'foo')] class
106
+            {
102 107
                 #[Option(shortcut: 't', mode: InputOption::VALUE_OPTIONAL)]
103 108
                 private ?string $option;
104 109
             }
@@ -116,7 +121,8 @@  discard block
 block discarded – undo
116 121
     public function testWithDescription(): void
117 122
     {
118 123
         $result = $this->parser->parse(new \ReflectionClass(
119
-            new #[AsCommand(name: 'foo')] class {
124
+            new #[AsCommand(name: 'foo')] class
125
+            {
120 126
                 #[Option(description: 'Some description', mode: InputOption::VALUE_OPTIONAL)]
121 127
                 private ?string $option;
122 128
             }
@@ -134,7 +140,8 @@  discard block
 block discarded – undo
134 140
     public function testModeOptionalArray(): void
135 141
     {
136 142
         $result = $this->parser->parse(new \ReflectionClass(
137
-            new #[AsCommand(name: 'foo')] class {
143
+            new #[AsCommand(name: 'foo')] class
144
+            {
138 145
                 #[Option(mode: InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY)]
139 146
                 private array $option = [];
140 147
             }
@@ -152,7 +159,8 @@  discard block
 block discarded – undo
152 159
     public function testModeRequiredArray(): void
153 160
     {
154 161
         $result = $this->parser->parse(new \ReflectionClass(
155
-            new #[AsCommand(name: 'foo')] class {
162
+            new #[AsCommand(name: 'foo')] class
163
+            {
156 164
                 #[Option(mode: InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY)]
157 165
                 private array $option = [];
158 166
             }
@@ -170,7 +178,8 @@  discard block
 block discarded – undo
170 178
     public function testModeValueNegatable(): void
171 179
     {
172 180
         $result = $this->parser->parse(new \ReflectionClass(
173
-            new #[AsCommand(name: 'foo')] class {
181
+            new #[AsCommand(name: 'foo')] class
182
+            {
174 183
                 #[Option(mode: InputOption::VALUE_NEGATABLE)]
175 184
                 private bool $option;
176 185
             }
@@ -188,7 +197,8 @@  discard block
 block discarded – undo
188 197
     public function testModeValueNone(): void
189 198
     {
190 199
         $result = $this->parser->parse(new \ReflectionClass(
191
-            new #[AsCommand(name: 'foo')] class {
200
+            new #[AsCommand(name: 'foo')] class
201
+            {
192 202
                 #[Option(mode: InputOption::VALUE_NONE)]
193 203
                 private bool $option;
194 204
             }
@@ -206,7 +216,8 @@  discard block
 block discarded – undo
206 216
     public function testGuessedRequiredOption(): void
207 217
     {
208 218
         $result = $this->parser->parse(new \ReflectionClass(
209
-            new #[AsCommand(name: 'foo')] class {
219
+            new #[AsCommand(name: 'foo')] class
220
+            {
210 221
                 #[Option]
211 222
                 private int $int;
212 223
 
@@ -234,7 +245,8 @@  discard block
 block discarded – undo
234 245
     public function testGuessedOptionalOption(): void
235 246
     {
236 247
         $result = $this->parser->parse(new \ReflectionClass(
237
-            new #[AsCommand(name: 'foo')] class {
248
+            new #[AsCommand(name: 'foo')] class
249
+            {
238 250
                 #[Option]
239 251
                 private ?int $int;
240 252
 
@@ -265,7 +277,8 @@  discard block
 block discarded – undo
265 277
     public function testGuessedOptionalOptionFromPropertiesWithDefaultValue(): void
266 278
     {
267 279
         $result = $this->parser->parse(new \ReflectionClass(
268
-            new #[AsCommand(name: 'foo')] class {
280
+            new #[AsCommand(name: 'foo')] class
281
+            {
269 282
                 #[Option]
270 283
                 private int $int = 1;
271 284
 
@@ -296,7 +309,8 @@  discard block
 block discarded – undo
296 309
     public function testGuessedArrayOption(): void
297 310
     {
298 311
         $result = $this->parser->parse(new \ReflectionClass(
299
-            new #[AsCommand(name: 'foo')] class {
312
+            new #[AsCommand(name: 'foo')] class
313
+            {
300 314
                 #[Option]
301 315
                 private array $array;
302 316
             }
@@ -310,7 +324,8 @@  discard block
 block discarded – undo
310 324
     public function testGuessedOptionalArrayOption(): void
311 325
     {
312 326
         $result = $this->parser->parse(new \ReflectionClass(
313
-            new #[AsCommand(name: 'foo')] class {
327
+            new #[AsCommand(name: 'foo')] class
328
+            {
314 329
                 #[Option]
315 330
                 private ?array $array;
316 331
             }
@@ -325,7 +340,8 @@  discard block
 block discarded – undo
325 340
     public function testGuessedOptionalArrayOptionFromPropertyWithDefaultValue(): void
326 341
     {
327 342
         $result = $this->parser->parse(new \ReflectionClass(
328
-            new #[AsCommand(name: 'foo')] class {
343
+            new #[AsCommand(name: 'foo')] class
344
+            {
329 345
                 #[Option]
330 346
                 private array $array = [];
331 347
             }
@@ -340,7 +356,8 @@  discard block
 block discarded – undo
340 356
     public function testWithSuggestedValue(): void
341 357
     {
342 358
         $result = $this->parser->parse(new \ReflectionClass(
343
-            new #[AsCommand(name: 'foo')] class {
359
+            new #[AsCommand(name: 'foo')] class
360
+            {
344 361
                 #[Option(mode: InputOption::VALUE_REQUIRED, suggestedValues: [1, 0])]
345 362
                 private int $option;
346 363
             }
@@ -366,7 +383,8 @@  discard block
 block discarded – undo
366 383
     public function testUnionTypeWithBuiltInAndNot(): void
367 384
     {
368 385
         $result = $this->parser->parse(new \ReflectionClass(
369
-            new #[AsCommand(name: 'foo')] class {
386
+            new #[AsCommand(name: 'foo')] class
387
+            {
370 388
                 #[Option(mode: InputOption::VALUE_OPTIONAL)]
371 389
                 private int|\stdClass $option;
372 390
             }
@@ -385,7 +403,8 @@  discard block
 block discarded – undo
385 403
     {
386 404
         $this->expectException(ConfiguratorException::class);
387 405
         $this->parser->parse(new \ReflectionClass(
388
-            new #[AsCommand(name: 'foo')] class {
406
+            new #[AsCommand(name: 'foo')] class
407
+            {
389 408
                 #[Option]
390 409
                 private \stdClass $option;
391 410
             }
@@ -396,7 +415,8 @@  discard block
 block discarded – undo
396 415
     {
397 416
         $this->expectException(ConfiguratorException::class);
398 417
         $this->parser->parse(new \ReflectionClass(
399
-            new #[AsCommand(name: 'foo')] class {
418
+            new #[AsCommand(name: 'foo')] class
419
+            {
400 420
                 #[Option]
401 421
                 private \stdClass&\Traversable $option;
402 422
             }
@@ -407,7 +427,8 @@  discard block
 block discarded – undo
407 427
     {
408 428
         $this->expectException(ConfiguratorException::class);
409 429
         $this->parser->parse(new \ReflectionClass(
410
-            new #[AsCommand(name: 'foo')] class {
430
+            new #[AsCommand(name: 'foo')] class
431
+            {
411 432
                 #[Option]
412 433
                 private object $object;
413 434
             }
Please login to merge, or discard this patch.
src/Console/tests/Configurator/Attribute/ArgumentsTest.php 1 patch
Braces   +28 added lines, -14 removed lines patch added patch discarded remove patch
@@ -25,7 +25,8 @@  discard block
 block discarded – undo
25 25
     public function testRequired(): void
26 26
     {
27 27
         $result = $this->parser->parse(new \ReflectionClass(
28
-            new #[AsCommand(name: 'foo')] class {
28
+            new #[AsCommand(name: 'foo')] class
29
+            {
29 30
                 #[Argument]
30 31
                 private int $arg;
31 32
             }
@@ -41,7 +42,8 @@  discard block
 block discarded – undo
41 42
     public function testWithDefaultValue(): void
42 43
     {
43 44
         $result = $this->parser->parse(new \ReflectionClass(
44
-            new #[AsCommand(name: 'foo')] class {
45
+            new #[AsCommand(name: 'foo')] class
46
+            {
45 47
                 #[Argument]
46 48
                 private int $arg = 1;
47 49
             }
@@ -57,7 +59,8 @@  discard block
 block discarded – undo
57 59
     public function testNullable(): void
58 60
     {
59 61
         $result = $this->parser->parse(new \ReflectionClass(
60
-            new #[AsCommand(name: 'foo')] class {
62
+            new #[AsCommand(name: 'foo')] class
63
+            {
61 64
                 #[Argument]
62 65
                 private ?int $arg;
63 66
             }
@@ -73,7 +76,8 @@  discard block
 block discarded – undo
73 76
     public function testWithName(): void
74 77
     {
75 78
         $result = $this->parser->parse(new \ReflectionClass(
76
-            new #[AsCommand(name: 'foo')] class {
79
+            new #[AsCommand(name: 'foo')] class
80
+            {
77 81
                 #[Argument(name: 'customName')]
78 82
                 private int $arg;
79 83
             }
@@ -89,7 +93,8 @@  discard block
 block discarded – undo
89 93
     public function testWithDescription(): void
90 94
     {
91 95
         $result = $this->parser->parse(new \ReflectionClass(
92
-            new #[AsCommand(name: 'foo')] class {
96
+            new #[AsCommand(name: 'foo')] class
97
+            {
93 98
                 #[Argument(description: 'Some description')]
94 99
                 private int $arg;
95 100
             }
@@ -105,7 +110,8 @@  discard block
 block discarded – undo
105 110
     public function testWithSuggestedValue(): void
106 111
     {
107 112
         $result = $this->parser->parse(new \ReflectionClass(
108
-            new #[AsCommand(name: 'foo')] class {
113
+            new #[AsCommand(name: 'foo')] class
114
+            {
109 115
                 #[Argument(suggestedValues: [1, 0])]
110 116
                 private int $arg;
111 117
             }
@@ -129,7 +135,8 @@  discard block
 block discarded – undo
129 135
     public function testArrayRequired(): void
130 136
     {
131 137
         $result = $this->parser->parse(new \ReflectionClass(
132
-            new #[AsCommand(name: 'foo')] class {
138
+            new #[AsCommand(name: 'foo')] class
139
+            {
133 140
                 #[Argument]
134 141
                 private array $arg;
135 142
             }
@@ -145,7 +152,8 @@  discard block
 block discarded – undo
145 152
     public function testArrayNotRequired(): void
146 153
     {
147 154
         $result = $this->parser->parse(new \ReflectionClass(
148
-            new #[AsCommand(name: 'foo')] class {
155
+            new #[AsCommand(name: 'foo')] class
156
+            {
149 157
                 #[Argument]
150 158
                 private ?array $arg;
151 159
             }
@@ -161,7 +169,8 @@  discard block
 block discarded – undo
161 169
     public function testArrayShouldBeLast(): void
162 170
     {
163 171
         $result = $this->parser->parse(new \ReflectionClass(
164
-            new #[AsCommand(name: 'foo')] class {
172
+            new #[AsCommand(name: 'foo')] class
173
+            {
165 174
                 #[Argument]
166 175
                 private ?array $arg;
167 176
 
@@ -180,7 +189,8 @@  discard block
 block discarded – undo
180 189
     public function testUnionTypeWithBuiltInAndNot(): void
181 190
     {
182 191
         $result = $this->parser->parse(new \ReflectionClass(
183
-            new #[AsCommand(name: 'foo')] class {
192
+            new #[AsCommand(name: 'foo')] class
193
+            {
184 194
                 #[Argument]
185 195
                 private int|\stdClass $arg;
186 196
             }
@@ -197,7 +207,8 @@  discard block
 block discarded – undo
197 207
     {
198 208
         $this->expectException(ConfiguratorException::class);
199 209
         $this->parser->parse(new \ReflectionClass(
200
-            new #[AsCommand(name: 'foo')] class {
210
+            new #[AsCommand(name: 'foo')] class
211
+            {
201 212
                 #[Argument]
202 213
                 private \stdClass $arg;
203 214
             }
@@ -208,7 +219,8 @@  discard block
 block discarded – undo
208 219
     {
209 220
         $this->expectException(ConfiguratorException::class);
210 221
         $this->parser->parse(new \ReflectionClass(
211
-            new #[AsCommand(name: 'foo')] class {
222
+            new #[AsCommand(name: 'foo')] class
223
+            {
212 224
                 #[Argument]
213 225
                 private \stdClass&\Traversable $arg;
214 226
             }
@@ -219,7 +231,8 @@  discard block
 block discarded – undo
219 231
     {
220 232
         $this->expectException(ConfiguratorException::class);
221 233
         $this->parser->parse(new \ReflectionClass(
222
-            new #[AsCommand(name: 'foo')] class {
234
+            new #[AsCommand(name: 'foo')] class
235
+            {
223 236
                 #[Argument]
224 237
                 private array $arg;
225 238
 
@@ -233,7 +246,8 @@  discard block
 block discarded – undo
233 246
     {
234 247
         $this->expectException(ConfiguratorException::class);
235 248
         $this->parser->parse(new \ReflectionClass(
236
-            new #[AsCommand(name: 'foo')] class {
249
+            new #[AsCommand(name: 'foo')] class
250
+            {
237 251
                 #[Argument]
238 252
                 private object $arg;
239 253
             }
Please login to merge, or discard this patch.
src/Console/src/Configurator/Attribute/Parser.php 1 patch
Braces   +48 added lines, -24 removed lines patch added patch discarded remove patch
@@ -37,7 +37,8 @@  discard block
 block discarded – undo
37 37
     {
38 38
         $attribute = $this->reader->firstClassMetadata($reflection, AsCommand::class);
39 39
 
40
-        if ($attribute === null) {
40
+        if ($attribute === null)
41
+        {
41 42
             $attribute = $reflection->getAttributes(SymfonyAsCommand::class)[0]->newInstance();
42 43
         }
43 44
 
@@ -54,13 +55,16 @@  discard block
 block discarded – undo
54 55
     {
55 56
         $reflection = new \ReflectionClass($command);
56 57
 
57
-        foreach ($reflection->getProperties() as $property) {
58
+        foreach ($reflection->getProperties() as $property)
59
+        {
58 60
             $attribute = $this->reader->firstPropertyMetadata($property, Argument::class);
59
-            if ($attribute === null) {
61
+            if ($attribute === null)
62
+            {
60 63
                 continue;
61 64
             }
62 65
 
63
-            if ($input->hasArgument($attribute->name ?? $property->getName())) {
66
+            if ($input->hasArgument($attribute->name ?? $property->getName()))
67
+            {
64 68
                 $property->setValue(
65 69
                     $command,
66 70
                     $this->typecast($input->getArgument($attribute->name ?? $property->getName()), $property)
@@ -68,13 +72,16 @@  discard block
 block discarded – undo
68 72
             }
69 73
         }
70 74
 
71
-        foreach ($reflection->getProperties() as $property) {
75
+        foreach ($reflection->getProperties() as $property)
76
+        {
72 77
             $attribute = $this->reader->firstPropertyMetadata($property, Option::class);
73
-            if ($attribute === null) {
78
+            if ($attribute === null)
79
+            {
74 80
                 continue;
75 81
             }
76 82
 
77
-            if ($input->hasOption($attribute->name ?? $property->getName())) {
83
+            if ($input->hasOption($attribute->name ?? $property->getName()))
84
+            {
78 85
                 $property->setValue(
79 86
                     $command,
80 87
                     $this->typecast($input->getOption($attribute->name ?? $property->getName()), $property)
@@ -87,9 +94,11 @@  discard block
 block discarded – undo
87 94
     {
88 95
         $result = [];
89 96
         $arrayArgument = null;
90
-        foreach ($reflection->getProperties() as $property) {
97
+        foreach ($reflection->getProperties() as $property)
98
+        {
91 99
             $attribute = $this->reader->firstPropertyMetadata($property, Argument::class);
92
-            if ($attribute === null) {
100
+            if ($attribute === null)
101
+            {
93 102
                 continue;
94 103
             }
95 104
 
@@ -112,19 +121,22 @@  discard block
 block discarded – undo
112 121
                 suggestedValues: $attribute->suggestedValues
113 122
             );
114 123
 
115
-            if ($arrayArgument !== null && $isArray) {
124
+            if ($arrayArgument !== null && $isArray)
125
+            {
116 126
                 throw new ConfiguratorException('There must be only one array argument!');
117 127
             }
118 128
 
119 129
             // It must be used at the end of the argument list.
120
-            if ($isArray) {
130
+            if ($isArray)
131
+            {
121 132
                 $arrayArgument = $argument;
122 133
                 continue;
123 134
             }
124 135
             $result[] = $argument;
125 136
         }
126 137
 
127
-        if ($arrayArgument !== null) {
138
+        if ($arrayArgument !== null)
139
+        {
128 140
             $result[] = $arrayArgument;
129 141
         }
130 142
 
@@ -134,21 +146,26 @@  discard block
 block discarded – undo
134 146
     private function parseOptions(\ReflectionClass $reflection): array
135 147
     {
136 148
         $result = [];
137
-        foreach ($reflection->getProperties() as $property) {
149
+        foreach ($reflection->getProperties() as $property)
150
+        {
138 151
             $attribute = $this->reader->firstPropertyMetadata($property, Option::class);
139
-            if ($attribute === null) {
152
+            if ($attribute === null)
153
+            {
140 154
                 continue;
141 155
             }
142 156
 
143 157
             $type = $this->getPropertyType($property);
144 158
             $mode = $attribute->mode;
145 159
 
146
-            if ($mode === null) {
160
+            if ($mode === null)
161
+            {
147 162
                 $mode = $this->guessOptionMode($type, $property);
148 163
             }
149 164
 
150
-            if ($mode === InputOption::VALUE_NONE || $attribute->mode === InputOption::VALUE_NEGATABLE) {
151
-                if ($type->getName() !== 'bool') {
165
+            if ($mode === InputOption::VALUE_NONE || $attribute->mode === InputOption::VALUE_NEGATABLE)
166
+            {
167
+                if ($type->getName() !== 'bool')
168
+                {
152 169
                     throw new ConfiguratorException(
153 170
                         'Options properties with mode `VALUE_NONE` or `VALUE_NEGATABLE` must be bool!'
154 171
                     );
@@ -174,7 +191,8 @@  discard block
 block discarded – undo
174 191
     {
175 192
         $type = $property->hasType() ? $property->getType() : null;
176 193
 
177
-        if (!$type instanceof \ReflectionNamedType) {
194
+        if (!$type instanceof \ReflectionNamedType)
195
+        {
178 196
             return $value;
179 197
         }
180 198
 
@@ -190,7 +208,8 @@  discard block
 block discarded – undo
190 208
 
191 209
     private function getPropertyType(\ReflectionProperty $property): \ReflectionNamedType
192 210
     {
193
-        if (!$property->hasType()) {
211
+        if (!$property->hasType())
212
+        {
194 213
             throw new ConfiguratorException(
195 214
                 \sprintf('Please, specify the type for the `%s` property!', $property->getName())
196 215
             );
@@ -198,19 +217,24 @@  discard block
 block discarded – undo
198 217
 
199 218
         $type = $property->getType();
200 219
 
201
-        if ($type instanceof \ReflectionIntersectionType) {
220
+        if ($type instanceof \ReflectionIntersectionType)
221
+        {
202 222
             throw new ConfiguratorException(\sprintf('Invalid type for the `%s` property.', $property->getName()));
203 223
         }
204 224
 
205
-        if ($type instanceof \ReflectionUnionType) {
206
-            foreach ($type->getTypes() as $type) {
207
-                if ($type->isBuiltin()) {
225
+        if ($type instanceof \ReflectionUnionType)
226
+        {
227
+            foreach ($type->getTypes() as $type)
228
+            {
229
+                if ($type->isBuiltin())
230
+                {
208 231
                     return $type;
209 232
                 }
210 233
             }
211 234
         }
212 235
 
213
-        if ($type instanceof \ReflectionNamedType && $type->isBuiltin() && $type->getName() !== 'object') {
236
+        if ($type instanceof \ReflectionNamedType && $type->isBuiltin() && $type->getName() !== 'object')
237
+        {
214 238
             return $type;
215 239
         }
216 240
 
Please login to merge, or discard this patch.