Skip to content

Commit 12da4d1

Browse files
committed
test: 💍 Add test stubs for DatabaseEloquentHasManyTest
1 parent 1eb9b1a commit 12da4d1

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

tests/Database/DatabaseEloquentHasManyTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
namespace Illuminate\Tests\Database;
44

55
use Exception;
6+
use Illuminate\Database\ConnectionInterface;
7+
use Illuminate\Database\ConnectionResolverInterface;
68
use Illuminate\Database\Eloquent\Builder;
79
use Illuminate\Database\Eloquent\Collection;
810
use Illuminate\Database\Eloquent\Model;
911
use Illuminate\Database\Eloquent\Relations\HasMany;
12+
use Illuminate\Database\Query\Builder as BaseBuilder;
1013
use Illuminate\Database\UniqueConstraintViolationException;
1114
use Mockery as m;
1215
use PHPUnit\Framework\TestCase;
@@ -356,6 +359,22 @@ protected function getRelation()
356359
return new HasMany($builder, $parent, 'table.foreign_key', 'id');
357360
}
358361

362+
protected function mockConnectionForModel($model, $database)
363+
{
364+
$grammarClass = 'Illuminate\Database\Query\Grammars\\'.$database.'Grammar';
365+
$processorClass = 'Illuminate\Database\Query\Processors\\'.$database.'Processor';
366+
$grammar = new $grammarClass;
367+
$processor = new $processorClass;
368+
$connection = m::mock(ConnectionInterface::class, ['getQueryGrammar' => $grammar, 'getPostProcessor' => $processor]);
369+
$connection->shouldReceive('query')->andReturnUsing(function () use ($connection, $grammar, $processor) {
370+
return new BaseBuilder($connection, $grammar, $processor);
371+
});
372+
$connection->shouldReceive('getDatabaseName')->andReturn('database');
373+
$resolver = m::mock(ConnectionResolverInterface::class, ['connection' => $connection]);
374+
$class = get_class($model);
375+
$class::setConnectionResolver($resolver);
376+
}
377+
359378
protected function expectNewModel($relation, $attributes = null)
360379
{
361380
$model = $this->getMockBuilder(Model::class)->onlyMethods(['setAttribute', 'save'])->getMock();
@@ -390,3 +409,26 @@ class EloquentHasManyModelStub extends Model
390409
{
391410
public $foreign_key = 'foreign.value';
392411
}
412+
413+
class EloquentHasManyModelStubWithRelation extends Model
414+
{
415+
public $incrementing = false;
416+
417+
protected $table = 'parent_table';
418+
419+
protected $keyType = 'string';
420+
421+
public function child()
422+
{
423+
return $this->hasMany(EloquentHasManyChildModelStub::class, 'foreign_key');
424+
}
425+
}
426+
427+
class EloquentHasManyChildModelStub extends Model
428+
{
429+
public $incrementing = false;
430+
431+
protected $table = 'child_table';
432+
433+
protected $keyType = 'string';
434+
}

0 commit comments

Comments
 (0)