Fix tests to catch use of repositories

This commit is contained in:
James Cole 2018-03-07 10:18:50 +01:00
parent 7109fd8196
commit e2d1de94b7
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
2 changed files with 33 additions and 7 deletions

View File

@ -2377,9 +2377,13 @@ class TransactionControllerTest extends TestCase
*/
public function testUpdateBasicDeposit()
{
$account = $this->user()->accounts()->where('account_type_id', 3)->first();
$repository = $this->mock(JournalRepositoryInterface::class);
$data = [
$account = $this->user()->accounts()->where('account_type_id', 3)->first();
$repository = $this->mock(JournalRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getAccountsById')->withArgs([[$account->id]])->andReturn(new Collection([$account]));
$data = [
'description' => 'Some deposit #' . rand(1, 1000),
'date' => '2018-01-01',
'transactions' => [
@ -2416,6 +2420,11 @@ class TransactionControllerTest extends TestCase
{
$account = $this->user()->accounts()->where('account_type_id', 3)->first();
$repository = $this->mock(JournalRepositoryInterface::class);
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('getAccountsById')->withArgs([[$account->id]])->andReturn(new Collection([$account]));
$data = [
'description' => 'Some transaction #' . rand(1, 1000),
'date' => '2018-01-01',
@ -2433,6 +2442,8 @@ class TransactionControllerTest extends TestCase
$count = $withdrawal->transactions()->count();
} while ($count !== 2);
$transaction = $withdrawal->transactions()->first();
$repository->shouldReceive('setUser');
$repository->shouldReceive('update')->andReturn($withdrawal)->once();

View File

@ -27,6 +27,7 @@ namespace Tests\Unit\Services\Internal\Update;
use FireflyIII\Factory\BudgetFactory;
use FireflyIII\Factory\CategoryFactory;
use FireflyIII\Models\Transaction;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Services\Internal\Update\TransactionUpdateService;
use Tests\TestCase;
@ -119,8 +120,7 @@ class TransactionUpdateServiceTest extends TestCase
{
/** @var Transaction $source */
$source = $this->user()->transactions()->where('amount', '>', 0)->inRandomOrder()->first();
$data = [
$data = [
'currency_id' => 1,
'currency_code' => null,
'description' => 'Some new description',
@ -137,6 +137,11 @@ class TransactionUpdateServiceTest extends TestCase
'foreign_currency_code' => null,
];
// mock repository:
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findNull')->andReturn($source->account);
/** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class);
$service->setUser($this->user());
@ -154,7 +159,6 @@ class TransactionUpdateServiceTest extends TestCase
{
/** @var Transaction $source */
$source = $this->user()->transactions()->where('amount', '>', 0)->inRandomOrder()->first();
$data = [
'currency_id' => 1,
'currency_code' => null,
@ -172,11 +176,18 @@ class TransactionUpdateServiceTest extends TestCase
'foreign_currency_code' => null,
];
// mock repository:
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findNull')->andReturn($source->account);
/** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class);
$service->setUser($this->user());
$result = $service->update($source, $data);
$this->assertEquals($source->id, $result->id);
$this->assertEquals($result->description, $data['description']);
$this->assertEquals($data['foreign_amount'], $result->foreign_amount);
@ -191,7 +202,6 @@ class TransactionUpdateServiceTest extends TestCase
{
/** @var Transaction $source */
$source = $this->user()->transactions()->where('amount', '<', 0)->inRandomOrder()->first();
$data = [
'currency_id' => 1,
'currency_code' => null,
@ -209,6 +219,11 @@ class TransactionUpdateServiceTest extends TestCase
'foreign_currency_code' => null,
];
// mock repository:
$accountRepos = $this->mock(AccountRepositoryInterface::class);
$accountRepos->shouldReceive('setUser');
$accountRepos->shouldReceive('findNull')->andReturn($source->account);
/** @var TransactionUpdateService $service */
$service = app(TransactionUpdateService::class);
$service->setUser($this->user());