1
1
<?php namespace lang \ast \unittest \emit ;
2
2
3
+ use lang \Enum ;
3
4
use unittest \actions \VerifyThat ;
4
5
use unittest \{Assert , Action , Test };
5
6
@@ -68,6 +69,20 @@ public static function run($order= self::ASC) {
68
69
Assert::equals ('ASC ' , $ t ->getMethod ('run ' )->invoke (null ));
69
70
}
70
71
72
+ #[Test]
73
+ public function overwritten_parameter_default_value () {
74
+ $ t = $ this ->type ('enum <T> {
75
+ case ASC;
76
+ case DESC;
77
+
78
+ public static function run($order= self::ASC) {
79
+ return $order->name;
80
+ }
81
+ } ' );
82
+
83
+ Assert::equals ('DESC ' , $ t ->getMethod ('run ' )->invoke (null , [Enum::valueOf ($ t , 'DESC ' )]));
84
+ }
85
+
71
86
#[Test]
72
87
public function value_property_of_backed_enum () {
73
88
$ t = $ this ->type ('enum <T>: string {
@@ -148,36 +163,28 @@ public static function run($arg) {
148
163
149
164
#[Test]
150
165
public function enum_values () {
151
- $ t = $ this ->type ('use lang\Enum; enum <T> {
166
+ $ t = $ this ->type ('enum <T> {
152
167
case Hearts;
153
168
case Diamonds;
154
169
case Clubs;
155
170
case Spades;
156
-
157
- public static function run() {
158
- return Enum::valuesOf(self::class);
159
- }
160
171
} ' );
161
172
162
173
Assert::equals (
163
174
['Hearts ' , 'Diamonds ' , 'Clubs ' , 'Spades ' ],
164
- array_map (function ($ suit ) { return $ suit ->name ; }, $ t -> getMethod ( ' run ' )-> invoke ( null ))
175
+ array_map (function ($ suit ) { return $ suit ->name ; }, Enum:: valuesOf ( $ t ))
165
176
);
166
177
}
167
178
168
179
#[Test]
169
180
public function enum_value () {
170
- $ t = $ this ->type ('use lang\Enum; enum <T> {
181
+ $ t = $ this ->type ('enum <T> {
171
182
case Hearts;
172
183
case Diamonds;
173
184
case Clubs;
174
185
case Spades;
175
-
176
- public static function run() {
177
- return Enum::valueOf(self::class, "Hearts")->name;
178
- }
179
186
} ' );
180
187
181
- Assert::equals ('Hearts ' , $ t -> getMethod ( ' run ' )->invoke ( null ) );
188
+ Assert::equals ('Hearts ' , Enum:: valueOf ( $ t , ' Hearts ' )->name );
182
189
}
183
190
}
0 commit comments