1+ <?php
2+ declare (strict_types=1 );
3+
4+ namespace ClassNames \Tests ;
5+
6+ use ClassNames \ClassNames ;
7+ use function ClassNames \classnames ;
8+ use PHPUnit \Framework \TestCase ;
9+ use PHPUnit \Framework \Attributes \DataProvider ;
10+ use PHPUnit \Framework \Attributes \Test ;
11+
12+ class ClassNamesTest extends TestCase
13+ {
14+ public static function providerClassNames ()
15+ {
16+ return [
17+ ['solid large ' , ['solid ' => true , 'red ' => false , 'large ' => true ]],
18+ ['solid large ' , 'solid ' , 'large ' ],
19+ ['solid large ' , 'solid ' , ['large ' => true ]],
20+ ['solid large ' , ['solid ' => true ], ['large ' => true ]],
21+ ];
22+ }
23+
24+ #[Test]
25+ #[DataProvider('providerClassNames ' )]
26+ public function classNames ($ expected , ...$ params ): void
27+ {
28+ $ result = ClassNames::from (...$ params );
29+
30+ self ::assertSame ($ expected , $ result );
31+ }
32+
33+ #[Test]
34+ #[DataProvider('providerClassNames ' )]
35+ public function classNamesAsFunction ($ expected , ...$ params ): void
36+ {
37+ $ result = classnames (...$ params );
38+
39+ self ::assertSame ($ expected , (string ) $ result );
40+ }
41+ }
0 commit comments