executeTest($em); $em->getConnection()->close(); } } private function executeTest(EntityManager $em) { $platform = $em->createDatabasePlatform(); $platform->createDatabaseIfNotExists(); $platform->dropDatabase(); $platform->createDatabaseIfNotExists(); $platform->createTable('user', [ new PrimaryKeyColumn('id'), new StringColumn('firstname'), new StringColumn('lastname'), new StringColumn('email'), new StringColumn('password'), new BoolColumn('is_active'), ]); $platform->createTable('post', [ new PrimaryKeyColumn('id'), new JoinColumn('user_id', UserTest::class), new StringColumn('title'), new StringColumn('content'), ]); $runner = new CommandRunner([ new ShowTablesCommand($em) ]); $out = []; $code = $runner->run(new CommandParser(['', 'paper:show:tables', '--columns']), new Output(function ($message) use(&$out) { $out[] = $message; })); $this->assertEquals(0, $code); $this->assertEquals(132, count($out)); $out = []; $code = $runner->run(new CommandParser(['', 'paper:show:tables', 'post']), new Output(function ($message) use(&$out) { $out[] = $message; })); $this->assertEquals(0, $code); $this->assertEquals(16, count($out)); $out = []; $code = $runner->run(new CommandParser(['', 'paper:show:tables', 'post', '--columns']), new Output(function ($message) use(&$out) { $out[] = $message; })); $this->assertEquals(0, $code); $this->assertEquals(62, count($out)); $platform->dropDatabase(); } }