executeTest($em); $em->getConnection()->close(); } } private function executeTest(EntityManager $em) { $platform = $em->getPlatform(); $platform->createDatabaseIfNotExists(); $platform->dropDatabase(); $platform->createDatabaseIfNotExists(); $paperMigration = PaperMigration::create($em, 'mig_versions', __DIR__ . '/migrations'); $runner = new CommandRunner([ new DatabaseSyncCommand($paperMigration, __DIR__ . '/Entity', 'test'), ]); $out = []; $code = $runner->run(new CommandParser(['', 'paper:database:sync', '--no-execute']), new Output(function ($message) use(&$out) { $out[] = $message; })); $this->assertEquals(0, $code); $this->assertStringContains( implode(' ', $out), "[INFO] Preview mode only — SQL statements were displayed but NOT executed."); $out = []; $code = $runner->run(new CommandParser(['', 'paper:database:sync']), new Output(function ($message) use(&$out) { $out[] = $message; })); $this->assertEquals(0, $code); $this->assertStringContains( implode(' ', $out), "✔ Executed:"); // // $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(); } }