55namespace UnitTests \Providers ;
66
77use App \Providers \Foo ;
8+ use DateTimeImmutable ;
89use PHPUnit \Framework \Attributes \CoversClass ;
910use PHPUnit \Framework \Attributes \DataProvider ;
1011use PHPUnit \Framework \Attributes \Test ;
@@ -16,7 +17,7 @@ final class FooTest extends TestCase
1617{
1718 protected function setUp (): void
1819 {
19- ClockMock::freeze (new \DateTime ('2023 -01-01 00:00:00 ' ));
20+ ClockMock::freeze (new \DateTime ('2024 -01-01 00:00:00 ' ));
2021 }
2122
2223 protected function tearDown (): void
@@ -25,32 +26,34 @@ protected function tearDown(): void
2526 }
2627
2728 #[Test]
28- #[DataProvider('dataProviderForDump ' )]
29- public function checkInvokeMethod (string $ expectedLog ): void
29+ #[DataProvider('dataProviderForGetDateTime ' )]
30+ public function checkGetDateTime (string $ format ): void
3031 {
31- self ::assertEquals ($ expectedLog , Foo::dump ());
32+ $ expectedCurrentDateTime = (new DateTimeImmutable ())->format ($ format );
33+
34+ self ::assertEquals ($ expectedCurrentDateTime , Foo::getDateTime ($ format ));
3235 }
3336
3437 /**
3538 * @return array<string, array<int, string>>
3639 */
37- public static function dataProviderForDump (): array
40+ public static function dataProviderForGetDateTime (): array
3841 {
3942 return [
40- '[DEFAULT CASE ] ' => [
41- ' [2023-01-01 00:00:00] App\Providers\Foo: Executed method [ dump ] in [ DEVELOPMENT ] mode ' . PHP_EOL ,
42- ],
43+ '[CURRENT DATE TIME ] ' => [' Y-m-d H:i:s ' ],
44+ ' [CURRENT DATE] ' => [ ' Y-m-d ' ] ,
45+ ' [CURRENT TIME] ' => [ ' H:i:s ' ],
4346 ];
4447 }
4548
4649 #[Test]
47- public function checkMockFinal (): void
50+ public function checkMockFinalClass (): void
4851 {
4952 self ::assertEquals ('pong ' , (new Foo ())->ping ());
5053
5154 $ mock = $ this ->createMock (Foo::class);
52- $ mock ->method ('ping ' )->willReturn ('pong pong ' );
55+ $ mock ->expects ( self :: once ())-> method ('ping ' )->willReturn ('knock knock ' );
5356
54- self ::assertEquals ('pong pong ' , $ mock ->ping ());
57+ self ::assertEquals ('knock knock ' , $ mock ->ping ());
5558 }
5659}
0 commit comments