Skip to content

Commit

Permalink
Remove FakeOutput
Browse files Browse the repository at this point in the history
  • Loading branch information
msmakouz committed Jan 10, 2024
1 parent c3cd8bd commit b154ff8
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 70 deletions.
26 changes: 0 additions & 26 deletions tests/Schema/Fixtures/FakeOutput.php

This file was deleted.

96 changes: 52 additions & 44 deletions tests/Schema/Generator/ShowChangesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
use Cycle\Schema\Tests\BaseTest;
use Cycle\Schema\Generator\ShowChanges;
use Cycle\Schema\Registry;
use Cycle\Schema\Tests\Fixtures\FakeOutput;
use Cycle\Schema\Tests\Fixtures\User;
use Symfony\Component\Console\Output\BufferedOutput;

abstract class ShowChangesTest extends BaseTest
{
private FakeOutput $output;
private BufferedOutput $output;
private Entity $user;
private Registry $registry;
private ShowChanges $generator;
Expand All @@ -26,7 +26,7 @@ public function setUp(): void
{
parent::setUp();

$this->output = new FakeOutput();
$this->output = new BufferedOutput();
$this->user = User::define();

$this->registry = new Registry($this->dbal);
Expand All @@ -45,15 +45,16 @@ public function testRunWithoutChanges(): void

$this->generator->run($this->registry);

$this->assertStringContainsString('No database changes has been detected', $this->output->getBuffer());
$this->assertStringContainsString('No database changes has been detected', $this->output->fetch());
}

public function testRunCreateTable(): void
{
$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users - create table', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users - create table', $content);
}

public function testRunDropTable(): void
Expand All @@ -65,8 +66,9 @@ public function testRunDropTable(): void

$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users - drop table', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users - drop table', $content);
}

public function testRunChangedColumns(): void
Expand All @@ -80,12 +82,13 @@ public function testRunChangedColumns(): void

$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users: 3 change(s) detected', $content);

$this->assertStringNotContainsString('- add column [new_column]', $this->output->getBuffer());
$this->assertStringNotContainsString('- drop column [created_at]', $this->output->getBuffer());
$this->assertStringNotContainsString('- alter column [user_name]', $this->output->getBuffer());
$this->assertStringNotContainsString('- add column [new_column]', $content);
$this->assertStringNotContainsString('- drop column [created_at]', $content);
$this->assertStringNotContainsString('- alter column [user_name]', $content);
}

public function testRunChangedColumnsVerbose(): void
Expand All @@ -97,16 +100,17 @@ public function testRunChangedColumnsVerbose(): void
$this->registry->getTableSchema($this->user)->column('user_name')->integer();
$this->registry->getTableSchema($this->user)->dropColumn('created_at');

$this->output->setVerbosity(FakeOutput::VERBOSITY_VERBOSE);
$this->output->setVerbosity(BufferedOutput::VERBOSITY_VERBOSE);
$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users', $this->output->getBuffer());
$this->assertStringContainsString('- add column [new_column]', $this->output->getBuffer());
$this->assertStringContainsString('- drop column [created_at]', $this->output->getBuffer());
$this->assertStringContainsString('- alter column [user_name]', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users', $content);
$this->assertStringContainsString('- add column [new_column]', $content);
$this->assertStringContainsString('- drop column [created_at]', $content);
$this->assertStringContainsString('- alter column [user_name]', $content);

$this->assertStringNotContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$this->assertStringNotContainsString('default.users: 3 change(s) detected', $content);
}

public function testRunChangedIndexes(): void
Expand All @@ -123,12 +127,13 @@ public function testRunChangedIndexes(): void

$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users: 3 change(s) detected', $content);

$this->assertStringNotContainsString('- add index on [created_at]', $this->output->getBuffer());
$this->assertStringNotContainsString('- drop index on [balance]', $this->output->getBuffer());
$this->assertStringNotContainsString('- alter index on [user_name]', $this->output->getBuffer());
$this->assertStringNotContainsString('- add index on [created_at]', $content);
$this->assertStringNotContainsString('- drop index on [balance]', $content);
$this->assertStringNotContainsString('- alter index on [user_name]', $content);
}

public function testRunChangedIndexesVerbose(): void
Expand All @@ -143,16 +148,17 @@ public function testRunChangedIndexesVerbose(): void
$this->registry->getTableSchema($this->user)->dropIndex(['balance']);
$this->registry->getTableSchema($this->user)->index(['created_at']);

$this->output->setVerbosity(FakeOutput::VERBOSITY_VERBOSE);
$this->output->setVerbosity(BufferedOutput::VERBOSITY_VERBOSE);
$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users', $this->output->getBuffer());
$this->assertStringContainsString('- add index on [created_at]', $this->output->getBuffer());
$this->assertStringContainsString('- drop index on [balance]', $this->output->getBuffer());
$this->assertStringContainsString('- alter index on [user_name]', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users', $content);
$this->assertStringContainsString('- add index on [created_at]', $content);
$this->assertStringContainsString('- drop index on [balance]', $content);
$this->assertStringContainsString('- alter index on [user_name]', $content);

$this->assertStringNotContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$this->assertStringNotContainsString('default.users: 3 change(s) detected', $content);
}

public function testRunChangedFk(): void
Expand All @@ -178,12 +184,13 @@ public function testRunChangedFk(): void

$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users: 3 change(s) detected', $content);

$this->assertStringNotContainsString('- add foreign key on [some_id]', $this->output->getBuffer());
$this->assertStringNotContainsString('- drop foreign key on [partner_id]', $this->output->getBuffer());
$this->assertStringNotContainsString('- alter foreign key on [friend_id]', $this->output->getBuffer());
$this->assertStringNotContainsString('- add foreign key on [some_id]', $content);
$this->assertStringNotContainsString('- drop foreign key on [partner_id]', $content);
$this->assertStringNotContainsString('- alter foreign key on [friend_id]', $content);
}

public function testRunChangedFkVerbose(): void
Expand All @@ -207,15 +214,16 @@ public function testRunChangedFkVerbose(): void
$this->registry->getTableSchema($this->user)->dropForeignKey(['partner_id']);
$this->registry->getTableSchema($this->user)->foreignKey(['some_id'], false)->references('users', ['id']);

$this->output->setVerbosity(FakeOutput::VERBOSITY_VERBOSE);
$this->output->setVerbosity(BufferedOutput::VERBOSITY_VERBOSE);
$this->generator->run($this->registry);

$this->assertStringContainsString('Schema changes:', $this->output->getBuffer());
$this->assertStringContainsString('default.users', $this->output->getBuffer());
$this->assertStringContainsString('- add foreign key on [some_id]', $this->output->getBuffer());
$this->assertStringContainsString('- drop foreign key on [partner_id]', $this->output->getBuffer());
$this->assertStringContainsString('- alter foreign key on [friend_id]', $this->output->getBuffer());
$content = $this->output->fetch();
$this->assertStringContainsString('Schema changes:', $content);
$this->assertStringContainsString('default.users', $content);
$this->assertStringContainsString('- add foreign key on [some_id]', $content);
$this->assertStringContainsString('- drop foreign key on [partner_id]', $content);
$this->assertStringContainsString('- alter foreign key on [friend_id]', $content);

$this->assertStringNotContainsString('default.users: 3 change(s) detected', $this->output->getBuffer());
$this->assertStringNotContainsString('default.users: 3 change(s) detected', $content);
}
}

0 comments on commit b154ff8

Please sign in to comment.