/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Database/EloquentModelLoadMinTest.php
104 строки
3 KB
Milwad
[10.x] Add tests for Eloquent methods (#49673)
14 янв 2024, 19:38
Не верифицирован
14 янв 2024, 19:38
c7d5e0e
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Integration\Database\EloquentModelLoadMinTest; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; use Illuminate\Tests\Integration\Database\DatabaseTestCase; class EloquentModelLoadMinTest extends DatabaseTestCase { protected function afterRefreshingDatabase() { Schema::create('base_models', function (Blueprint $table) { $table->increments('id'); }); Schema::create('related1s', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('base_model_id'); $table->integer('number'); }); Schema::create('related2s', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('base_model_id'); $table->integer('number'); }); BaseModel::create(); Related1::create(['base_model_id' => 1, 'number' => 10]); Related1::create(['base_model_id' => 1, 'number' => 11]); Related2::create(['base_model_id' => 1, 'number' => 12]); Related2::create(['base_model_id' => 1, 'number' => 13]); } public function testLoadMinSingleRelation() { $model = BaseModel::first(); DB::enableQueryLog(); $model->loadMin('related1', 'number'); $this->assertCount(1, DB::getQueryLog()); $this->assertEquals(10, $model->related1_min_number); } public function testLoadMinMultipleRelations() { $model = BaseModel::first(); DB::enableQueryLog(); $model->loadMin(['related1', 'related2'], 'number'); $this->assertCount(1, DB::getQueryLog()); $this->assertEquals(10, $model->related1_min_number); $this->assertEquals(12, $model->related2_min_number); } } class BaseModel extends Model { public $timestamps = false; protected $guarded = []; public function related1() { return $this->hasMany(Related1::class); } public function related2() { return $this->hasMany(Related2::class); } } class Related1 extends Model { public $timestamps = false; protected $fillable = ['base_model_id', 'number']; public function parent() { return $this->belongsTo(BaseModel::class); } } class Related2 extends Model { public $timestamps = false; protected $fillable = ['base_model_id', 'number']; public function parent() { return $this->belongsTo(BaseModel::class); } }