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 testGetByUsersFail()
 {
     $mock = Test::double('RemoteGallery');
     $galleries = RemoteGallery::getByUsers([]);
     $mock->verifyNeverInvoked('newModel');
     $mock->verifyNeverInvoked('modifyAttributes');
     $mock->verifyInvoked('newCollection');
     assertThat($galleries, is(emptyTraversable()));
 }
 public function testEmptyMatcherHasAReadableDescription()
 {
     $this->assertDescription('an empty traversable', emptyTraversable());
 }
 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()));
 }