DatabaseShowTablesCommandTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace Test\PhpDevCommunity\PaperORM;
  3. use PhpDevCommunity\Console\CommandParser;
  4. use PhpDevCommunity\Console\CommandRunner;
  5. use PhpDevCommunity\Console\Output;
  6. use PhpDevCommunity\PaperORM\Command\ShowTablesCommand;
  7. use PhpDevCommunity\PaperORM\EntityManager;
  8. use PhpDevCommunity\PaperORM\Mapping\Column\BoolColumn;
  9. use PhpDevCommunity\PaperORM\Mapping\Column\IntColumn;
  10. use PhpDevCommunity\PaperORM\Mapping\Column\JoinColumn;
  11. use PhpDevCommunity\PaperORM\Mapping\Column\PrimaryKeyColumn;
  12. use PhpDevCommunity\PaperORM\Mapping\Column\StringColumn;
  13. use PhpDevCommunity\UniTester\TestCase;
  14. use Test\PhpDevCommunity\PaperORM\Entity\UserTest;
  15. use Test\PhpDevCommunity\PaperORM\Helper\DataBaseHelperTest;
  16. class DatabaseShowTablesCommandTest extends TestCase
  17. {
  18. protected function setUp(): void
  19. {
  20. }
  21. protected function tearDown(): void
  22. {
  23. }
  24. protected function execute(): void
  25. {
  26. foreach (DataBaseHelperTest::drivers() as $params) {
  27. $em = new EntityManager($params);
  28. $this->executeTest($em);
  29. $em->getConnection()->close();
  30. }
  31. }
  32. private function executeTest(EntityManager $em)
  33. {
  34. $platform = $em->createDatabasePlatform();
  35. $platform->createDatabaseIfNotExists();
  36. $platform->dropDatabase();
  37. $platform->createDatabaseIfNotExists();
  38. $platform->createTable('user', [
  39. new PrimaryKeyColumn('id'),
  40. new StringColumn('firstname'),
  41. new StringColumn('lastname'),
  42. new StringColumn('email'),
  43. new StringColumn('password'),
  44. new BoolColumn('is_active'),
  45. ]);
  46. $platform->createTable('post', [
  47. new PrimaryKeyColumn('id'),
  48. new JoinColumn('user_id', UserTest::class),
  49. new StringColumn('title'),
  50. new StringColumn('content'),
  51. ]);
  52. $runner = new CommandRunner([
  53. new ShowTablesCommand($em)
  54. ]);
  55. $code = $runner->run(new CommandParser(['', 'paper:show:tables', '--columns']), new Output(function ($message) use(&$countMessages) {
  56. }));
  57. $this->assertEquals(0, $code);
  58. }
  59. }