. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Chart; use Carbon\Carbon; use FireflyIII\Generator\Chart\Basic\GeneratorInterface; use FireflyIII\Helpers\Chart\MetaPieChartInterface; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Helpers\Collector\TransactionCollectorInterface; use FireflyIII\Helpers\Filter\NegativeAmountFilter; use FireflyIII\Helpers\Filter\OpposingAccountFilter; use FireflyIII\Helpers\Filter\PositiveAmountFilter; use FireflyIII\Helpers\Filter\TransferFilter; use FireflyIII\Helpers\Fiscal\FiscalHelperInterface; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionType; use Log; use Preferences; use Tests\TestCase; /** * Class CategoryReportControllerTest */ class CategoryReportControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController */ public function testAccountExpense(): void { $generator = $this->mock(GeneratorInterface::class); $pieChart = $this->mock(MetaPieChartInterface::class); $fiscalHelper = $this->mock(FiscalHelperInterface::class); $date = new Carbon; $this->mockDefaultSession(); //Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345'); $fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date); $fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date); $pieChart->shouldReceive('setAccounts')->once()->andReturnSelf(); $pieChart->shouldReceive('setCategories')->once()->andReturnSelf(); $pieChart->shouldReceive('setStart')->once()->andReturnSelf(); $pieChart->shouldReceive('setEnd')->once()->andReturnSelf(); $pieChart->shouldReceive('setCollectOtherObjects')->once()->andReturnSelf()->withArgs([false]); $pieChart->shouldReceive('generate')->withArgs(['expense', 'account'])->andReturn([])->once(); $generator->shouldReceive('pieChart')->andReturn([])->once(); $this->be($this->user()); $response = $this->get(route('chart.category.account-expense', ['1', '1', '20120101', '20120131', 0])); $response->assertStatus(200); } /** * @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController */ public function testAccountIncome(): void { $generator = $this->mock(GeneratorInterface::class); $pieChart = $this->mock(MetaPieChartInterface::class); $fiscalHelper = $this->mock(FiscalHelperInterface::class); $date = new Carbon; $this->mockDefaultSession(); //Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345'); $fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date); $fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date); $pieChart->shouldReceive('setAccounts')->once()->andReturnSelf(); $pieChart->shouldReceive('setCategories')->once()->andReturnSelf(); $pieChart->shouldReceive('setStart')->once()->andReturnSelf(); $pieChart->shouldReceive('setEnd')->once()->andReturnSelf(); $pieChart->shouldReceive('setCollectOtherObjects')->once()->andReturnSelf()->withArgs([false]); $pieChart->shouldReceive('generate')->withArgs(['income', 'account'])->andReturn([])->once(); $generator->shouldReceive('pieChart')->andReturn([])->once(); $this->be($this->user()); $response = $this->get(route('chart.category.account-income', ['1', '1', '20120101', '20120131', 0])); $response->assertStatus(200); } /** * @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController */ public function testCategoryExpense(): void { $generator = $this->mock(GeneratorInterface::class); $pieChart = $this->mock(MetaPieChartInterface::class); $fiscalHelper = $this->mock(FiscalHelperInterface::class); $date = new Carbon; $this->mockDefaultSession(); //Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345'); $fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date); $fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date); $pieChart->shouldReceive('setAccounts')->once()->andReturnSelf(); $pieChart->shouldReceive('setCategories')->once()->andReturnSelf(); $pieChart->shouldReceive('setStart')->once()->andReturnSelf(); $pieChart->shouldReceive('setEnd')->once()->andReturnSelf(); $pieChart->shouldReceive('setCollectOtherObjects')->once()->andReturnSelf()->withArgs([false]); $pieChart->shouldReceive('generate')->withArgs(['expense', 'category'])->andReturn([])->once(); $generator->shouldReceive('pieChart')->andReturn([])->once(); $this->be($this->user()); $response = $this->get(route('chart.category.category-expense', ['1', '1', '20120101', '20120131', 0])); $response->assertStatus(200); } /** * @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController */ public function testCategoryIncome(): void { $generator = $this->mock(GeneratorInterface::class); $pieChart = $this->mock(MetaPieChartInterface::class); $fiscalHelper = $this->mock(FiscalHelperInterface::class); $date = new Carbon; $this->mockDefaultSession(); //Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345'); $fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date); $fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date); $pieChart->shouldReceive('setAccounts')->once()->andReturnSelf(); $pieChart->shouldReceive('setCategories')->once()->andReturnSelf(); $pieChart->shouldReceive('setStart')->once()->andReturnSelf(); $pieChart->shouldReceive('setEnd')->once()->andReturnSelf(); $pieChart->shouldReceive('setCollectOtherObjects')->once()->andReturnSelf()->withArgs([false]); $pieChart->shouldReceive('generate')->withArgs(['income', 'category'])->andReturn([])->once(); $generator->shouldReceive('pieChart')->andReturn([])->once(); $this->be($this->user()); $response = $this->get(route('chart.category.category-income', ['1', '1', '20120101', '20120131', 0])); $response->assertStatus(200); } /** * @covers \FireflyIII\Http\Controllers\Chart\CategoryReportController */ public function testMainChart(): void { $generator = $this->mock(GeneratorInterface::class); $collector = $this->mock(GroupCollectorInterface::class); $fiscalHelper = $this->mock(FiscalHelperInterface::class); $date = new Carbon; $withdrawal = $this->getRandomWithdrawalAsArray(); $this->mockDefaultSession(); Preferences::shouldReceive('lastActivity')->atLeast()->once()->andReturn('md512345'); $fiscalHelper->shouldReceive('endOfFiscalYear')->atLeast()->once()->andReturn($date); $fiscalHelper->shouldReceive('startOfFiscalYear')->atLeast()->once()->andReturn($date); $collector->shouldReceive('setAccounts')->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('withAccountInformation')->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('setRange')->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('setTypes')->withArgs([[TransactionType::WITHDRAWAL, TransactionType::TRANSFER]])->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('setTypes')->withArgs([[TransactionType::DEPOSIT, TransactionType::TRANSFER]])->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('setCategories')->andReturnSelf()->atLeast()->once(); $collector->shouldReceive('getExtractedJournals')->andReturn([$withdrawal])->atLeast()->once(); $generator->shouldReceive('multiSet')->andReturn([])->once(); $this->be($this->user()); $response = $this->get(route('chart.category.main', ['1', '1', '20120101', '20120131'])); $response->assertStatus(200); } }