DatabasePostgresBuilderTest.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace Illuminate\Tests\Database;
  3. use Illuminate\Database\Connection;
  4. use Illuminate\Database\Schema\Grammars\PostgresGrammar;
  5. use Illuminate\Database\Schema\PostgresBuilder;
  6. use Mockery as m;
  7. use PHPUnit\Framework\TestCase;
  8. class DatabasePostgresBuilderTest extends TestCase
  9. {
  10. protected function tearDown(): void
  11. {
  12. m::close();
  13. }
  14. public function testCreateDatabase()
  15. {
  16. $grammar = new PostgresGrammar;
  17. $connection = m::mock(Connection::class);
  18. $connection->shouldReceive('getConfig')->once()->with('charset')->andReturn('utf8');
  19. $connection->shouldReceive('getSchemaGrammar')->once()->andReturn($grammar);
  20. $connection->shouldReceive('statement')->once()->with(
  21. 'create database "my_temporary_database" encoding "utf8"'
  22. )->andReturn(true);
  23. $builder = $this->getBuilder($connection);
  24. $builder->createDatabase('my_temporary_database');
  25. }
  26. public function testDropDatabaseIfExists()
  27. {
  28. $grammar = new PostgresGrammar;
  29. $connection = m::mock(Connection::class);
  30. $connection->shouldReceive('getSchemaGrammar')->once()->andReturn($grammar);
  31. $connection->shouldReceive('statement')->once()->with(
  32. 'drop database if exists "my_database_a"'
  33. )->andReturn(true);
  34. $builder = $this->getBuilder($connection);
  35. $builder->dropDatabaseIfExists('my_database_a');
  36. }
  37. protected function getBuilder($connection)
  38. {
  39. return new PostgresBuilder($connection);
  40. }
  41. }