Inheritance: extends Illuminate\Database\Eloquent\Model, use trait Hootlex\Moderation\Moderatable
 /**
  * @param array $overrides
  * @param int $amount
  *
  * @return \Hootlex\Moderation\Tests\Post
  */
 function createPost($overrides = [], $amount = 1)
 {
     $posts = new \Illuminate\Database\Eloquent\Collection();
     for ($i = 0; $i < $amount; $i++) {
         $post = Post::create(array_merge(['moderated_at' => 0], $overrides));
         $posts->push($post);
     }
     return count($posts) > 1 ? $posts : $posts[0];
 }
 /** @test */
 public function it_deletes_resources_of_any_status()
 {
     $posts = $this->createPost([], 3);
     Post::approve($posts[0]->id);
     Post::reject($posts[1]->id);
     //delete approved
     $posts[0]->delete();
     //delete rejected
     $posts[1]->delete();
     //delete pending
     $posts[2]->delete();
     $this->dontSeeInDatabase('posts', ['id' => $posts[0]->id]);
     $this->dontSeeInDatabase('posts', ['id' => $posts[1]->id]);
     $this->dontSeeInDatabase('posts', ['id' => $posts[2]->id]);
 }
 /** @test */
 public function it_deletes_resources_of_any_status()
 {
     $posts = $this->createPost([], 4);
     Post::approve($posts[0]->id);
     Post::reject($posts[1]->id);
     Post::postpone($posts[2]->id);
     foreach ($posts as $post) {
         $post->delete();
     }
     $this->dontSeeInDatabase('posts', ['id' => $posts[0]->id]);
     $this->dontSeeInDatabase('posts', ['id' => $posts[1]->id]);
     $this->dontSeeInDatabase('posts', ['id' => $posts[2]->id]);
 }
 /** @test */
 public function it_casts_moderated_at_attribute_as_a_date()
 {
     $post = $this->createPost();
     Post::approve($post->id);
     //reload the instance
     $post = Post::find($post->id);
     $this->assertInstanceOf(\Carbon\Carbon::class, $post->{$this->moderated_at_column});
 }
 /** @test */
 public function it_queries_pending_stories_by_default_when_not_in_strict_mode()
 {
     Post::$strictModeration = false;
     $posts = $this->createPost([$this->status_column => Status::PENDING], 5);
     $postsIds = $posts->pluck('id')->all();
     $postsReturned = Post::whereIn('id', $postsIds)->get();
     $this->assertCount(5, $postsReturned);
     foreach ($posts as $post) {
         $this->assertTrue($post->{$this->status_column} == Status::PENDING);
     }
 }