Skip to content

Commit

Permalink
improved model manager test
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrián Pardellas Blunier committed Feb 5, 2016
1 parent 29ccf95 commit 9b07537
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/Contracts/Manager/ModelManager.php
Expand Up @@ -8,7 +8,7 @@ interface ModelManager
*
* @param string $modelName
*
* @return Illuminate\Database\Eloquent\Model
* @return \Illuminate\Database\Eloquent\Model
*/
public function getModelInstance($modelName);

Expand All @@ -17,12 +17,14 @@ public function getModelInstance($modelName);
*
* @param string $modelName
*
* @return ANavallaSuiza\Laravel\Database\Contracts\Repository\Repository
* @return \ANavallaSuiza\Laravel\Database\Contracts\Repository\Repository
*/
public function getRepository($modelName);

/**
* @param string $modelName
*
* @return \ANavallaSuiza\Laravel\Database\Contracts\Dbal\AbstractionLayer
*/
public function getAbstractionLayer($modelName);
}
14 changes: 14 additions & 0 deletions tests/Manager/ModelManagerTest.php
Expand Up @@ -27,6 +27,13 @@ public function test_returns_model_instance()
$this->assertInstanceOf('Database\Tests\Models\User', $modelInstance);
}

public function test_throws_exception_when_not_eloquent_model()
{
$this->setExpectedException(\Exception::class);

$this->sut->getModelInstance('Database\Tests\Models\Repositories\PostRepository');
}

public function test_returns_model_default_repository()
{
$repository = $this->sut->getRepository('Database\Tests\Models\User');
Expand All @@ -48,6 +55,13 @@ public function test_returns_model_cache_repository()
$this->assertInstanceOf('ANavallaSuiza\Laravel\Database\Repository\Eloquent\Cache', $repository);
}

public function test_throws_exception_when_custom_repository_is_not_extending_default()
{
$this->setExpectedException(\Exception::class);

$repository = $this->sut->getRepository('Database\Tests\Models\Text');
}

public function test_returns_model_abstraction_layer()
{
$repository = $this->sut->getAbstractionLayer('Database\Tests\Models\User');
Expand Down
7 changes: 7 additions & 0 deletions tests/Models/Repositories/TextRepository.php
@@ -0,0 +1,7 @@
<?php
namespace Database\Tests\Models\Repositories;

class TextRepository
{

}
18 changes: 18 additions & 0 deletions tests/Models/Text.php
@@ -0,0 +1,18 @@
<?php
namespace Database\Tests\Models;

use Illuminate\Database\Eloquent\Model;
use ANavallaSuiza\Laravel\Database\Contracts\Repository\HasCustomRepository;

class Text extends Model implements HasCustomRepository
{
/**
* Get Eloquent Model custom repository
*
* @return string
*/
public function repository()
{
return \Database\Tests\Models\Repositories\TextRepository::class;
}
}
32 changes: 32 additions & 0 deletions tests/migrations/2015_12_03_000003_create_texts_table.php
@@ -0,0 +1,32 @@
<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTextsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('texts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('body');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('texts');
}
}

0 comments on commit 9b07537

Please sign in to comment.