From a85ebb49b2a7260639a3570c251b5807ec96a584 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 15 Apr 2018 14:03:23 +0200 Subject: [PATCH] Improve test coverage. --- .../Json/AutoCompleteControllerTest.php | 76 +++++++++++++++++++ .../Controllers/JsonControllerTest.php | 75 ------------------ 2 files changed, 76 insertions(+), 75 deletions(-) diff --git a/tests/Feature/Controllers/Json/AutoCompleteControllerTest.php b/tests/Feature/Controllers/Json/AutoCompleteControllerTest.php index 9bca378ba4..89f54f9d6c 100644 --- a/tests/Feature/Controllers/Json/AutoCompleteControllerTest.php +++ b/tests/Feature/Controllers/Json/AutoCompleteControllerTest.php @@ -25,9 +25,15 @@ namespace Tests\Feature\Controllers\Json; use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; +use FireflyIII\Models\Budget; +use FireflyIII\Models\Category; +use FireflyIII\Models\Tag; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use FireflyIII\Repositories\Tag\TagRepositoryInterface; use Illuminate\Support\Collection; use Log; use Tests\TestCase; @@ -37,6 +43,8 @@ use Tests\TestCase; */ class AutoCompleteControllerTest extends TestCase { + + /** * */ @@ -81,6 +89,40 @@ class AutoCompleteControllerTest extends TestCase $response->assertStatus(200); } + /** + * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::budgets + */ + public function testBudgets() + { + // mock stuff + $budget = factory(Budget::class)->make(); + $categoryRepos = $this->mock(BudgetRepositoryInterface::class); + $journalRepos = $this->mock(JournalRepositoryInterface::class); + $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); + $categoryRepos->shouldReceive('getBudgets')->andReturn(new Collection([$budget])); + $this->be($this->user()); + $response = $this->get(route('json.budgets')); + $response->assertStatus(200); + $response->assertExactJson([$budget->name]); + } + + /** + * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::categories + */ + public function testCategories() + { + // mock stuff + $category = factory(Category::class)->make(); + $categoryRepos = $this->mock(CategoryRepositoryInterface::class); + $journalRepos = $this->mock(JournalRepositoryInterface::class); + $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); + $categoryRepos->shouldReceive('getCategories')->andReturn(new Collection([$category])); + $this->be($this->user()); + $response = $this->get(route('json.categories')); + $response->assertStatus(200); + $response->assertExactJson([$category->name]); + } + /** * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::expenseAccounts */ @@ -144,6 +186,24 @@ class AutoCompleteControllerTest extends TestCase $response->assertExactJson([$accountA->name]); } + /** + * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::tags + */ + public function testTags() + { + // mock stuff + $tag = factory(Tag::class)->make(); + $tagRepos = $this->mock(TagRepositoryInterface::class); + $journalRepos = $this->mock(JournalRepositoryInterface::class); + $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); + $tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]))->once(); + + $this->be($this->user()); + $response = $this->get(route('json.tags')); + $response->assertStatus(200); + $response->assertExactJson([$tag->tag]); + } + /** * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::transactionJournals */ @@ -163,4 +223,20 @@ class AutoCompleteControllerTest extends TestCase $response->assertStatus(200); $response->assertExactJson([]); } + + /** + * @covers \FireflyIII\Http\Controllers\Json\AutoCompleteController::transactionTypes + */ + public function testTransactionTypes(): void + { + // mock stuff + $journalRepos = $this->mock(JournalRepositoryInterface::class); + $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); + $journalRepos->shouldReceive('getTransactionTypes')->once()->andReturn(new Collection); + + $this->be($this->user()); + $response = $this->get(route('json.transaction-types', ['deposit'])); + $response->assertStatus(200); + $response->assertExactJson([]); + } } diff --git a/tests/Feature/Controllers/JsonControllerTest.php b/tests/Feature/Controllers/JsonControllerTest.php index 37b01eb501..7f11abfb47 100644 --- a/tests/Feature/Controllers/JsonControllerTest.php +++ b/tests/Feature/Controllers/JsonControllerTest.php @@ -22,15 +22,8 @@ declare(strict_types=1); namespace Tests\Feature\Controllers; -use FireflyIII\Models\Budget; -use FireflyIII\Models\Category; -use FireflyIII\Models\Tag; use FireflyIII\Models\TransactionJournal; -use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; -use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; -use FireflyIII\Repositories\Tag\TagRepositoryInterface; -use Illuminate\Support\Collection; use Log; use Tests\TestCase; @@ -67,74 +60,6 @@ class JsonControllerTest extends TestCase $response->assertStatus(200); } - /** - * @covers \FireflyIII\Http\Controllers\JsonController::budgets - */ - public function testBudgets() - { - // mock stuff - $budget = factory(Budget::class)->make(); - $categoryRepos = $this->mock(BudgetRepositoryInterface::class); - $journalRepos = $this->mock(JournalRepositoryInterface::class); - $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); - $categoryRepos->shouldReceive('getBudgets')->andReturn(new Collection([$budget])); - $this->be($this->user()); - $response = $this->get(route('json.budgets')); - $response->assertStatus(200); - $response->assertExactJson([$budget->name]); - } - - /** - * @covers \FireflyIII\Http\Controllers\JsonController::categories - */ - public function testCategories() - { - // mock stuff - $category = factory(Category::class)->make(); - $categoryRepos = $this->mock(CategoryRepositoryInterface::class); - $journalRepos = $this->mock(JournalRepositoryInterface::class); - $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); - $categoryRepos->shouldReceive('getCategories')->andReturn(new Collection([$category])); - $this->be($this->user()); - $response = $this->get(route('json.categories')); - $response->assertStatus(200); - $response->assertExactJson([$category->name]); - } - - /** - * @covers \FireflyIII\Http\Controllers\JsonController::tags - */ - public function testTags() - { - // mock stuff - $tag = factory(Tag::class)->make(); - $tagRepos = $this->mock(TagRepositoryInterface::class); - $journalRepos = $this->mock(JournalRepositoryInterface::class); - $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); - $tagRepos->shouldReceive('get')->andReturn(new Collection([$tag]))->once(); - - $this->be($this->user()); - $response = $this->get(route('json.tags')); - $response->assertStatus(200); - $response->assertExactJson([$tag->tag]); - } - - /** - * @covers \FireflyIII\Http\Controllers\JsonController::transactionTypes - */ - public function testTransactionTypes() - { - // mock stuff - $journalRepos = $this->mock(JournalRepositoryInterface::class); - $journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal); - $journalRepos->shouldReceive('getTransactionTypes')->once()->andReturn(new Collection); - - $this->be($this->user()); - $response = $this->get(route('json.transaction-types', ['deposit'])); - $response->assertStatus(200); - $response->assertExactJson([]); - } - /** * @covers \FireflyIII\Http\Controllers\JsonController::trigger */