From c0d2cd8962f93be7e37c5864f36e6b77b98ff890 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 5 Jul 2018 19:39:17 +0200 Subject: [PATCH] Fix unit tests. --- .../V1/Controllers/BudgetLimitController.php | 25 +++++++++++++------ .../Controllers/BudgetLimitControllerTest.php | 13 +++++----- .../Triggers/ToAccountIsTest.php | 4 +-- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/app/Api/V1/Controllers/BudgetLimitController.php b/app/Api/V1/Controllers/BudgetLimitController.php index c95e915086..85e1ae3f84 100644 --- a/app/Api/V1/Controllers/BudgetLimitController.php +++ b/app/Api/V1/Controllers/BudgetLimitController.php @@ -34,11 +34,13 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; +use InvalidArgumentException; use League\Fractal\Manager; use League\Fractal\Pagination\IlluminatePaginatorAdapter; use League\Fractal\Resource\Collection as FractalCollection; use League\Fractal\Resource\Item; use League\Fractal\Serializer\JsonApiSerializer; +use Log; /** * Class BudgetLimitController @@ -90,18 +92,27 @@ class BudgetLimitController extends Controller */ public function index(Request $request): JsonResponse { - $manager = new Manager; - $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; - + $manager = new Manager; + $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; + $start = null; + $end = null; $budgetId = (int)($request->get('budget_id') ?? 0); $budget = $this->repository->findNull($budgetId); $this->parameters->set('budget_id', $budgetId); - $start = Carbon::createFromFormat('Y-m-d', $request->get('start')); - $this->parameters->set('start', $start->format('Y-m-d')); + try { + $start = Carbon::createFromFormat('Y-m-d', $request->get('start')); + $this->parameters->set('start', $start->format('Y-m-d')); + } catch (InvalidArgumentException $e) { + Log::debug(sprintf('Invalid date: %s', $e->getMessage())); + } - $end = Carbon::createFromFormat('Y-m-d', $request->get('end')); - $this->parameters->set('end', $end->format('Y-m-d')); + try { + $end = Carbon::createFromFormat('Y-m-d', $request->get('end')); + $this->parameters->set('end', $end->format('Y-m-d')); + } catch (InvalidArgumentException $e) { + Log::debug(sprintf('Invalid date: %s', $e->getMessage())); + } $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; diff --git a/tests/Api/V1/Controllers/BudgetLimitControllerTest.php b/tests/Api/V1/Controllers/BudgetLimitControllerTest.php index 47a222a80f..a7c283ef4e 100644 --- a/tests/Api/V1/Controllers/BudgetLimitControllerTest.php +++ b/tests/Api/V1/Controllers/BudgetLimitControllerTest.php @@ -116,15 +116,16 @@ class BudgetLimitControllerTest extends TestCase // mock calls: $repository->shouldReceive('setUser')->once(); - $repository->shouldReceive('findNull')->andReturn($budget); + $repository->shouldReceive('findNull')->andReturn(null); $repository->shouldReceive('getAllBudgetLimits')->once()->andReturn($budget->budgetlimits()->get()); // call API $params = [ - 'start_date' => '2018-01-01', - 'end_date' => '2018-01-31', + 'start' => '2018-01-01', + 'end' => '2018-01-31', ]; - $response = $this->get('/api/v1/budget_limits?' . http_build_query($params)); + $uri = '/api/v1/budget_limits?' . http_build_query($params); + $response = $this->get($uri); $response->assertStatus(200); $response->assertHeader('Content-Type', 'application/vnd.api+json'); } @@ -149,8 +150,8 @@ class BudgetLimitControllerTest extends TestCase // call API $params = [ 'budget_id' => $budget->id, - 'start_date' => '2018-01-01', - 'end_date' => '2018-01-31', + 'start' => '2018-01-01', + 'end' => '2018-01-31', ]; $response = $this->get('/api/v1/budget_limits?' . http_build_query($params)); $response->assertStatus(200); diff --git a/tests/Unit/TransactionRules/Triggers/ToAccountIsTest.php b/tests/Unit/TransactionRules/Triggers/ToAccountIsTest.php index c06e0ccf1f..e4ab56c5bc 100644 --- a/tests/Unit/TransactionRules/Triggers/ToAccountIsTest.php +++ b/tests/Unit/TransactionRules/Triggers/ToAccountIsTest.php @@ -44,7 +44,7 @@ class ToAccountIsTest extends TestCase $transactionCount = $journal->transactions()->count(); $account = $transaction->account; $count++; - } while ($account === null && $count < 30 && $transactionCount !== 2); + } while ($account === null && $count < 30 && $transactionCount !== 1); $trigger = ToAccountIs::makeFromStrings($account->name, false); $result = $trigger->triggered($journal); @@ -64,7 +64,7 @@ class ToAccountIsTest extends TestCase $transactionCount = $journal->transactions()->count(); $account = $transaction->account; $count++; - } while ($account === null && $count < 30 && $transactionCount !== 2); + } while ($account === null && $count < 30 && $transactionCount !== 1); $trigger = ToAccountIs::makeFromStrings('some name' . random_int(1, 234), false); $result = $trigger->triggered($journal);