Skip to content

Commit

Permalink
test: 💍 Add test stubs for DatabaseEloquentHasManyTest
Browse files Browse the repository at this point in the history
  • Loading branch information
mpyw committed Oct 5, 2023
1 parent 1eb9b1a commit 12da4d1
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions tests/Database/DatabaseEloquentHasManyTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
namespace Illuminate\Tests\Database;

use Exception;
use Illuminate\Database\ConnectionInterface;
use Illuminate\Database\ConnectionResolverInterface;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Query\Builder as BaseBuilder;
use Illuminate\Database\UniqueConstraintViolationException;
use Mockery as m;
use PHPUnit\Framework\TestCase;
Expand Down Expand Up @@ -356,6 +359,22 @@ protected function getRelation()
return new HasMany($builder, $parent, 'table.foreign_key', 'id');
}

protected function mockConnectionForModel($model, $database)
{
$grammarClass = 'Illuminate\Database\Query\Grammars\\'.$database.'Grammar';
$processorClass = 'Illuminate\Database\Query\Processors\\'.$database.'Processor';
$grammar = new $grammarClass;
$processor = new $processorClass;
$connection = m::mock(ConnectionInterface::class, ['getQueryGrammar' => $grammar, 'getPostProcessor' => $processor]);
$connection->shouldReceive('query')->andReturnUsing(function () use ($connection, $grammar, $processor) {
return new BaseBuilder($connection, $grammar, $processor);
});
$connection->shouldReceive('getDatabaseName')->andReturn('database');
$resolver = m::mock(ConnectionResolverInterface::class, ['connection' => $connection]);
$class = get_class($model);
$class::setConnectionResolver($resolver);
}

protected function expectNewModel($relation, $attributes = null)
{
$model = $this->getMockBuilder(Model::class)->onlyMethods(['setAttribute', 'save'])->getMock();
Expand Down Expand Up @@ -390,3 +409,26 @@ class EloquentHasManyModelStub extends Model
{
public $foreign_key = 'foreign.value';
}

class EloquentHasManyModelStubWithRelation extends Model
{
public $incrementing = false;

protected $table = 'parent_table';

protected $keyType = 'string';

public function child()
{
return $this->hasMany(EloquentHasManyChildModelStub::class, 'foreign_key');
}
}

class EloquentHasManyChildModelStub extends Model
{
public $incrementing = false;

protected $table = 'child_table';

protected $keyType = 'string';
}

0 comments on commit 12da4d1

Please sign in to comment.