ControllerTest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace Test\Michel\Framework\Core;
  3. use Michel\UniTester\TestCase;
  4. use Test\Michel\Framework\Core\Mock\ContainerMock;
  5. use Test\Michel\Framework\Core\Mock\MiddlewareMock;
  6. use Psr\Http\Server\MiddlewareInterface;
  7. use Test\Michel\Framework\Core\Controller\SampleControllerTest;
  8. class ControllerTest extends TestCase
  9. {
  10. protected function setUp(): void
  11. {
  12. // TODO: Implement setUp() method.
  13. }
  14. protected function tearDown(): void
  15. {
  16. // TODO: Implement tearDown() method.
  17. }
  18. protected function execute(): void
  19. {
  20. $this->testMiddleware();
  21. $this->testInvalidMiddleware();
  22. $this->testGet();
  23. }
  24. public function testMiddleware()
  25. {
  26. $middleware = new MiddlewareMock();
  27. $controller = new SampleControllerTest([$middleware]);
  28. $middlewares = $controller->getMiddlewares();
  29. $this->assertInstanceOf(MiddlewareInterface::class, $middlewares[0]);
  30. }
  31. public function testInvalidMiddleware()
  32. {
  33. $this->expectException(\InvalidArgumentException::class, function () {
  34. $invalidMiddleware = 'InvalidMiddlewareClass';
  35. new SampleControllerTest([$invalidMiddleware]);
  36. });
  37. }
  38. public function testGet()
  39. {
  40. $controller = new SampleControllerTest([]);
  41. $container = new ContainerMock([
  42. 'service_id' => 'service_instance'
  43. ]);
  44. $controller->setContainer($container);
  45. $this->assertEquals('service_instance', $controller->testGet('service_id'));
  46. }
  47. }