1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
<?php
namespace Illuminate\Tests\Integration\Database\Sqlite;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Tests\Integration\Database\DatabaseTestCase;
use Orchestra\Testbench\Attributes\RequiresDatabase;
#[RequiresDatabase('sqlite')]
class DatabaseSqliteSchemaBuilderTest extends DatabaseTestCase
{
protected function defineEnvironment($app)
{
parent::defineEnvironment($app);
$app['config']->set('database.default', 'conn1');
$app['config']->set('database.connections.conn1', [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
]);
}
protected function afterRefreshingDatabase()
{
Schema::create('users', function (Blueprint $table) {
$table->integer('id');
$table->string('name');
$table->string('age');
$table->enum('color', ['red', 'blue']);
});
}
protected function destroyDatabaseMigrations()
{
Schema::drop('users');
}
public function testGetTablesAndColumnListing()
{
$tables = Schema::getTables();
$this->assertCount(2, $tables);
$this->assertEquals(['migrations', 'users'], array_column($tables, 'name'));
$columns = Schema::getColumnListing('users');
foreach (['id', 'name', 'age', 'color'] as $column) {
$this->assertContains($column, $columns);
}
Schema::create('posts', function (Blueprint $table) {
$table->integer('id');
$table->string('title');
});
$tables = Schema::getTables();
$this->assertCount(3, $tables);
Schema::drop('posts');
}
public function testGetViews()
{
DB::connection('conn1')->statement(<<<'SQL'
CREATE VIEW users_view
AS
SELECT name,age from users;
SQL);
$tableView = Schema::getViews();
$this->assertCount(1, $tableView);
$this->assertEquals('users_view', $tableView[0]['name']);
DB::connection('conn1')->statement(<<<'SQL'
DROP VIEW IF EXISTS users_view;
SQL);
$this->assertEmpty(Schema::getViews());
}
public function testGetRawIndex()
{
Schema::create('table', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->rawIndex('(strftime("%Y", created_at))', 'table_raw_index');
});
$indexes = Schema::getIndexes('table');
$this->assertSame([], collect($indexes)->firstWhere('name', 'table_raw_index')['columns']);
}
}
|