Add validation model test

Refs #2676
This commit is contained in:
Samuel Georges 2017-03-22 07:31:02 +11:00
parent 2b3a0caaee
commit b32176682f
3 changed files with 46 additions and 2 deletions

View File

@ -4,7 +4,6 @@ use Model;
class Post extends Model class Post extends Model
{ {
/** /**
* @var string The database table used by the model. * @var string The database table used by the model.
*/ */
@ -122,3 +121,13 @@ class RevisionablePost extends Post
} }
} }
class ValidationPost extends Post
{
use \October\Rain\Database\Traits\Validation;
public $rules = [
'title' => 'required|min:3|max:255',
'slug' => ['required', 'regex:/^[a-z0-9\/\:_\-\*\[\]\+\?\|]*$/i', 'unique:database_tester_posts'],
];
}

View File

@ -31,4 +31,4 @@ class ModelTest extends PluginTestCase
{ {
Post::create(['title' => 'Hi!', 'slug' => 'authenticity']); Post::create(['title' => 'Hi!', 'slug' => 'authenticity']);
} }
} }

View File

@ -0,0 +1,35 @@
<?php
use Database\Tester\Models\ValidationPost;
class ValidationModelTest extends PluginTestCase
{
public function setUp()
{
parent::setUp();
include_once base_path().'/tests/fixtures/plugins/database/tester/models/Post.php';
$this->runPluginRefreshCommand('Database.Tester');
}
/**
* @expectedException October\Rain\Database\ModelException
*/
public function test_slug_has_to_be_unique()
{
$post = ValidationPost::create([
'title' => 'This is a new post',
'slug' => 'post-1',
'description' => 'Testing...'
]);
$this->assertNotFalse($post);
$post2 = ValidationPost::create([
'title' => 'this is another post with the same slug',
'slug' => 'post-1',
'description' => 'testing....'
]);
}
}