mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-22 20:16:22 +00:00
Expanded test coverage.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Feature\Controllers;
|
||||
|
||||
@@ -51,7 +51,7 @@ class ReportControllerTest extends TestCase
|
||||
$generator->shouldReceive('setStartDate')->once();
|
||||
$generator->shouldReceive('setEndDate')->once();
|
||||
$generator->shouldReceive('setAccounts')->once();
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report');
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report')->once();
|
||||
|
||||
|
||||
$this->be($this->user());
|
||||
@@ -71,7 +71,7 @@ class ReportControllerTest extends TestCase
|
||||
$generator->shouldReceive('setEndDate')->once();
|
||||
$generator->shouldReceive('setAccounts')->once();
|
||||
$generator->shouldReceive('setBudgets')->once();
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report');
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report')->once();
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('reports.report.budget', [1, 1, '20160101', '20160131']));
|
||||
@@ -90,7 +90,7 @@ class ReportControllerTest extends TestCase
|
||||
$generator->shouldReceive('setEndDate')->once();
|
||||
$generator->shouldReceive('setAccounts')->once();
|
||||
$generator->shouldReceive('setCategories')->once();
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report');
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report')->once();
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('reports.report.category', [1, 1, '20160101', '20160131']));
|
||||
@@ -108,13 +108,28 @@ class ReportControllerTest extends TestCase
|
||||
$generator->shouldReceive('setStartDate')->once();
|
||||
$generator->shouldReceive('setEndDate')->once();
|
||||
$generator->shouldReceive('setAccounts')->once();
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report');
|
||||
$generator->shouldReceive('generate')->andReturn('here-be-report')->once();
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('reports.report.default', [1, '20160101', '20160131']));
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::defaultReport
|
||||
*/
|
||||
public function testDefaultReportBadDate()
|
||||
{
|
||||
$generator = $this->mock(SYRG::class);
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->get(route('reports.report.default', [1, '20160101', '20150131']));
|
||||
$response->assertStatus(200);
|
||||
$response->assertSee('End date of report must be after start date.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::index
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::__construct
|
||||
@@ -204,14 +219,211 @@ class ReportControllerTest extends TestCase
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndex()
|
||||
public function testPostIndexAuditOK()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'audit',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'));
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.report.audit', ['1', '20160101', '20160131']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexBudgetError()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'budget' => [],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'budget',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.index'));
|
||||
$response->assertSessionHas('error');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexBudgetOK()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'budget' => ['1'],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'budget',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.report.budget', ['1', '1', '20160101', '20160131']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexCategoryError()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'category' => [],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'category',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.index'));
|
||||
$response->assertSessionHas('error');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexCategoryOK()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'category' => ['1'],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'category',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.report.category', ['1', '1', '20160101', '20160131']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexDefaultOK()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'default',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.report.default', ['1', '20160101', '20160131']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexDefaultStartEnd()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'daterange' => '2016-01-01 - 2015-01-31',
|
||||
'report_type' => 'default',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(200);
|
||||
$response->assertSee('End date of report must be after start date.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexTagError()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'tag' => [],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'tag',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.index'));
|
||||
$response->assertSessionHas('error');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexTagOK()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => ['1'],
|
||||
'tag' => ['housing'],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'tag',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.report.tag', ['1', 'housing', '20160101', '20160131']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \FireflyIII\Http\Controllers\ReportController::postIndex
|
||||
*/
|
||||
public function testPostIndexZeroAccounts()
|
||||
{
|
||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||
|
||||
$data = [
|
||||
'accounts' => [],
|
||||
'daterange' => '2016-01-01 - 2016-01-31',
|
||||
'report_type' => 'default',
|
||||
];
|
||||
|
||||
$this->be($this->user());
|
||||
$response = $this->post(route('reports.index.post'), $data);
|
||||
$response->assertStatus(302);
|
||||
$response->assertRedirect(route('reports.index'));
|
||||
$response->assertSessionHas('error');
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user