fs-ap / laravel-relationship-test
Enhance the unit test of relationship in model to projects in laravel
1.1
2016-04-22 14:51 UTC
Requires
- php: >=5.5.9
- illuminate/database: ~5.0
- minime/annotations: ~2.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-11-15 19:11:21 UTC
README
==================
Enhance the unit test of relationship in model to projects in laravel
Composer Installation
{ "require-dev": { "fs-ap/laravel-relationship-test": "~1.0" } }
Or
Through terminal: composer require --dev fs-ap/laravel-relationship-test:~1.0
Usage
<?php use Fs\Relationship; class AuthorModelTest extends PHPUnit_Framework_TestCase { /** * Check if the class in first param has a method that defines relation of type Relationship::HAS_MANY * and the second class has a relation of type Relationship::BELONGS_TO */ public function testAuthorCanHaveManyComments() { Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class)); } }
Explain
This feature checks bidirectional relation between models through of @return
annotations on method that defines the relation
<?php class Author extends Illuminate\Database\Eloquent\Model { /** * @return Illuminate\Database\Eloquent\Relations\HasMany */ public function comments() { return \$this->hasMany(Comment::class); } }
And
<?php class Comment extends Illuminate\Database\Eloquent\Model { /** * @return Illuminate\Database\Eloquent\Relations\BelongsTo */ public function author() { return \$this->belongsTo(Author::class); } }
Map of bidirectional check
Disable bidirectional check
<?php Relationship::check(Author::class, Relationship::HAS_MANY, Comment::class, true);
This checks only if the Author
has many Comment
independent if the relation has defined in Comment
class