MichelCorePackageTest.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace Test\Michel\Framework\Core;
  3. use Michel\Console\CommandRunner;
  4. use Michel\Framework\Core\ErrorHandler\ExceptionHandler;
  5. use Michel\Framework\Core\Package\MichelCorePackage;
  6. use Michel\RouterInterface;
  7. use Michel\RouterMiddleware;
  8. use Michel\UniTester\TestCase;
  9. use Psr\EventDispatcher\EventDispatcherInterface;
  10. class MichelCorePackageTest extends TestCase
  11. {
  12. protected function setUp(): void
  13. {
  14. // TODO: Implement setUp() method.
  15. }
  16. protected function tearDown(): void
  17. {
  18. // TODO: Implement tearDown() method.
  19. }
  20. protected function execute(): void
  21. {
  22. $this->testGetDefinitions();
  23. $this->testGetParameters();
  24. $this->testGetRoutes();
  25. $this->testGetListeners();
  26. $this->testGetCommands();
  27. }
  28. public function testGetDefinitions()
  29. {
  30. $package = new MichelCorePackage();
  31. $definitions = $package->getDefinitions();
  32. $this->assertNotEmpty($definitions);
  33. $this->assertArrayHasKey(EventDispatcherInterface::class, $definitions);
  34. $this->assertTrue(is_callable($definitions[EventDispatcherInterface::class]));
  35. $this->assertArrayHasKey(RouterInterface::class, $definitions);
  36. $this->assertTrue(is_callable($definitions[RouterInterface::class]));
  37. $this->assertArrayHasKey('render', $definitions);
  38. $this->assertTrue(is_callable($definitions['render']));
  39. $this->assertArrayHasKey(CommandRunner::class, $definitions);
  40. $this->assertTrue(is_callable($definitions[CommandRunner::class]));
  41. $this->assertArrayHasKey(RouterMiddleware::class, $definitions);
  42. $this->assertTrue(is_callable($definitions[RouterMiddleware::class]));
  43. $this->assertArrayHasKey(ExceptionHandler::class, $definitions);
  44. $this->assertTrue(is_callable($definitions[ExceptionHandler::class]));
  45. }
  46. public function testGetParameters()
  47. {
  48. $package = new MichelCorePackage();
  49. $parameters = $package->getParameters();
  50. $this->assertNotEmpty($parameters);
  51. $this->assertArrayHasKey('app.url', $parameters);
  52. $this->assertArrayHasKey('app.locale', $parameters);
  53. $this->assertArrayHasKey('app.template_dir', $parameters);
  54. }
  55. public function testGetRoutes()
  56. {
  57. $package = new MichelCorePackage();
  58. $routes = $package->getRoutes();
  59. $this->assertEmpty($routes);
  60. }
  61. public function testGetListeners()
  62. {
  63. $package = new MichelCorePackage();
  64. $listeners = $package->getListeners();
  65. $this->assertEmpty($listeners);
  66. }
  67. public function testGetCommands()
  68. {
  69. $package = new MichelCorePackage();
  70. $commands = $package->getCommandSources();
  71. $this->assertNotEmpty($commands);
  72. foreach ($commands as $command) {
  73. $this->assertTrue(is_string($command));
  74. }
  75. }
  76. }