Fix test coverage.

This commit is contained in:
James Cole
2018-12-09 20:54:11 +01:00
parent 97f6e68164
commit ae4612f134
46 changed files with 383 additions and 229 deletions

View File

@@ -256,9 +256,7 @@ class AccountController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.accounts.transactions', [$account->id]) . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -260,8 +260,7 @@ class BillController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.bills.transactions', [$bill->id]) . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -256,9 +256,7 @@ class BudgetController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.budgets.transactions', [$budget->id]) . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -208,9 +208,7 @@ class BudgetLimitController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.budget_limits.transactions', [$budgetLimit->id]) . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -206,9 +206,7 @@ class CategoryController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.categories.transactions', [$category->id]) . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -195,8 +195,7 @@ class CurrencyController extends Controller
$paginator->setPath(route('api.v1.currencies.transactions', [$currency->code]) . $this->buildParams());
$transactions = $paginator->getCollection();
$journalRepository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $journalRepository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -163,8 +163,7 @@ class ImportController extends Controller
}
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -218,9 +218,7 @@ class LinkTypeController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.transactions.index') . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -205,9 +205,7 @@ class RecurrenceController extends Controller
$paginator = $collector->getPaginatedTransactions();
$paginator->setPath(route('api.v1.transactions.index') . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -222,9 +222,7 @@ class RuleController extends Controller
$manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($matchingTransactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($matchingTransactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -269,10 +269,7 @@ class RuleGroupController extends Controller
$manager = new Manager();
$baseUrl = $request->getSchemeAndHttpHost() . '/api/v1';
$manager->setSerializer(new JsonApiSerializer($baseUrl));
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($matchingTransactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($matchingTransactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -182,9 +182,7 @@ class TagController extends Controller
$paginator->setPath(route('api.v1.transactions.index') . $this->buildParams());
$transactions = $paginator->getCollection();
$repository = app(JournalRepositoryInterface::class);
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -171,7 +171,7 @@ class TransactionController extends Controller
$paginator->setPath(route('api.v1.transactions.index') . $this->buildParams());
$transactions = $paginator->getCollection();
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $this->repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
@@ -208,7 +208,7 @@ class TransactionController extends Controller
}
$transactions = $collector->getTransactions();
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $this->repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
}
@@ -252,7 +252,7 @@ class TransactionController extends Controller
}
$transactions = $collector->getTransactions();
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $this->repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
}
@@ -296,7 +296,7 @@ class TransactionController extends Controller
}
$transactions = $collector->getTransactions();
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters, $this->repository), 'transactions');
$resource = new FractalCollection($transactions, new TransactionTransformer($this->parameters), 'transactions');
return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');

View File

@@ -90,7 +90,7 @@ class CurrencyRequest extends Request
break;
case 'PUT':
case 'PATCH':
$currency = $this->route()->parameter('currency');
$currency = $this->route()->parameter('currency_code');
$rules['name'] = 'required|between:1,255|unique:transaction_currencies,name,' . $currency->id;
$rules['code'] = 'required|between:1,255|unique:transaction_currencies,code,' . $currency->id;
$rules['symbol'] = 'required|between:1,255|unique:transaction_currencies,symbol,' . $currency->id;

View File

@@ -102,9 +102,9 @@ class RuleRequest extends Request
'trigger' => 'required|in:store-journal,update-journal',
'triggers.*.name' => 'required|in:' . implode(',', $validTriggers),
'triggers.*.stop_processing' => [new IsBoolean],
'triggers.*.value' => 'required_if:rule_actions.*.type,' . $contextTriggers . '|min:1|ruleTriggerValue',
'triggers.*.value' => 'required_if:actions.*.type,' . $contextTriggers . '|min:1|ruleTriggerValue',
'actions.*.name' => 'required|in:' . implode(',', $validActions),
'actions.*.value' => 'required_if:rule_actions.*.type,' . $contextActions . '|ruleActionValue',
'actions.*.value' => 'required_if:actions.*.type,' . $contextActions . '|ruleActionValue',
'actions.*.stop_processing' => [new IsBoolean],
'strict' => [new IsBoolean],
'stop_processing' => [new IsBoolean],

View File

@@ -158,9 +158,9 @@ class EditController extends Controller
{
$index = 0;
$actions = [];
$currentActions = $rule->ruleActions()->orderBy('order','ASC')->get();
/** @var RuleAction $entry */
foreach ($rule->ruleActions as $entry) {
foreach ($currentActions as $entry) {
$count = ($index + 1);
try {
$actions[] = view(
@@ -196,9 +196,9 @@ class EditController extends Controller
{
$index = 0;
$triggers = [];
$currentTriggers = $rule->ruleTriggers()->orderBy('order','ASC')->get();
/** @var RuleTrigger $entry */
foreach ($rule->ruleTriggers as $entry) {
foreach ($currentTriggers as $entry) {
if ('user_action' !== $entry->trigger_type) {
$count = ($index + 1);
try {

View File

@@ -155,8 +155,8 @@ class SelectController extends Controller
$strict = '1' === $request->get('strict');
/** @var TransactionMatcher $matcher */
$matcher = app(TransactionMatcher::class);
$matcher->setLimit($limit);
$matcher->setRange($range);
$matcher->setSearchLimit($range);
$matcher->setTriggeredLimit($limit);
$matcher->setTriggers($triggers);
$matcher->setStrict($strict);
try {
@@ -222,8 +222,8 @@ class SelectController extends Controller
/** @var TransactionMatcher $matcher */
$matcher = app(TransactionMatcher::class);
$matcher->setLimit($limit);
$matcher->setRange($range);
$matcher->setTriggeredLimit($limit);
$matcher->setSearchLimit($range);
$matcher->setRule($rule);
try {
$matchingTransactions = $matcher->findTransactionsByRule();

View File

@@ -142,7 +142,7 @@ class MassController extends Controller
$this->rememberPreviousUri('transactions.mass-edit.uri');
$transformer = new TransactionTransformer(new ParameterBag, $this->repository);
$transformer = new TransactionTransformer(new ParameterBag);
/** @var TransactionCollectorInterface $collector */
$collector = app(TransactionCollectorInterface::class);
$collector->setUser($user);

View File

@@ -253,7 +253,7 @@ class TransactionController extends Controller
$collector->setJournals(new Collection([$journal]));
$set = $collector->getTransactions();
$transactions = [];
$transformer = new TransactionTransformer(new ParameterBag, $this->repository);
$transformer = new TransactionTransformer(new ParameterBag);
/** @var Transaction $transaction */
foreach ($set as $transaction) {
$transactions[] = $transformer->transform($transaction);

View File

@@ -58,8 +58,8 @@ class RuleFormRequest extends Request
'description' => $this->string('description'),
'stop_processing' => $this->boolean('stop_processing'),
'strict' => $this->boolean('strict'),
'rule_triggers' => $this->getRuleTriggerData(),
'rule_actions' => $this->getRuleActionData(),
'triggers' => $this->getRuleTriggerData(),
'actions' => $this->getRuleActionData(),
];
return $data;
@@ -83,16 +83,16 @@ class RuleFormRequest extends Request
// initial set of rules:
$rules = [
'title' => 'required|between:1,100|uniqueObjectForUser:rules,title',
'description' => 'between:1,5000|nullable',
'stop_processing' => 'boolean',
'rule_group_id' => 'required|belongsToUser:rule_groups',
'trigger' => 'required|in:store-journal,update-journal',
'rule_triggers.*.name' => 'required|in:' . implode(',', $validTriggers),
'rule_triggers.*.value' => sprintf('required_if:rule_triggers.*.name,%s|min:1|ruleTriggerValue', $contextTriggers),
'rule-actions.*.name' => 'required|in:' . implode(',', $validActions),
'rule_actions.*.value' => sprintf('required_if:rule_actions.*.name,%s|min:1|ruleActionValue', $contextActions),
'strict' => 'in:0,1',
'title' => 'required|between:1,100|uniqueObjectForUser:rules,title',
'description' => 'between:1,5000|nullable',
'stop_processing' => 'boolean',
'rule_group_id' => 'required|belongsToUser:rule_groups',
'trigger' => 'required|in:store-journal,update-journal',
'triggers.*.name' => 'required|in:' . implode(',', $validTriggers),
'triggers.*.value' => sprintf('required_if:triggers.*.name,%s|min:1|ruleTriggerValue', $contextTriggers),
'actions.*.name' => 'required|in:' . implode(',', $validActions),
'actions.*.value' => sprintf('required_if:actions.*.name,%s|min:1|ruleActionValue', $contextActions),
'strict' => 'in:0,1',
];
/** @var Rule $rule */
@@ -111,7 +111,7 @@ class RuleFormRequest extends Request
private function getRuleActionData(): array
{
$return = [];
$actionData = $this->get('rule_actions');
$actionData = $this->get('actions');
if (\is_array($actionData)) {
foreach ($actionData as $action) {
$stopProcessing = $action['stop_processing'] ?? '0';
@@ -132,7 +132,7 @@ class RuleFormRequest extends Request
private function getRuleTriggerData(): array
{
$return = [];
$triggerData = $this->get('rule_triggers');
$triggerData = $this->get('triggers');
if (\is_array($triggerData)) {
foreach ($triggerData as $trigger) {
$stopProcessing = $trigger['stop_processing'] ?? '0';

View File

@@ -42,6 +42,7 @@ class TestRuleFormRequest extends Request
/**
* Rules for this request.
* TODO these rules are not valid anymore.
*
* @return array
*/

View File

@@ -222,7 +222,6 @@ trait RequestInformation
*/
protected function getTransactionDataFromJournal(TransactionJournal $journal): array // convert object
{
$repository = app(JournalRepositoryInterface::class);
// use collector to collect transactions.
$collector = app(TransactionCollectorInterface::class);
$collector->setUser(auth()->user());
@@ -231,7 +230,7 @@ trait RequestInformation
$collector->setJournals(new Collection([$journal]));
$set = $collector->getTransactions();
$transactions = [];
$transformer = new TransactionTransformer(new ParameterBag, $repository);
$transformer = new TransactionTransformer(new ParameterBag);
/** @var Transaction $transaction */
foreach ($set as $transaction) {
$res = [];
@@ -262,7 +261,7 @@ trait RequestInformation
protected function getValidTriggerList(TestRuleFormRequest $request): array // process input
{
$triggers = [];
$data = $request->get('rule_triggers');
$data = $request->get('triggers');
if (\is_array($data)) {
foreach ($data as $index => $triggerInfo) {
$triggers[] = [

View File

@@ -51,7 +51,8 @@ trait RuleManagement
'description' => (string)trans('firefly.default_rule_description'),
'trigger' => 'store-journal',
'strict' => true,
'rule_triggers' => [
'active' => true,
'triggers' => [
[
'name' => 'description_is',
'value' => (string)trans('firefly.default_rule_trigger_description'),
@@ -66,7 +67,7 @@ trait RuleManagement
],
],
'rule_actions' => [
'actions' => [
[
'name' => 'prepend_description',
'value' => (string)trans('firefly.default_rule_action_prepend'),
@@ -94,7 +95,7 @@ trait RuleManagement
{
$index = 0;
$triggers = [];
$oldInput = $request->old('rule_actions');
$oldInput = $request->old('actions');
if (\is_array($oldInput)) {
foreach ($oldInput as $oldAction) {
try {
@@ -127,7 +128,7 @@ trait RuleManagement
{
$index = 0;
$triggers = [];
$oldInput = $request->old('rule_triggers');
$oldInput = $request->old('triggers');
if (\is_array($oldInput)) {
foreach ($oldInput as $oldTrigger) {
try {
@@ -162,6 +163,7 @@ trait RuleManagement
$data = [
'title' => (string)trans('firefly.default_rule_group_name'),
'description' => (string)trans('firefly.default_rule_group_description'),
'active' => true,
];
$repository->store($data);

View File

@@ -120,8 +120,8 @@ class AccountTransformer extends TransformerAbstract
'id' => (int)$account->id,
'updated_at' => $account->updated_at->toAtomString(),
'created_at' => $account->created_at->toAtomString(),
'name' => $account->name,
'active' => 1 === (int)$account->active,
'name' => $account->name,
'type' => $type,
'account_role' => $role,
'currency_id' => $currencyId,

View File

@@ -51,10 +51,10 @@ class TransactionTransformer extends TransformerAbstract
* @param ParameterBag $parameters
* @param JournalRepositoryInterface $repository
*/
public function __construct(ParameterBag $parameters, JournalRepositoryInterface $repository)
public function __construct(ParameterBag $parameters)
{
$this->parameters = $parameters;
$this->repository = $repository;
$this->repository = app(JournalRepositoryInterface::class);
}
/**

View File

@@ -306,7 +306,7 @@ class FireflyValidator extends Validator
}
/**
* $attribute has the format rule_triggers.%d.value.
* $attribute has the format triggers.%d.value.
*
* @param string $attribute
* @param string $value