/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Database/Sqlite/DatabaseSqliteConnectionTest.php
69 строк
2 KB
Mior Muhammad Zaki
[11.x] CI Improvements (#52851)
24 сен 2024, 16:43
Не верифицирован
24 сен 2024, 16:43
a84070d
Код
Авторство
О чём код?
<?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; use PHPUnit\Framework\Attributes\DataProvider; #[RequiresDatabase('sqlite')] class DatabaseSqliteConnectionTest 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() { if (! Schema::hasTable('json_table')) { Schema::create('json_table', function (Blueprint $table) { $table->json('json_col')->nullable(); }); } } protected function destroyDatabaseMigrations() { Schema::drop('json_table'); } #[DataProvider('jsonContainsKeyDataProvider')] public function testWhereJsonContainsKey($count, $column) { DB::table('json_table')->insert([ ['json_col' => '{"foo":{"bar":["baz"]}}'], ['json_col' => '{"foo":{"bar":false}}'], ['json_col' => '{"foo":{}}'], ['json_col' => '{"foo":[{"bar":"bar"},{"baz":"baz"}]}'], ['json_col' => '{"bar":null}'], ]); $this->assertSame($count, DB::table('json_table')->whereJsonContainsKey($column)->count()); } public static function jsonContainsKeyDataProvider() { return [ 'string key' => [4, 'json_col->foo'], 'nested key exists' => [2, 'json_col->foo->bar'], 'string key missing' => [0, 'json_col->none'], 'integer key with arrow ' => [0, 'json_col->foo->bar->0'], 'integer key with braces' => [1, 'json_col->foo->bar[0]'], 'integer key missing' => [0, 'json_col->foo->bar[1]'], 'mixed keys' => [1, 'json_col->foo[1]->baz'], 'null value' => [1, 'json_col->bar'], ]; } }