DatabaseSQLiteBuilderTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace Illuminate\Tests\Database;
  3. use Illuminate\Container\Container;
  4. use Illuminate\Database\Connection;
  5. use Illuminate\Database\Schema\SQLiteBuilder;
  6. use Illuminate\Filesystem\Filesystem;
  7. use Illuminate\Support\Facades\Facade;
  8. use Illuminate\Support\Facades\File;
  9. use Mockery as m;
  10. use PHPUnit\Framework\TestCase;
  11. class DatabaseSQLiteBuilderTest extends TestCase
  12. {
  13. protected function setUp(): void
  14. {
  15. $app = new Container;
  16. Container::setInstance($app)
  17. ->singleton('files', Filesystem::class);
  18. Facade::setFacadeApplication($app);
  19. }
  20. protected function tearDown(): void
  21. {
  22. m::close();
  23. Container::setInstance(null);
  24. Facade::setFacadeApplication(null);
  25. }
  26. public function testCreateDatabase()
  27. {
  28. $connection = m::mock(Connection::class);
  29. $connection->shouldReceive('getSchemaGrammar')->once();
  30. $builder = new SQLiteBuilder($connection);
  31. File::shouldReceive('put')
  32. ->once()
  33. ->with('my_temporary_database_a', '')
  34. ->andReturn(20); // bytes
  35. $this->assertTrue($builder->createDatabase('my_temporary_database_a'));
  36. File::shouldReceive('put')
  37. ->once()
  38. ->with('my_temporary_database_b', '')
  39. ->andReturn(false);
  40. $this->assertFalse($builder->createDatabase('my_temporary_database_b'));
  41. }
  42. public function testDropDatabaseIfExists()
  43. {
  44. $connection = m::mock(Connection::class);
  45. $connection->shouldReceive('getSchemaGrammar')->once();
  46. $builder = new SQLiteBuilder($connection);
  47. File::shouldReceive('exists')
  48. ->once()
  49. ->andReturn(true);
  50. File::shouldReceive('delete')
  51. ->once()
  52. ->with('my_temporary_database_b')
  53. ->andReturn(true);
  54. $this->assertTrue($builder->dropDatabaseIfExists('my_temporary_database_b'));
  55. File::shouldReceive('exists')
  56. ->once()
  57. ->andReturn(false);
  58. $this->assertTrue($builder->dropDatabaseIfExists('my_temporary_database_c'));
  59. File::shouldReceive('exists')
  60. ->once()
  61. ->andReturn(true);
  62. File::shouldReceive('delete')
  63. ->once()
  64. ->with('my_temporary_database_c')
  65. ->andReturn(false);
  66. $this->assertFalse($builder->dropDatabaseIfExists('my_temporary_database_c'));
  67. }
  68. }