-
Notifications
You must be signed in to change notification settings - Fork 8k
Expand file tree
/
Copy pathget_declared_enums_basic.phpt
More file actions
79 lines (69 loc) · 1.82 KB
/
get_declared_enums_basic.phpt
File metadata and controls
79 lines (69 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--TEST--
Test get_declared_enums() function
--FILE--
<?php
enum MyUnitEnum {}
enum MyStringBackedEnum: string {
case FOO = 'test';
}
enum MyIntBackedEnum: int {
case FOO = 1;
}
enum MyEnumImplementation implements Countable {
use TraitWithNoProperties;
public function count(): int {
return 0;
}
}
trait TraitWithNoProperties {}
$enumsList = get_declared_enums();
$classesList = get_declared_classes();
var_dump($enumsList);
foreach ($enumsList as $enum) {
if (!enum_exists($enum)) {
echo "Error: $enum is not a valid enum.\n";
}
}
echo "Ensure all enums are included.\n";
var_dump(in_array('MyUnitEnum', $enumsList));
var_dump(in_array('MyStringBackedEnum', $enumsList));
var_dump(in_array('MyIntBackedEnum', $enumsList));
var_dump(in_array('MyEnumImplementation', $enumsList));
echo "Ensure interfaces are not included.\n";
var_dump(!in_array('Throwable', $enumsList));
var_dump(!in_array('IntBackedEnum', $enumsList));
echo "Ensure traits are not included.\n";
var_dump(!in_array('TraitWithNoProperties', $enumsList));
echo "Ensure classes are not included.\n";
var_dump(!in_array('stdClass', $enumsList));
var_dump(!in_array('Exception', $enumsList));
echo "Ensure enums are included in get_declared_classes().\n";
var_dump(in_array('MyUnitEnum', $classesList));
var_dump(in_array('MyStringBackedEnum', $classesList));
var_dump(in_array('MyIntBackedEnum', $classesList));
var_dump(in_array('MyEnumImplementation', $classesList));
echo "Done";
?>
--EXPECTF--
array(%d) {
%a
}
Ensure all enums are included.
bool(true)
bool(true)
bool(true)
bool(true)
Ensure interfaces are not included.
bool(true)
bool(true)
Ensure traits are not included.
bool(true)
Ensure classes are not included.
bool(true)
bool(true)
Ensure enums are included in get_declared_classes().
bool(true)
bool(true)
bool(true)
bool(true)
Done