public function testDeleteRelatedMetaWhenRemovesAUser()
 {
     $user = Factory::create('User', ['id' => 1]);
     Factory::times(2)->create('PostMeta', ['meta_key' => 'pal_user_id', 'meta_value' => 1]);
     $metaBeforeDelete = $user->meta;
     $user->delete();
     $metaAfterDelete = PostMeta::where('meta_key', '=', 'pal_user_id')->where('meta_value', '=', $user->id)->get();
     assertThat($metaBeforeDelete, is(nonEmptyTraversable()));
     assertThat($metaAfterDelete, is(emptyTraversable()));
 }
 public function testNonEmptyNonEmptyMatcherHasAReadableDescription()
 {
     $this->assertDescription('a non-empty traversable', nonEmptyTraversable());
 }
 public function testDestroyByUsersRemovePostFromSpecificPalUsers()
 {
     Factory::times(2)->create('Gallery');
     Factory::create('PostMeta', ['post_id' => 1, 'meta_value' => 1]);
     Factory::create('PostMeta', ['post_id' => 2, 'meta_value' => 2]);
     Factory::create('User', ['id' => 1]);
     Factory::create('User', ['id' => 2]);
     $galleriesBefore = Gallery::getByUsers([1, 2]);
     Gallery::destroyByUsers([1, 2]);
     $galleriesAfter = Gallery::getByUsers([1, 2]);
     assertThat($galleriesBefore, is(nonEmptyTraversable()));
     assertThat($galleriesAfter, is(emptyTraversable()));
 }