OutputTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace Test\Michel\Console;
  3. use Michel\Console\Output;
  4. use Michel\UniTester\TestCase;
  5. class OutputTest extends TestCase
  6. {
  7. protected function setUp(): void
  8. {
  9. // TODO: Implement setUp() method.
  10. }
  11. protected function tearDown(): void
  12. {
  13. // TODO: Implement tearDown() method.
  14. }
  15. protected function execute(): void
  16. {
  17. $this->testWrite();
  18. $this->testWriteln();
  19. }
  20. public function testWrite()
  21. {
  22. $output = new Output(function ($message) {
  23. $this->assertEquals('Hello, world!', $message);
  24. });
  25. $output->write('Hello, world!');
  26. }
  27. public function testWriteln()
  28. {
  29. $lines = 0;
  30. $output = new Output(function ($message) use(&$lines) {
  31. if ($lines === 0) {
  32. $this->assertEquals('Hello, world!', $message);
  33. }
  34. if ($lines === 1) {
  35. $this->assertEquals(PHP_EOL, $message);
  36. }
  37. $lines++;
  38. });
  39. $output->writeln('Hello, world!');
  40. $this->assertEquals(2, $lines);
  41. }
  42. }