Improve some test coverage.

This commit is contained in:
James Cole
2018-01-21 18:06:57 +01:00
parent d5e6d1c578
commit 48fa86cc54
5 changed files with 189 additions and 7 deletions

View File

@@ -24,11 +24,17 @@ namespace Tests\Unit\Handlers\Events;
use FireflyIII\Events\RegisteredUser;
use FireflyIII\Events\RequestedNewPassword;
use FireflyIII\Events\UserChangedEmail;
use FireflyIII\Handlers\Events\UserEventHandler;
use FireflyIII\Mail\ConfirmEmailChangeMail;
use FireflyIII\Mail\RegisteredUser as RegisteredUserMail;
use FireflyIII\Mail\RequestedNewPassword as RequestedNewPasswordMail;
use FireflyIII\Mail\UndoEmailChangeMail;
use FireflyIII\Models\Role;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use Illuminate\Auth\Events\Login;
use Illuminate\Support\Facades\Mail;
use Mockery;
use Tests\TestCase;
/**
@@ -57,6 +63,127 @@ class UserEventHandlerTest extends TestCase
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::checkSingleUserIsAdmin
*/
public function testCheckSingleUserIsAdminMulti()
{
$repository = $this->mock(UserRepositoryInterface::class);
$user = $this->user();
$event = new Login($user, true);
$listener = new UserEventHandler();
// mock stuff
$repository->shouldReceive('count')->once()->andReturn(2);
$listener->checkSingleUserIsAdmin($event);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::checkSingleUserIsAdmin
*/
public function testCheckSingleUserIsAdminNoRole()
{
$repository = $this->mock(UserRepositoryInterface::class);
$user = $this->emptyUser();
$event = new Login($user, true);
$listener = new UserEventHandler();
// mock stuff
$repository->shouldReceive('count')->once()->andReturn(1);
$repository->shouldReceive('getRole')->once()->andReturn(null);
$repository->shouldReceive('attachRole')->once()->withArgs([Mockery::any(), 'owner']);
$repository->shouldReceive('createRole')->once()->withArgs(['owner', 'Site Owner', 'User runs this instance of FF3'])->andReturn(new Role);
$listener->checkSingleUserIsAdmin($event);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::checkSingleUserIsAdmin
*/
public function testCheckSingleUserIsAdminNotAdmin()
{
$repository = $this->mock(UserRepositoryInterface::class);
$user = $this->emptyUser();
$event = new Login($user, true);
$listener = new UserEventHandler();
// mock stuff
$repository->shouldReceive('count')->once()->andReturn(1);
$repository->shouldReceive('getRole')->once()->andReturn(new Role);
$repository->shouldReceive('attachRole')->once()->withArgs([Mockery::any(), 'owner']);
$listener->checkSingleUserIsAdmin($event);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::checkSingleUserIsAdmin
*/
public function testCheckSingleUserIsAdminSingle()
{
$repository = $this->mock(UserRepositoryInterface::class);
$user = $this->user();
$event = new Login($user, true);
$listener = new UserEventHandler();
// mock stuff
$repository->shouldReceive('count')->once()->andReturn(1);
$listener->checkSingleUserIsAdmin($event);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::sendEmailChangeConfirmMail
* @covers \FireflyIII\Events\UserChangedEmail
*/
public function testSendEmailChangeConfirmMail()
{
Mail::fake();
$user = $this->emptyUser();
$event = new UserChangedEmail($user, 'new@new', 'old@old', '127.0.0.1');
$listener = new UserEventHandler;
$listener->sendEmailChangeConfirmMail($event);
// must send user an email:
Mail::assertSent(
ConfirmEmailChangeMail::class, function ($mail) {
return $mail->hasTo('new@new') && '127.0.0.1' === $mail->ipAddress;
}
);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::sendEmailChangeUndoMail
* @covers \FireflyIII\Events\UserChangedEmail
*/
public function testSendEmailChangeUndoMail()
{
Mail::fake();
$user = $this->emptyUser();
$event = new UserChangedEmail($user, 'new@new', 'old@old', '127.0.0.1');
$listener = new UserEventHandler;
$listener->sendEmailChangeUndoMail($event);
// must send user an email:
Mail::assertSent(
UndoEmailChangeMail::class, function ($mail) {
return $mail->hasTo('old@old') && '127.0.0.1' === $mail->ipAddress;
}
);
$this->assertTrue(true);
}
/**
* @covers \FireflyIII\Handlers\Events\UserEventHandler::sendNewPassword
* @covers \FireflyIII\Events\RequestedNewPassword

View File

@@ -112,6 +112,22 @@ class AttachmentHelperTest extends TestCase
Storage::disk('upload')->assertExists(sprintf('at-%d.data', $attachments->first()->id));
}
/**
* Test double file upload. Needs to be after testSave.
*
* @covers \FireflyIII\Helpers\Attachments\AttachmentHelper::__construct
* @covers \FireflyIII\Helpers\Attachments\AttachmentHelper::saveAttachmentsForModel
*/
public function testSaveEmpty()
{
$journal = TransactionJournal::first();
$helper = new AttachmentHelper;
$res = $helper->saveAttachmentsForModel($journal, null);
$this->assertTrue($res);
}
/**
* Test double file upload. Needs to be after testSave.
*