22
33namespace Javaabu \Helpers \Tests \Unit ;
44
5+ use Javaabu \Helpers \Enums \HasColor ;
6+ use Javaabu \Helpers \Enums \IsStatusEnum ;
57use Javaabu \Helpers \Enums \PublishStatuses ;
68use Javaabu \Helpers \Tests \TestCase ;
79
@@ -18,4 +20,38 @@ public function it_can_generate_enum_label()
1820 'rejected ' => 'Rejected ' ,
1921 ], PublishStatuses::getLabels ());
2022 }
23+
24+ /** @test */
25+ public function it_can_see_that_an_enum_is_a_status_enum ()
26+ {
27+ $ this ->assertTrue (in_array (IsStatusEnum::class, class_implements (PublishStatuses::class)));
28+ $ this ->assertTrue (method_exists (PublishStatuses::class, 'getLabel ' ));
29+ $ this ->assertTrue (method_exists (PublishStatuses::class, 'getLabels ' ));
30+ $ this ->assertTrue (method_exists (PublishStatuses::class, 'labels ' ));
31+ $ this ->assertTrue (method_exists (PublishStatuses::class, 'getColor ' ));
32+ }
33+
34+ /** @test */
35+ public function it_can_get_enum_color ()
36+ {
37+ // Check if enum implements HasColor
38+ $ this ->assertTrue (in_array (HasColor::class, class_implements (PublishStatuses::class)));
39+
40+ $ this ->assertEquals ('secondary ' , PublishStatuses::DRAFT ->getColor ());
41+
42+ $ this ->assertEquals (
43+ [
44+ 'draft ' => 'secondary ' ,
45+ 'pending ' => 'info ' ,
46+ 'published ' => 'success ' ,
47+ 'rejected ' => 'danger ' ,
48+ ],
49+ [
50+ PublishStatuses::DRAFT ->value => PublishStatuses::DRAFT ->getColor (),
51+ PublishStatuses::PENDING ->value => PublishStatuses::PENDING ->getColor (),
52+ PublishStatuses::PUBLISHED ->value => PublishStatuses::PUBLISHED ->getColor (),
53+ PublishStatuses::REJECTED ->value => PublishStatuses::REJECTED ->getColor (),
54+ ]
55+ );
56+ }
2157}
0 commit comments