TestHelpers.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Knuckles\Scribe\Tests;
  3. use Illuminate\Contracts\Console\Kernel;
  4. trait TestHelpers
  5. {
  6. /**
  7. * @param string $command
  8. * @param array $parameters
  9. *
  10. * @return mixed
  11. */
  12. public function artisan($command, $parameters = [])
  13. {
  14. /** @var Kernel $kernel */
  15. $kernel = $this->app[Kernel::class];
  16. $kernel->call($command, $parameters);
  17. return $kernel->output();
  18. }
  19. protected function generate(array $flags = []): mixed
  20. {
  21. return $this->artisan(
  22. 'scribe:generate', array_merge(['--no-upgrade-check' => true], $flags)
  23. );
  24. }
  25. protected function generateAndExpectConsoleOutput(
  26. array $options = [], array $expected = [], array $notExpected = []
  27. ): void
  28. {
  29. $output = $this->generate($options);
  30. foreach ($expected as $string) {
  31. $this->assertStringContainsString($string, $output);
  32. }
  33. foreach ($notExpected as $string) {
  34. $this->assertStringNotContainsString($string, $output);
  35. }
  36. }
  37. protected function assertFileContainsString(string $filePath, string $string)
  38. {
  39. $fileContents = file_get_contents($filePath);
  40. $this->assertStringContainsString($string, $fileContents);
  41. }
  42. protected function assertFileNotContainsString(string $filePath, string $string)
  43. {
  44. $fileContents = file_get_contents($filePath);
  45. $this->assertStringNotContainsString($string, $fileContents);
  46. }
  47. }