Compare commits

..

41 Commits

Author SHA1 Message Date
James Cole
7b4bc23815 Merge branch 'release/3.4.0.5' 2015-05-10 19:18:57 +02:00
James Cole
274dba7408 Update read me. 2015-05-10 19:18:49 +02:00
James Cole
31708ca29e Ignore some code. 2015-05-10 19:18:43 +02:00
James Cole
671b025588 More ignore stuff. 2015-05-10 13:40:29 +02:00
James Cole
a7956e4856 Adding lots of ignore statements because testing the models is pointless. 2015-05-10 13:22:00 +02:00
James Cole
355862025a Auth and password controller. 2015-05-10 13:06:02 +02:00
James Cole
a2a39ee0f8 Ignore piggy bank part. 2015-05-10 09:35:42 +02:00
James Cole
ec8e39c16f Fixed currency tests. 2015-05-10 09:26:44 +02:00
James Cole
88f714999e Add test to get full coverage. 2015-05-10 08:53:49 +02:00
James Cole
c0c2aa3be0 Fixed one test. 2015-05-10 08:49:15 +02:00
James Cole
822044820e Ignored more files. 2015-05-10 08:26:42 +02:00
James Cole
6ffc182142 Ignore lots of code in test coverage. 2015-05-10 08:08:07 +02:00
James Cole
3d54a78573 Tag repository tests 2015-05-10 07:48:33 +02:00
James Cole
8ddf7d953a Ignore constructor. 2015-05-10 07:09:21 +02:00
James Cole
8b9e9ad103 Tests for reminder repository. 2015-05-10 07:07:17 +02:00
James Cole
5737224c40 Simplified translations [skip ci] 2015-05-09 22:42:45 +02:00
James Cole
ec9aacbcae More new tests. 2015-05-09 22:30:16 +02:00
James Cole
9395454997 Small optimalizations [skip ci] 2015-05-09 19:27:25 +02:00
James Cole
66198a8d98 Expanded bread crumb [skip ci] 2015-05-09 19:23:37 +02:00
James Cole
96ed9a4256 Finished journal repository. 2015-05-09 18:30:58 +02:00
James Cole
10e54b2263 Tested part of the journal repository. 2015-05-09 18:11:48 +02:00
James Cole
cf00922ad2 Merge branch 'release/3.4.0.4' 2015-05-09 15:13:20 +02:00
James Cole
84e8e007a5 Merge branch 'release/3.4.0.4' into develop 2015-05-09 15:13:20 +02:00
James Cole
d07b2e773b Update read me 2015-05-09 15:13:14 +02:00
James Cole
506ef7b0b9 Covered currency repository. 2015-05-09 15:11:12 +02:00
James Cole
2cd5dae8e2 New read me [skip ci] 2015-05-09 15:08:56 +02:00
James Cole
a1cd49c111 First attempt at translations. 2015-05-09 13:56:03 +02:00
James Cole
aca2973aef Experimental chart [skip ci] 2015-05-09 13:55:07 +02:00
James Cole
0a7a691c95 Experimental chart [skip ci] 2015-05-09 13:53:58 +02:00
James Cole
72906a7afd Experimental chart [skip ci] 2015-05-09 13:52:33 +02:00
James Cole
d1a4a83570 Covered category repository. 2015-05-09 13:14:02 +02:00
James Cole
e0396b29e8 Add GA beacon [skip ci] 2015-05-09 10:43:37 +02:00
James Cole
536833cfe0 Fixed tests. 2015-05-09 10:25:52 +02:00
James Cole
317b02d1b9 Finished budget repository tests. 2015-05-09 10:23:13 +02:00
James Cole
75e279ea0d Update read me [skip ci] 2015-05-09 09:17:09 +02:00
James Cole
dc2ad21f4c Updated read me [skip ci] 2015-05-09 09:15:39 +02:00
James Cole
484d49aae1 Fixed tests 2015-05-09 09:15:27 +02:00
James Cole
ca39438ad4 Small update to the read me. [skip ci] 2015-05-09 09:11:54 +02:00
James Cole
49a65ebff4 New budget repository tests. 2015-05-09 09:05:37 +02:00
James Cole
befdc05084 Rewrote read me. [skip ci] 2015-05-08 19:34:03 +02:00
James Cole
1fbffe761b Merge branch 'release/3.4.0.3' into develop 2015-05-08 17:35:03 +02:00
101 changed files with 1810 additions and 515 deletions

View File

@@ -15,4 +15,5 @@ EMAIL_SMTP=
EMAIL_DRIVER=smtp
EMAIL_USERNAME=
EMAIL_PASSWORD=
ANALYTICS_ID=
ANALYTICS_ID=
EMAIL_PRETEND=false

View File

@@ -14,4 +14,5 @@ SESSION_DRIVER=array
EMAIL_SMTP=
EMAIL_USERNAME=
EMAIL_PASSWORD=
ANALYTICS_ID=ABC
ANALYTICS_ID=ABC
EMAIL_PRETEND=true

View File

@@ -1,46 +1,62 @@
Firefly III (v3.4.0.3)
===========
# Firefly III
#### v3.4.0.5
[![Build Status](https://travis-ci.org/JC5/firefly-iii.svg?branch=develop)](https://travis-ci.org/JC5/firefly-iii)
[![Project Status](http://stillmaintained.com/JC5/firefly-iii.png?a=b)](http://stillmaintained.com/JC5/firefly-iii)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/d44c7012-5f50-41ad-add8-8445330e4102/mini.png)](https://insight.sensiolabs.com/projects/d44c7012-5f50-41ad-add8-8445330e4102)
[![Code Climate](https://codeclimate.com/github/JC5/firefly-iii/badges/gpa.svg)](https://codeclimate.com/github/JC5/firefly-iii)
[![Coverage Status](https://coveralls.io/repos/JC5/firefly-iii/badge.svg?branch=master)](https://coveralls.io/r/JC5/firefly-iii?branch=master)
[![Coverage Status](https://coveralls.io/repos/JC5/firefly-iii/badge.svg?branch=develop)](https://coveralls.io/r/JC5/firefly-iii?branch=develop)
[![Latest Stable Version](https://poser.pugx.org/grumpydictator/firefly-iii/v/stable.svg)](https://packagist.org/packages/grumpydictator/firefly-iii)
[![Total Downloads](https://poser.pugx.org/grumpydictator/firefly-iii/downloads.svg)](https://packagist.org/packages/grumpydictator/firefly-iii)
[![Latest Unstable Version](https://poser.pugx.org/grumpydictator/firefly-iii/v/unstable.svg)](https://packagist.org/packages/grumpydictator/firefly-iii)
[![License](https://poser.pugx.org/grumpydictator/firefly-iii/license.svg)](https://packagist.org/packages/grumpydictator/firefly-iii)
![GA](https://ga-beacon.appspot.com/UA-58172398-6/firefly-iii/readme)
## About
Firefly III is a tool to help you manage your finances. Please read the full description [in the wiki](https://github.com/JC5/firefly-iii/wiki/full-description).
Firefly Mark III is a new version of Firefly built upon best practices and lessons learned
from building [Firefly](https://github.com/JC5/Firefly). It's Mark III since the original Firefly never made it outside of my
laptop and [Firefly II](https://github.com/JC5/Firefly) is live.
If you're not sure if this tool is for you, please read the [full description](https://github.com/JC5/firefly-iii/wiki/full-description).
To install and use Firefly III, please read [the installation guide](https://github.com/JC5/firefly-iii/wiki/Installation),
[the upgrade guide](https://github.com/JC5/firefly-iii/wiki/Upgrade-instructions) (if applicable) and the **[first use guide](https://github.com/JC5/firefly-iii/wiki/First-use)**.
"Firefly III" is a financial manager. It can help you keep track of expenses, income, budgets and everything in between. It even supports credit cards, shared
household accounts and savings accounts! It's pretty fancy. You should use it to save and organise money.
If you want to try out Firefly III, you can do so on [this dedicated website](https://geld.nder.be/). This site always runs the latest version of Firefly III. If you want to use it, please read the [privacy considerations](https://github.com/JC5/firefly-iii/wiki/Privacy-on-demo-site) for this demo-site.
Firefly is a system you'll have install yourself on webhosting of your choosing.
Personal financial management is pretty difficult, and everybody has their own approach to it. Some people
make budgets, other people limit their cashflow by throwing away their credit cards, others get a better job.
There are tons of ways to save and earn money.
To get to know Firefly, and to see if it fits you, check out these resources:
- The screenshots below on this very page.
- The featurelist below, also on this very page.
- The [full description](https://github.com/JC5/firefly-iii/wiki/full-description), which will tell you how Firefly works,
and the philosophy behind it.
### About the name (if you care)
It's III, or 3, because [version 2](https://github.com/JC5/Firefly) and version 1 (not online) preceded it. It has been growing steadily ever since.
## Running and installing
If you're still interested please read [the installation guide](https://github.com/JC5/firefly-iii/wiki/Installation),
[the upgrade guide](https://github.com/JC5/firefly-iii/wiki/Upgrade-instructions) (if applicable)
and the **[first use guide](https://github.com/JC5/firefly-iii/wiki/First-use)**.
If you want to try out Firefly III, you can do so on [this dedicated website](https://geld.nder.be/).
This site always runs the latest version of Firefly III. If you want to use it, please read the [privacy considerations](https://github.com/JC5/firefly-iii/wiki/Privacy-on-demo-site) for this demo-site.
## Current features
- [A double-entry bookkeeping system](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system);
- You can store, edit and remove withdrawals, deposits and transfers. This allows you full financial management;
- You can store, edit and remove [withdrawals, deposits and transfers](https://en.wikipedia.org/wiki/Financial_transaction). This allows you full financial management;
- You can manage different types of accounts
- Asset accounts
- Shared asset accounts (household accounts)
- [Asset](https://en.wikipedia.org/wiki/Asset) accounts
- Shared [asset accounts](https://en.wikipedia.org/wiki/Asset) ([household accounts](https://en.wikipedia.org/wiki/Household))
- Saving accounts
- Credit cards
- It's possible to create, change and manage money using _[budgets](https://en.wikipedia.org/wiki/Envelope_system)_;
- Organize transactions using categories;
- Save towards a goal using piggy banks;
- Predict and anticipate bills;
- View income / expense reports;
- Lots of help text in case you don't get it;
- Save towards a goal using [piggy banks](https://en.wikipedia.org/wiki/Piggy_bank);
- Predict and anticipate [bills](https://en.wikipedia.org/wiki/Invoice);
- View income / expense [reports](https://en.wikipedia.org/wiki/Financial_statement);
- Organize expenses using tags;
- Lots of help text in case you don't get it.
Everything is organised:
@@ -50,24 +66,10 @@ Everything is organised:
- Lots of charts because we all love them.
- Financial reporting showing you how well you are doing;
## Changes
Firefly III will feature, but does not feature yet:
- More control over other resources outside of personal finance
- Debts
- More test-coverage;
- Firefly will be able to split transactions; a single purchase can be split in multiple entries, for more fine-grained control.
- Firefly will be able to join transactions.
- Any other features I might not have thought of.
Some stuff has been removed:
- The nesting of budgets, categories and beneficiaries is removed because it was pretty pointless.
## Screenshots
_Please note that everything in these screenshots is fictional and may not be realistic._
![Index](https://i.nder.be/c09vfw90)
![Accounts](https://i.nder.be/hkn0vhcg)
@@ -83,6 +85,10 @@ Some stuff has been removed:
![Piggy banks](https://i.nder.be/hkud0h53)
## Current state
I have the basics up and running. Test coverage is currently coming, slowly.
Questions, ideas or other things to contribute? [Let me know](https://github.com/JC5/firefly-iii/issues/new)!
Firefly III is pretty much all grown up. Full test coverage (nerd alert!) is coming. One of the things on the todo-list
is adding translations.
Questions, ideas, bugs or other things to contribute? [Let me know](https://github.com/JC5/firefly-iii/issues/new)!
If you like this tool, feel free to [donate me some beer money](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2ZMV952UUSCLU&lc=NL&item_name=Development%20of%20Firefly&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted).

View File

@@ -2,6 +2,7 @@
/**
* Class Command
*
* @codeCoverageIgnore
* @package FireflyIII\Commands
*/
abstract class Command

View File

@@ -6,6 +6,7 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
/**
* Class Kernel
*
* @codeCoverageIgnore
* @package FireflyIII\Console
*/
class Kernel extends ConsoleKernel

View File

@@ -3,6 +3,7 @@
/**
* Class Event
*
* @codeCoverageIgnore
* @package FireflyIII\Events
*/
abstract class Event

View File

@@ -6,6 +6,7 @@ use Illuminate\Queue\SerializesModels;
/**
* Class JournalCreated
*
* @codeCoverageIgnore
* @package FireflyIII\Events
*/
class JournalCreated extends Event

View File

@@ -5,6 +5,7 @@ use Illuminate\Queue\SerializesModels;
/**
* Class JournalDeleted
*
* @codeCoverageIgnore
* @package FireflyIII\Events
*/
class JournalDeleted extends Event

View File

@@ -6,6 +6,7 @@ use Illuminate\Queue\SerializesModels;
/**
* Class JournalSaved
*
* @codeCoverageIgnore
* @package FireflyIII\Events
*/
class JournalSaved extends Event

View File

@@ -6,6 +6,7 @@ namespace FireflyIII\Exceptions;
/**
* Class FireflyException
*
* @codeCoverageIgnore
* @package FireflyIII\Exceptions
*/
class FireflyException extends \Exception

View File

@@ -6,6 +6,7 @@ use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
/**
* Class Handler
*
* @codeCoverageIgnore
* @package FireflyIII\Exceptions
*/
class Handler extends ExceptionHandler

View File

@@ -5,6 +5,7 @@ namespace FireflyIII\Exceptions;
/**
* Class NotImplementedException
*
* @codeCoverageIgnore
* @package FireflyIII\Exceptions
*/
class NotImplementedException extends \Exception

View File

@@ -4,6 +4,7 @@ namespace FireflyIII\Exceptions;
/**
* Class ValidationExceptions
*
* @codeCoverageIgnore
* @package FireflyIII\Exception
*/
class ValidationException extends \Exception

View File

@@ -5,6 +5,7 @@ use FireflyIII\Events\JournalDeleted;
/**
* Class JournalDeletedHandler
*
* @codeCoverageIgnore
* @package FireflyIII\Handlers\Events
*/
class JournalDeletedHandler

View File

@@ -38,6 +38,7 @@ class AuthController extends Controller
*
* @param \Illuminate\Contracts\Auth\Guard $auth
* @param \Illuminate\Contracts\Auth\Registrar $registrar
* @codeCoverageIgnore
*
*/
public function __construct(Guard $auth, Registrar $registrar)
@@ -51,7 +52,9 @@ class AuthController extends Controller
/**
* Show the application login form.
*
* @codeCoverageIgnore
* @return \Illuminate\Http\Response
*
*/
public function getLogin()
{
@@ -73,7 +76,9 @@ class AuthController extends Controller
$this->throwValidationException(
$request, $validator
);
// @codeCoverageIgnoreStart
}
// @codeCoverageIgnoreEnd
$data = $request->all();
$data['password'] = bcrypt($data['password']);

View File

@@ -7,7 +7,7 @@ use Illuminate\Foundation\Auth\ResetsPasswords;
/**
* Class PasswordController
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Controllers\Auth
*/
class PasswordController extends Controller

View File

@@ -149,6 +149,7 @@ class GoogleChartController extends Controller
{
$chart->addColumn('Budget', 'string');
$chart->addColumn('Left', 'number');
$chart->addColumn('Spent', 'number');
$chart->addColumn('Overspent', 'number');
$budgets = $repository->getBudgets();
@@ -160,30 +161,31 @@ class GoogleChartController extends Controller
$repetitions = $repository->getBudgetLimitRepetitions($budget, $start, $end);
if ($repetitions->count() == 0) {
$expenses = $repository->sumBudgetExpensesInPeriod($budget, $start, $end);
$allEntries->push([$budget->name, 0, $expenses]);
$allEntries->push([$budget->name, 0, 0, $expenses]);
continue;
}
/** @var LimitRepetition $repetition */
foreach ($repetitions as $repetition) {
$expenses = $repository->sumBudgetExpensesInPeriod($budget, $repetition->startdate, $repetition->enddate);
$allEntries->push([$budget->name . ' (' . $repetition->startdate->format('j M Y') . ')', floatval($repetition->amount), $expenses]);
$expenses = $repository->sumBudgetExpensesInPeriod($budget, $repetition->startdate, $repetition->enddate);
$left = $expenses < floatval($repetition->amount) ? floatval($repetition->amount) - $expenses : 0;
$spent = $expenses > floatval($repetition->amount) ? 0 : $expenses;
$overspent = $expenses > floatval($repetition->amount) ? $expenses - floatval($repetition->amount) : 0;
$allEntries->push(
[$budget->name . ' (' . $repetition->startdate->format('j M Y') . ')',
$left,
$spent,
$overspent
]
);
}
}
$noBudgetExpenses = $repository->getWithoutBudgetSum($start, $end);
$allEntries->push(['(no budget)', 0, $noBudgetExpenses]);
$allEntries->push(['(no budget)', 0, 0, $noBudgetExpenses]);
foreach ($allEntries as $entry) {
if ($entry[2] > 0) {
$left = $entry[1] - $entry[2];
if ($left > 0) {
$chart->addRow($entry[0], $left, null);
} else {
if ($left < 0) {
$chart->addRow($entry[0], null, $left);
}
}
if ($entry[1] != 0 || $entry[2] != 0 || $entry[3] != 0) {
$chart->addRow($entry[0], $entry[1], $entry[2], $entry[3]);
}
}

View File

@@ -7,6 +7,7 @@ use Illuminate\Http\Request;
/**
* Class Authenticate
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Middleware
*/
class Authenticate

View File

@@ -8,6 +8,7 @@ use Illuminate\Http\Request;
/**
* Class RedirectIfAuthenticated
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Middleware
*/
class RedirectIfAuthenticated

View File

@@ -10,6 +10,7 @@ use Log;
/**
* Class ReplaceTestVars
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Middleware
*/
class ReplaceTestVars

View File

@@ -6,6 +6,7 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
/**
* Class VerifyCsrfToken
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Middleware
*/
class VerifyCsrfToken extends BaseVerifier

View File

@@ -10,6 +10,7 @@ use Input;
/**
* Class AccountFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class AccountFormRequest extends Request

View File

@@ -9,6 +9,7 @@ use Input;
/**
* Class BillFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class BillFormRequest extends Request

View File

@@ -9,6 +9,7 @@ use Input;
/**
* Class BudgetFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class BudgetFormRequest extends Request

View File

@@ -9,6 +9,7 @@ use Input;
/**
* Class CategoryFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class CategoryFormRequest extends Request

View File

@@ -8,6 +8,7 @@ use Input;
/**
* Class BillFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class CurrencyFormRequest extends Request

View File

@@ -7,6 +7,7 @@ use Auth;
/**
* Class DeleteAccountFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class DeleteAccountFormRequest extends Request

View File

@@ -10,6 +10,7 @@ use Input;
/**
* Class JournalFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class JournalFormRequest extends Request

View File

@@ -8,6 +8,7 @@ use Input;
/**
* Class PiggyBankFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class PiggyBankFormRequest extends Request

View File

@@ -7,6 +7,7 @@ use Auth;
/**
* Class ProfileFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class ProfileFormRequest extends Request

View File

@@ -5,6 +5,7 @@ use Illuminate\Foundation\Http\FormRequest;
/**
* Class Request
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
abstract class Request extends FormRequest

View File

@@ -15,6 +15,7 @@ use Input;
/**
* Class TagFormRequest
*
* @codeCoverageIgnore
* @package FireflyIII\Http\Requests
*/
class TagFormRequest extends Request

View File

@@ -319,7 +319,7 @@ Breadcrumbs::register(
Breadcrumbs::register(
'reports.month', function (Generator $breadcrumbs, Carbon $date) {
$breadcrumbs->parent('reports.index');
$breadcrumbs->parent('reports.year', $date);
$breadcrumbs->push('Monthly report for ' . $date->format('F Y'), route('reports.month', [$date->year, $date->month]));
}
);

View File

@@ -29,6 +29,7 @@ class Account extends Model
/**
* @param array $fields
*
*
* @return Account|null
*/
public static function firstOrCreateEncrypted(array $fields)
@@ -86,6 +87,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function accountMeta()
@@ -94,6 +96,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function accountType()
@@ -102,6 +105,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -110,6 +114,7 @@ class Account extends Model
}
/**
*
* @param $fieldName
*
* @return string|null
@@ -127,6 +132,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string
@@ -144,6 +150,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function piggyBanks()
@@ -152,6 +159,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param array $types
*/
@@ -165,6 +173,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param string $name
* @param string $value
@@ -181,6 +190,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setNameAttribute($value)
@@ -190,6 +200,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function transactions()
@@ -198,6 +209,7 @@ class Account extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()

View File

@@ -6,6 +6,7 @@ use Watson\Validating\ValidatingTrait;
/**
* Class AccountMeta
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class AccountMeta extends Model
@@ -22,6 +23,7 @@ class AccountMeta extends Model
protected $table = 'account_meta';
/**
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function account()

View File

@@ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class AccountType
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class AccountType extends Model

View File

@@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Budget
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class Budget extends Model
@@ -17,6 +18,7 @@ class Budget extends Model
protected $fillable = ['user_id', 'name'];
/**
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function budgetlimits()

View File

@@ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class BudgetLimit
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class BudgetLimit extends Model

View File

@@ -8,6 +8,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Category
*
*
* @package FireflyIII\Models
*/
class Category extends Model
@@ -17,6 +18,7 @@ class Category extends Model
protected $fillable = ['user_id', 'name'];
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -25,6 +27,7 @@ class Category extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function transactionjournals()
@@ -66,6 +69,7 @@ class Category extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()
@@ -74,6 +78,7 @@ class Category extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setNameAttribute($value)
@@ -83,6 +88,7 @@ class Category extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string
@@ -94,9 +100,7 @@ class Category extends Model
return Crypt::decrypt($value);
}
// @codeCoverageIgnoreStart
return $value;
// @codeCoverageIgnoreEnd
}
}

View File

@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class Component
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class Component extends Model

View File

@@ -13,6 +13,7 @@ class LimitRepetition extends Model
{
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function budgetLimit()
@@ -21,6 +22,7 @@ class LimitRepetition extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()

View File

@@ -17,6 +17,7 @@ class PiggyBank extends Model
= ['name', 'account_id', 'order', 'reminder_skip', 'targetamount', 'startdate', 'targetdate', 'reminder', 'remind_me'];
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function account()
@@ -44,6 +45,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function piggyBankRepetitions()
@@ -52,6 +54,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -60,6 +63,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return int
@@ -70,6 +74,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function piggyBankEvents()
@@ -78,6 +83,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function reminders()
@@ -86,6 +92,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setNameAttribute($value)
@@ -95,6 +102,7 @@ class PiggyBank extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string

View File

@@ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class PiggyBankEvent
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class PiggyBankEvent extends Model

View File

@@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class PiggyBankRepetition
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class PiggyBankRepetition extends Model

View File

@@ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class Preference
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class Preference extends Model

View File

@@ -17,6 +17,7 @@ class Reminder extends Model
protected $fillable = ['user_id', 'startdate', 'metadata', 'enddate', 'active', 'notnow', 'remindersable_id', 'remindersable_type',];
/**
* @codeCoverageIgnore
* @param $value
*
* @return int
@@ -27,6 +28,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -35,6 +37,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return mixed
@@ -49,6 +52,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return bool
@@ -59,6 +63,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
*/
public function remindersable()
@@ -67,6 +72,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param Carbon $start
* @param Carbon $end
@@ -79,6 +85,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
*
* @return $this
@@ -92,6 +99,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setMetadataAttribute($value)
@@ -101,6 +109,7 @@ class Reminder extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()

View File

@@ -67,6 +67,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -75,6 +76,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string
@@ -85,6 +87,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string
@@ -95,6 +98,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setDescriptionAttribute($value)
@@ -103,6 +107,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setTagAttribute($value)
@@ -111,6 +116,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function transactionjournals()
@@ -119,6 +125,7 @@ class Tag extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()

View File

@@ -9,6 +9,7 @@ use Watson\Validating\ValidatingTrait;
/**
* Class Transaction
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class Transaction extends Model

View File

@@ -4,8 +4,10 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
*
* Class TransactionCurrency
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class TransactionCurrency extends Model

View File

@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class TransactionGroup
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class TransactionGroup extends Model

View File

@@ -32,6 +32,7 @@ class TransactionJournal extends Model
];
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function bill()
@@ -40,6 +41,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function budgets()
@@ -48,6 +50,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function categories()
@@ -94,6 +97,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function transactions()
@@ -102,6 +106,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return array
*/
public function getDates()
@@ -110,6 +115,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*
* @return string
@@ -120,12 +126,11 @@ class TransactionJournal extends Model
return Crypt::decrypt($value);
}
// @codeCoverageIgnoreStart
return $value;
// @codeCoverageIgnoreEnd
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function piggyBankEvents()
@@ -134,6 +139,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param Account $account
*/
@@ -147,6 +153,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param Carbon $date
*
@@ -158,6 +165,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param Carbon $date
*
@@ -169,6 +177,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param $amount
*/
@@ -185,6 +194,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param Carbon $date
*
@@ -196,6 +206,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param EloquentBuilder $query
* @param array $types
*/
@@ -211,6 +222,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* Automatically includes the 'with' parameters to get relevant related
* objects.
*
@@ -226,6 +238,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @param $value
*/
public function setDescriptionAttribute($value)
@@ -235,6 +248,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tags()
@@ -243,6 +257,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function transactionCurrency()
@@ -251,6 +266,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function transactionType()
@@ -259,6 +275,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function transactiongroups()
@@ -267,6 +284,7 @@ class TransactionJournal extends Model
}
/**
* @codeCoverageIgnore
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()

View File

@@ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class TransactionRelation
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class TransactionRelation extends Model

View File

@@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class TransactionType
*
* @codeCoverageIgnore
* @package FireflyIII\Models
*/
class TransactionType extends Model

View File

@@ -10,6 +10,7 @@ use FireflyIII\Support\Preferences;
use FireflyIII\Support\Steam;
use FireflyIII\Support\Twig\Budget;
use FireflyIII\Support\Twig\General;
use FireflyIII\Support\Twig\Translation;
use FireflyIII\Support\Twig\Journal;
use FireflyIII\Support\Twig\PiggyBank;
use FireflyIII\Validation\FireflyValidator;
@@ -42,6 +43,7 @@ class FireflyServiceProvider extends ServiceProvider
Twig::addExtension(new General);
Twig::addExtension(new Journal);
Twig::addExtension(new Budget);
Twig::addExtension(new Translation);
}
public function register()

View File

@@ -25,21 +25,6 @@ class BudgetRepository implements BudgetRepositoryInterface
*/
public function cleanupBudgets()
{
$limits = BudgetLimit::leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id')->get(['budget_limits.*']);
// loop budget limits:
$found = [];
/** @var BudgetLimit $limit */
foreach ($limits as $limit) {
$key = $limit->budget_id . '-' . $limit->startdate;
if (isset($found[$key])) {
$limit->delete();
} else {
$found[$key] = true;
}
unset($key);
}
// delete limits with amount 0:
BudgetLimit::where('amount', 0)->delete();

View File

@@ -137,7 +137,7 @@ class JournalRepository implements JournalRepositoryInterface
*/
public function getWithDate($id, Carbon $date)
{
return Auth::user()->transactionjournals()->where('id', $id)->where('date', $date->format('Y-m-d'))->first();
return Auth::user()->transactionjournals()->where('id', $id)->where('date', $date->format('Y-m-d 00:00:00'))->first();
}
/**
@@ -379,14 +379,19 @@ class JournalRepository implements JournalRepositoryInterface
$to = Account::find($data['account_to_id']);
break;
}
if (is_null($to->id)) {
if (is_null($to) || (!is_null($to) && is_null($to->id))) {
Log::error('"to"-account is null, so we cannot continue!');
App::abort(500, '"to"-account is null, so we cannot continue!');
// @codeCoverageIgnoreStart
}
if (is_null($from->id)) {
// @codeCoverageIgnoreEnd
if (is_null($from) || (!is_null($from) && is_null($from->id))) {
Log::error('"from"-account is null, so we cannot continue!');
App::abort(500, '"from"-account is null, so we cannot continue!');
// @codeCoverageIgnoreStart
}
// @codeCoverageIgnoreEnd
return [$from, $to];
}

View File

@@ -145,14 +145,20 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
/**
* Set all piggy banks to order 0.
*
* @return void
* @return boolean
*/
public function reset()
{
DB::table('piggy_banks')
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.id')
->where('accounts.user_id', Auth::user()->id)
->update(['order' => 0, 'piggy_banks.updated_at' => DB::Raw('NOW()')]);
// split query to make it work in sqlite:
$set = PiggyBank::
leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.id')
->where('accounts.user_id', Auth::user()->id)->get(['piggy_banks.*']);
foreach ($set as $e) {
$e->order = 0;
$e->save();
}
return true;
}
/**

View File

@@ -9,6 +9,7 @@ use FireflyIII\Models\Reminder;
/**
* Class PiggyBankPart
*
* @codeCoverageIgnore
* @package FireflyIII\Collection
*/
class PiggyBankPart

View File

@@ -20,7 +20,7 @@ class ReminderRepository implements ReminderRepositoryInterface
protected $helper;
/**
*
* @codeCoverageIgnore
*/
public function __construct()
{

View File

@@ -52,6 +52,7 @@ class TagRepository implements TagRepositoryInterface
$withdrawals = $tag->transactionjournals()->where('transaction_type_id', $withdrawal->id)->count();
$transfers = $tag->transactionjournals()->where('transaction_type_id', $transfer->id)->count();
$deposits = $tag->transactionjournals()->where('transaction_type_id', $deposit->id)->count();
if ($tag->tagMode == 'balancingAct') {
@@ -73,39 +74,47 @@ class TagRepository implements TagRepositoryInterface
}
if ($tag->tagMode == 'advancePayment') {
// advance payments cannot accept transfers:
if ($journal->transaction_type_id == $transfer->id) {
return false;
}
// only if this is the only withdrawal
if ($journal->transaction_type_id == $withdrawal->id && $withdrawals < 1) {
// the first transaction to be attached to this
// tag is attached just like that:
if ($withdrawals < 1 && $deposits < 1) {
$journal->tags()->save($tag);
return true;
}
// only if this is a deposit.
if ($journal->transaction_type_id == $deposit->id) {
// if withdrawal and already has a withdrawal, return false:
if ($journal->transaction_type_id == $withdrawal->id && $withdrawals == 1) {
return false;
}
// if this is a deposit, account must match the current only journal
// (if already present):
$currentWithdrawal = $tag->transactionjournals()->where('transaction_type_id', $withdrawal->id)->first();
if ($currentWithdrawal && $currentWithdrawal->assetAccount->id == $journal->assetAccount->id) {
// if already has transaction journals, must match ALL asset account id's:
if ($deposits > 0 || $withdrawals == 1) {
$match = true;
/** @var TransactionJournal $check */
foreach ($tag->transactionjournals as $check) {
if ($check->assetAccount->id != $journal->assetAccount->id) {
$match = false;
}
}
if ($match) {
$journal->tags()->save($tag);
return true;
} else {
if (is_null($currentWithdrawal)) {
$journal->tags()->save($tag);
return true;
}
}
}
return false;
}
// @codeCoverageIgnoreStart
return false;
}
// @codeCoverageIgnoreEnd
/**
* @param Tag $tag

View File

@@ -7,6 +7,7 @@ use Validator;
/**
* Class Registrar
*
* @codeCoverageIgnore
* @package FireflyIII\Services
*/
class Registrar implements RegistrarContract

View File

@@ -2,7 +2,6 @@
namespace FireflyIII\Support;
use Cache;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionJournal;

View File

@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Facade;
/**
* Class Amount
*
* @codeCoverageIgnore
* @package FireflyIII\Support\Facades
*/
class Amount extends Facade

View File

@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Facade;
/**
* Class Amount
*
* @codeCoverageIgnore
* @package FireflyIII\Support\Facades
*/
class ExpandedForm extends Facade

View File

@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Facade;
/**
* Class Navigation
*
* @codeCoverageIgnore
* @package FireflyIII\Support\Facades
*/
class Navigation extends Facade

View File

@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Facade;
/**
* Class Preferences
*
* @codeCoverageIgnore
* @package FireflyIII\Support\Facades
*/
class Preferences extends Facade

View File

@@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Facade;
/**
* Class Steam
*
* @codeCoverageIgnore
* @package FireflyIII\Support\Facades
*/
class Steam extends Facade

View File

@@ -0,0 +1,42 @@
<?php
namespace FireflyIII\Support\Twig;
use FireflyIII\Models\LimitRepetition;
use Twig_Extension;
use Twig_SimpleFilter;
/**
* Class Budget
*
* @package FireflyIII\Support\Twig
*/
class Translation extends Twig_Extension
{
/**
* @return array
*/
public function getFilters()
{
$filters = [];
$filters[] = new Twig_SimpleFilter(
'_', function ($name) {
return trans('firefly.'.$name);
}, ['is_safe' => ['html']]
);
return $filters;
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'FireflyIII\Support\Twig\Translation';
}
}

View File

@@ -119,6 +119,6 @@ return [
|
*/
'pretend' => false,
'pretend' => env('EMAIL_PRETEND', false),
];

View File

@@ -3,7 +3,8 @@ google.setOnLoadCallback(drawChart);
function drawChart() {
googleLineChart('chart/home/account', 'accounts-chart');
googleColumnChart('chart/home/budgets', 'budgets-chart');
//googleColumnChart('chart/home/budgets', 'budgets-chart');
googleStackedColumnChart('chart/home/budgets', 'budgets-chart');
googleColumnChart('chart/home/categories', 'categories-chart');
googlePieChart('chart/home/bills', 'bills-chart');
getBoxAmounts();

View File

@@ -0,0 +1,12 @@
<?php
return [
'welcome' => 'Welcome to Firefly!',
'mainTitle' => 'What\'s playing?',
'close' => 'Clone',
'pleaseHold' => 'Please hold...',
'mandatoryFields' => 'Mandatory fields',
'optionalFields' => 'Optional fields',
'options' => 'Options',
'something' => 'Something!'
];

View File

@@ -9,7 +9,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa {{ subTitleIcon }}"></i> Mandatory fields
<i class="fa {{ subTitleIcon }}"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -22,7 +22,7 @@
{% if what == 'asset' %}
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
@@ -34,11 +34,10 @@
</div>
</div>
{% endif %}
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','account') }}

View File

@@ -9,7 +9,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa {{ subTitleIcon }}"></i> Mandatory fields
<i class="fa {{ subTitleIcon }}"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -20,7 +20,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{% if account.accounttype.type == 'Default account' or account.accounttype.type == 'Asset account' %}
@@ -50,7 +50,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','account') }}

View File

@@ -5,10 +5,9 @@
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<!-- panel for mandatory fields -->
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation-circle"></i> Mandatory fields
<i class="fa fa-exclamation-circle"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -22,10 +21,9 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-6">
<!-- panel for optional fields -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.integer('skip',0) }}
@@ -37,7 +35,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','bill') }}

View File

@@ -9,7 +9,7 @@
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation-circle"></i> Mandatory fields
<i class="fa fa-exclamation-circle"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -26,7 +26,7 @@
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.integer('skip') }}
@@ -37,7 +37,7 @@
</div>
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','bill') }}

View File

@@ -6,7 +6,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation"></i> Mandatory fields
<i class="fa fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -17,7 +17,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','budget') }}

View File

@@ -13,7 +13,7 @@
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-fw fa-exclamation"></i> Mandatory fields
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.checkbox('active') }}
@@ -26,7 +26,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','budget') }}

View File

@@ -7,7 +7,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation"></i> Mandatory fields
<i class="fa fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -20,7 +20,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','category') }}

View File

@@ -7,7 +7,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation"></i> Mandatory fields
<i class="fa fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name') }}
@@ -21,7 +21,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','category') }}

View File

@@ -6,7 +6,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa {{ subTitleIcon }}"></i> Mandatory fields
<i class="fa {{ subTitleIcon }}"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name',null,{'maxlength' : 48}) }}
@@ -22,7 +22,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','currency') }}

View File

@@ -8,7 +8,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa {{ subTitleIcon }}"></i> Mandatory fields
<i class="fa {{ subTitleIcon }}"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('name',null,{'maxlength' : 48}) }}
@@ -23,7 +23,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','currency') }}

View File

@@ -5,7 +5,7 @@
{% if count == 0 %}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<p class="lead">Welcome to Firefly III.</p>
<p class="lead">{{ 'welcome'|_ }}</p>
<p>
Create a new asset account to get started.

View File

@@ -89,15 +89,15 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span>
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">{{ 'close'|_ }}</span>
</button>
<h4 class="modal-title" id="helpTitle">Please hold...</h4>
<h4 class="modal-title" id="helpTitle">{{ 'pleaseHold'|_ }}</h4>
</div>
<div class="modal-body" id="helpBody">
<i class="fa fa-refresh fa-spin"></i>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'close'|_ }}</button>
</div>
</div>
</div>

View File

@@ -8,7 +8,7 @@
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-fw fa-exclamation"></i> Mandatory fields
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
@@ -20,10 +20,9 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for optional fields -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.date('targetdate') }}
@@ -35,7 +34,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','piggy bank') }}

View File

@@ -10,7 +10,7 @@
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-fw fa-exclamation"></i> Mandatory fields
<i class="fa fa-fw fa-exclamation"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
@@ -23,10 +23,9 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for optional fields -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.date('targetdate') }}
@@ -38,7 +37,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','piggy bank') }}

View File

@@ -7,7 +7,7 @@
<div class="col-lg-5 col-md-5 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-tag"></i> Mandatory fields
<i class="fa fa-tag"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('tag') }}
@@ -20,7 +20,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.date('date') }}
@@ -32,7 +32,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','tag') }}

View File

@@ -9,7 +9,7 @@
<div class="col-lg-5 col-md-5 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-tag"></i> Mandatory fields
<i class="fa fa-tag"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.text('tag') }}
@@ -22,7 +22,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.date('date') }}
@@ -34,7 +34,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','tag') }}

View File

@@ -6,10 +6,9 @@
<input type="hidden" name="what" value="{{ what }}" />
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for mandatory fields -->
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation-circle"></i> Mandatory fields
<i class="fa fa-exclamation-circle"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
<!-- DESCRIPTION ALWAYS AVAILABLE -->
@@ -46,10 +45,9 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for optional fields -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
<!-- BUDGET ONLY WHEN CREATING A WITHDRAWAL -->
@@ -73,7 +71,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('create','transaction') }}

View File

@@ -5,7 +5,6 @@
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<!-- panel for mandatory fields -->
<div class="panel panel-danger">
<div class="panel-heading">
<i class="fa fa-exclamation-circle"></i> Destroy "{{ journal.description }}"

View File

@@ -8,10 +8,9 @@
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for mandatory fields -->
<div class="panel panel-primary">
<div class="panel-heading">
<i class="fa fa-exclamation-circle"></i> Mandatory fields
<i class="fa fa-exclamation-circle"></i> {{ 'mandatoryFields'|_ }}
</div>
<div class="panel-body">
<!-- ALWAYS AVAILABLE -->
@@ -48,10 +47,9 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<!-- panel for optional fields -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-smile-o"></i> Optional fields
<i class="fa fa-smile-o"></i> {{ 'optionalFields'|_ }}
</div>
<div class="panel-body">
<!-- BUDGET ONLY WHEN CREATING A WITHDRAWAL -->
@@ -76,7 +74,7 @@
<!-- panel for options -->
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bolt"></i> Options
<i class="fa fa-bolt"></i> {{ 'options'|_ }}
</div>
<div class="panel-body">
{{ ExpandedForm.optionsList('update','transaction') }}

View File

@@ -42,7 +42,7 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
Log::debug('Created new database.');
touch($original);
Artisan::call('migrate');
copy($original, $copy);
// create EUR currency
/** @var TransactionCurrency $currency */
@@ -50,8 +50,11 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
$currency->code = 'EUR';
$currency->save();
Log::debug('Created new EUR currency.');
copy($original, $copy);
} else {
if (file_exists($copy)) {
Log::debug('Copied copy back over original.');
copy($copy, $original);
}
}

View File

@@ -0,0 +1,68 @@
<?php
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Class AuthControllerTest
*/
class AuthControllerTest extends TestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
public function setUp()
{
parent::setUp();
FactoryMuffin::create('FireflyIII\User');
}
/**
* This method is called before the first test of this test class is run.
*
* @since Method available since Release 3.4.0
*/
public static function setUpBeforeClass()
{
parent::setUpBeforeClass();
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
public function tearDown()
{
parent::tearDown();
}
public function testPostRegister()
{
$data = [
'email' => 'test@example.com',
'password' => 'onetwothree',
'password_confirmation' => 'onetwothree',
'_token' => 'replaceMe'
];
$this->call('POST', '/auth/register', $data);
$this->assertResponseStatus(302);
$this->assertSessionHas('success');
}
public function testPostRegisterFails()
{
$data = [
'email' => 'test@example.com',
'password' => 'onetwothree',
'password_confirmation' => 'onetwofour',
'_token' => 'replaceMe'
];
$this->call('POST', '/auth/register', $data);
$this->assertResponseStatus(302);
}
}

View File

@@ -115,6 +115,28 @@ class TagControllerTest extends TestCase
$this->assertResponseOk();
}
public function testMultipleDeposits()
{
$tag = FactoryMuffin::create('FireflyIII\Models\Tag');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$type = FactoryMuffin::create('FireflyIII\Models\TransactionType');
for ($i = 0; $i < 3; $i++) {
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$journal->transaction_type_id = $type->id;
$journal->save();
$tag->transactionJournals()->save($journal);
}
$tag->tagMode = 'nothing';
$tag->save();
$this->be($tag->user);
$this->call('GET', '/tags/edit/' . $tag->id);
$this->assertResponseOk();
}
public function testHideTagHelp()
{

View File

@@ -1,7 +1,6 @@
<?php
use League\FactoryMuffin\Facade as FactoryMuffin;
if (!class_exists('RandomString')) {
/**
* Class RandomString
@@ -140,7 +139,9 @@ FactoryMuffin::define(
'budget_limit_id' => 'factory|FireflyIII\Models\BudgetLimit',
'startdate' => 'date',
'enddate' => 'date',
'amount' => 'integer',
'amount' => function () {
return rand(1, 100);
},
]
);
@@ -149,7 +150,9 @@ FactoryMuffin::define(
[
'budget_id' => 'factory|FireflyIII\Models\Budget',
'startdate' => 'date',
'amount' => 'integer',
'amount' => function () {
return rand(1, 100);
},
'repeats' => 'false',
'repeat_freq' => 'monthly',
@@ -170,9 +173,9 @@ FactoryMuffin::define(
'FireflyIII\Models\AccountType',
[
'type' => function () {
$types = ['Expense account', 'Revenue account', 'Asset account'];
$types = ['Expense account', 'Revenue account', 'Asset account','Cash account'];
$count = DB::table('account_types')->count();
if ($count < 3) {
if ($count < 4) {
return $types[$count];
} else {
return RandomString::generateRandomString(10);
@@ -220,7 +223,9 @@ FactoryMuffin::define(
[
'account_id' => 'factory|FireflyIII\Models\Account',
'name' => 'sentence',
'targetamount' => 'integer',
'targetamount' => function () {
return rand(1, 100);
},
'startdate' => 'date',
'targetdate' => 'date',
'reminder_skip' => 0,

View File

@@ -1,5 +1,10 @@
<?php
use Carbon\Carbon;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Budget\BudgetRepository;
use Illuminate\Pagination\LengthAwarePaginator;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:16:07.
@@ -32,14 +37,23 @@ class BudgetRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::cleanupBudgets
* @todo Implement testCleanupBudgets().
*/
public function testCleanupBudgets()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
// create some budgets:
for ($i = 0; $i < 3; $i++) {
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$limit->budget_id = $budget->id;
$limit->amount = 0;
$limit->save();
}
$this->object->cleanupBudgets();
$this->assertCount(0, BudgetLimit::get());
}
/**
@@ -48,10 +62,11 @@ class BudgetRepositoryTest extends TestCase
*/
public function testDestroy()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$this->object->destroy($budget);
$this->assertCount(0, Budget::where('id', $budget->id)->whereNull('deleted_at')->get());
}
/**
@@ -60,213 +75,311 @@ class BudgetRepositoryTest extends TestCase
*/
public function testExpensesOnDay()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$result = $this->object->expensesOnDay($budget, new Carbon);
$this->assertEquals(0, $result);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getActiveBudgets
* @todo Implement testGetActiveBudgets().
*/
public function testGetActiveBudgets()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget1->active = 1;
$budget2->active = 0;
$budget2->user_id = $budget1->user_id;
$budget1->save();
$budget2->save();
$this->be($budget1->user);
$set = $this->object->getActiveBudgets();
$this->assertCount(1, $set);
$this->assertEquals($set->first()->id, $budget1->id);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimitRepetitions
* @todo Implement testGetBudgetLimitRepetitions().
*/
public function testGetBudgetLimitRepetitions()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition');
$limit = $rep->budgetlimit;
$limit->startdate = new Carbon('2015-02-02');
$rep->startdate = new Carbon('2015-02-02');
$rep->enddate = new Carbon('2015-02-28');
$limit->save();
$rep->save();
$set = $this->object->getBudgetLimitRepetitions($rep->budgetlimit->budget, new Carbon('2015-02-01'), new Carbon('2015-02-28'));
$this->assertCount(2, $set);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgetLimits
* @todo Implement testGetBudgetLimits().
*/
public function testGetBudgetLimits()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var Budget $budget */
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$set = $this->object->getBudgetLimits($budget);
$this->assertCount(0, $set);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getBudgets
* @todo Implement testGetBudgets().
*/
public function testGetBudgets()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget1->active = 1;
$budget2->active = 0;
$budget2->user_id = $budget1->user_id;
$budget1->save();
$budget2->save();
$this->be($budget1->user);
$set = $this->object->getBudgets();
$this->assertCount(2, $set);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getCurrentRepetition
* @todo Implement testGetCurrentRepetition().
*/
public function testGetCurrentRepetition()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var Budget $budget */
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$rep = $this->object->getCurrentRepetition($budget, new Carbon);
$this->assertNull($rep);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate
* @todo Implement testGetFirstBudgetLimitDate().
*/
public function testGetFirstBudgetLimitDate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var BudgetLimit $budget */
$limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$date = $this->object->getFirstBudgetLimitDate($limit->budget);
$this->assertEquals($date->format('Y-m-d'), $limit->startdate->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getFirstBudgetLimitDate
*/
public function testGetFirstBudgetLimitDateNull()
{
/** @var Budget $budget */
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$date = $this->object->getFirstBudgetLimitDate($budget);
$ownDate = Carbon::now()->startOfYear();
$this->assertEquals($date->format('Y-m-d'), $ownDate->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getInactiveBudgets
* @todo Implement testGetInactiveBudgets().
*/
public function testGetInactiveBudgets()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget1 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget2 = FactoryMuffin::create('FireflyIII\Models\Budget');
$budget1->active = 1;
$budget2->active = 0;
$budget2->user_id = $budget1->user_id;
$budget1->save();
$budget2->save();
$this->be($budget1->user);
$set = $this->object->getInactiveBudgets();
$this->assertCount(1, $set);
$this->assertEquals($set->first()->id, $budget2->id);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getJournals
* @todo Implement testGetJournals().
*/
public function testGetJournals()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$repetition = FactoryMuffin::create('FireflyIII\Models\LimitRepetition');
$set = $this->object->getJournals($repetition->budgetlimit->budget, $repetition);
$this->assertTrue($set instanceof LengthAwarePaginator);
$this->assertCount(0, $set);
$this->assertEquals(1, $set->currentPage());
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getLastBudgetLimitDate
* @todo Implement testGetLastBudgetLimitDate().
*/
public function testGetLastBudgetLimitDate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var BudgetLimit $budget */
$limit = FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$date = $this->object->getLastBudgetLimitDate($limit->budget);
$this->assertEquals($date->format('Y-m-d'), $limit->startdate->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getLastBudgetLimitDate
*/
public function testGetLastBudgetLimitDateNull()
{
/** @var Budget $budget */
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$date = $this->object->getLastBudgetLimitDate($budget);
$ownDate = Carbon::now()->startOfYear();
$this->assertEquals($date->format('Y-m-d'), $ownDate->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getLimitAmountOnDate
* @todo Implement testGetLimitAmountOnDate().
*/
public function testGetLimitAmountOnDate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$rep = FactoryMuffin::create('FireflyIII\Models\LimitRepetition');
$amount = $this->object->getLimitAmountOnDate($rep->budgetlimit->budget, $rep->startdate);
$this->assertEquals($rep->amount, $amount);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getLimitAmountOnDate
*/
public function testGetLimitAmountOnDateNull()
{
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$amount = $this->object->getLimitAmountOnDate($budget, new Carbon);
$this->assertNull($amount);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getWithoutBudget
* @todo Implement testGetWithoutBudget().
*/
public function testGetWithoutBudget()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$this->be($user);
$set = $this->object->getWithoutBudget(new Carbon, new Carbon);
$this->assertCount(0, $set);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::getWithoutBudgetSum
* @todo Implement testGetWithoutBudgetSum().
*/
public function testGetWithoutBudgetSum()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$this->be($user);
$sum = $this->object->getWithoutBudgetSum(new Carbon, new Carbon);
$this->assertEquals(0, $sum);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::spentInMonth
* @todo Implement testSpentInMonth().
*/
public function testSpentInMonth()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$amount = $this->object->spentInMonth($budget, new Carbon);
$this->assertEquals(0, $amount);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::store
* @todo Implement testStore().
*/
public function testStore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'name' => 'new budget ' . rand(1, 100),
'user' => $user->id
];
$result = $this->object->store($data);
$this->assertTrue($result instanceof Budget);
$this->assertEquals($result->name, $data['name']);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::sumBudgetExpensesInPeriod
* @todo Implement testSumBudgetExpensesInPeriod().
*/
public function testSumBudgetExpensesInPeriod()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$result = $this->object->sumBudgetExpensesInPeriod($budget, new Carbon, new Carbon);
$this->assertEquals(0, $result);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::update
* @todo Implement testUpdate().
*/
public function testUpdate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$data = [
'name' => 'update budget ' . rand(1, 100),
'active' => true
];
$result = $this->object->update($budget, $data);
$this->assertTrue($result instanceof Budget);
$this->assertEquals($result->name, $data['name']);
$this->assertEquals($result->id, $budget->id);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount
* @todo Implement testUpdateLimitAmount().
*/
public function testUpdateLimitAmount()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$result = $this->object->updateLimitAmount($budget, new Carbon, 100);
$this->assertTrue($result instanceof BudgetLimit);
$this->assertEquals($result->amount, 100);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount
*/
public function testUpdateLimitAmountExisting()
{
$budgetLimit= FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$result = $this->object->updateLimitAmount($budgetLimit->budget, $budgetLimit->startdate, 100);
$this->assertTrue($result instanceof BudgetLimit);
$this->assertEquals($result->amount, 100);
}
/**
* @covers FireflyIII\Repositories\Budget\BudgetRepository::updateLimitAmount
*/
public function testUpdateLimitAmountZero()
{
$budgetLimit= FactoryMuffin::create('FireflyIII\Models\BudgetLimit');
$result = $this->object->updateLimitAmount($budgetLimit->budget, $budgetLimit->startdate, 0);
$this->assertTrue($result instanceof BudgetLimit);
}
}

View File

@@ -1,5 +1,8 @@
<?php
use Carbon\Carbon;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Category\CategoryRepository;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:19:32.
@@ -32,14 +35,13 @@ class CategoryRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::countJournals
* @todo Implement testCountJournals().
*/
public function testCountJournals()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$result = $this->object->countJournals($category);
$this->assertEquals(0, $result);
}
/**
@@ -48,129 +50,204 @@ class CategoryRepositoryTest extends TestCase
*/
public function testDestroy()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$this->object->destroy($category);
$count = Category::where('id', $category->id)->whereNull('deleted_at')->count();
$this->assertEquals(0, $count);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getCategories
* @todo Implement testGetCategories().
*/
public function testGetCategories()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$cat1 = FactoryMuffin::create('FireflyIII\Models\Category');
$cat2 = FactoryMuffin::create('FireflyIII\Models\Category');
$cat1->name = 'BBBBB';
$cat2->name = 'AAAAA';
$cat1->user_id = $user->id;
$cat2->user_id = $user->id;
$cat1->save();
$cat2->save();
$this->be($user);
$set = $this->object->getCategories();
$this->assertEquals('AAAAA', $set->first()->name);
$this->assertCount(2, $set);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getCategoriesAndExpenses
* @todo Implement testGetCategoriesAndExpenses().
*/
public function testGetCategoriesAndExpenses()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$type = FactoryMuffin::create('FireflyIII\Models\TransactionType');
// some journals and categories:
for ($i = 0; $i < 5; $i++) {
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$journal->user_id = $user->id;
$journal->date = new Carbon('2015-02-11');
$journal->transaction_type_id = $type->id;
$category->user_id = $user->id;
$category->transactionjournals()->save($journal);
$journal->save();
$category->save();
}
$this->be($user);
$set = $this->object->getCategoriesAndExpenses(new Carbon('2015-02-01'), new Carbon('2015-02-28'));
$this->assertCount(5, $set);
$this->assertEquals(0, $set->first()->sum);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getFirstActivityDate
* @todo Implement testGetFirstActivityDate().
*/
public function testGetFirstActivityDate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$journal->user_id = $user->id;
$journal->date = new Carbon('2015-02-11');
$category->user_id = $user->id;
$category->transactionjournals()->save($journal);
$journal->save();
$category->save();
$this->be($user);
$date = $this->object->getFirstActivityDate($category);
$this->assertEquals('2015-02-11', $date->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getFirstActivityDate
*/
public function testGetFirstActivityDateNull()
{
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$this->be($category->user);
$date = $this->object->getFirstActivityDate($category);
$this->assertEquals(Carbon::now()->format('Y-m-d'), $date->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getJournals
* @todo Implement testGetJournals().
*/
public function testGetJournals()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$this->be($category->user);
$set = $this->object->getJournals($category, 1);
$this->assertEquals(0, $set->count());
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getLatestActivity
* @todo Implement testGetLatestActivity().
*/
public function testGetLatestActivity()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$journal->user_id = $user->id;
$journal->date = new Carbon('2015-02-11');
$category->user_id = $user->id;
$category->transactionjournals()->save($journal);
$journal->save();
$category->save();
$this->be($user);
$date = $this->object->getLatestActivity($category);
$this->assertEquals('2015-02-11', $date->format('Y-m-d'));
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::getWithoutCategory
* @todo Implement testGetWithoutCategory().
*/
public function testGetWithoutCategory()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$this->be($user);
$set = $this->object->getWithoutCategory(new Carbon, new Carbon);
$this->assertCount(0, $set);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::spentInPeriodSum
* @todo Implement testSpentInPeriodSum().
*/
public function testSpentInPeriodSum()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$sum = $this->object->spentInPeriodSum($category, new Carbon, new Carbon);
$this->assertEquals(0, $sum);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::spentOnDaySum
* @todo Implement testSpentOnDaySum().
*/
public function testSpentOnDaySum()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$sum = $this->object->spentOnDaySum($category, new Carbon);
$this->assertEquals(0, $sum);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::store
* @todo Implement testStore().
*/
public function testStore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'name' => 'New category' . rand(1, 100),
'user' => $user->id
];
$newCategory = $this->object->store($data);
$this->assertEquals($data['name'], $newCategory->name);
}
/**
* @covers FireflyIII\Repositories\Category\CategoryRepository::update
* @todo Implement testUpdate().
*/
public function testUpdate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$data = [
'name' => 'New category' . rand(1, 100),
];
$newCategory = $this->object->update($category, $data);
$this->assertEquals($data['name'], $newCategory->name);
}
public function testgetLatestActivityNull()
{
/** @var Category $category */
$category = FactoryMuffin::create('FireflyIII\Models\Category');
$this->be($category->user);
$date = $this->object->getLatestActivity($category);
$this->assertNull($date);
}
}

View File

@@ -1,5 +1,6 @@
<?php
use FireflyIII\Repositories\Currency\CurrencyRepository;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:19:32.
@@ -32,61 +33,82 @@ class CurrencyRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::countJournals
* @todo Implement testCountJournals().
*/
public function testCountJournals()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$count = $this->object->countJournals($currency);
$this->assertEquals(0, $count);
}
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::get
* @todo Implement testGet().
*/
public function testGet()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$set = $this->object->get();
$this->assertCount(3, $set); // EUR is already present.
}
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::getCurrencyByPreference
* @todo Implement testGetCurrencyByPreference().
*/
public function testGetCurrencyByPreference()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$preference = FactoryMuffin::create('FireflyIII\Models\Preference');
$preference->data = $currency->code;
$preference->save();
$found = $this->object->getCurrencyByPreference($preference);
$this->assertEquals($currency->id, $found->id);
}
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::getCurrencyByPreference
*/
public function testGetCurrencyByPreferenceNull()
{
$first = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$preference = FactoryMuffin::create('FireflyIII\Models\Preference');
$preference->data = 'ABC';
$preference->save();
$found = $this->object->getCurrencyByPreference($preference);
$this->assertEquals(1, $found->id); // EUR is first and will be set.
}
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::store
* @todo Implement testStore().
*/
public function testStore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$data = [
'name' => 'Some Currency',
'code' => 'ABC',
'symbol' => 'S'
];
$currency = $this->object->store($data);
$this->assertEquals($data['name'], $currency->name);
}
/**
* @covers FireflyIII\Repositories\Currency\CurrencyRepository::update
* @todo Implement testUpdate().
*/
public function testUpdate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$data = [
'name' => 'Some Currency',
'code' => 'ABC',
'symbol' => 'S'
];
$newCurrency = $this->object->update($currency, $data);
$this->assertEquals($data['name'], $newCurrency->name);
$this->assertEquals($currency->id, $newCurrency->id);
}
}

View File

@@ -1,5 +1,10 @@
<?php
use FireflyIII\Models\Reminder;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepository;
use Illuminate\Pagination\LengthAwarePaginator;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:19:32.
@@ -32,145 +37,502 @@ class JournalRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::deactivateReminder
* @todo Implement testDeactivateReminder().
*/
public function testDeactivateReminder()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 1;
$reminder->save();
$this->be($reminder->user);
$this->object->deactivateReminder($reminder->id);
$this->assertEquals(1, Reminder::where('id', $reminder->id)->where('active', 0)->count());
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::delete
* @todo Implement testDelete().
*/
public function testDelete()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$transaction = Transaction::create(
[
'account_id' => $account->id,
'transaction_journal_id' => $journal->id,
'amount' => 100,
]
);
$this->object->delete($journal);
$this->assertEquals(0, TransactionJournal::where('id', $journal->id)->whereNull('deleted_at')->count());
$this->assertEquals(0, Transaction::where('id', $transaction->id)->whereNull('deleted_at')->count());
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::first
* @todo Implement testFirst().
*/
public function testFirst()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$this->be($journal->user);
$first = $this->object->first();
$this->assertEquals($journal->id, $first->id);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::getAmountBefore
* @todo Implement testGetAmountBefore().
*/
public function testGetAmountBefore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$transaction = FactoryMuffin::create('FireflyIII\Models\Transaction');
$before = $this->object->getAmountBefore($transaction->transactionjournal, $transaction);
$this->assertEquals(0, $before);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::getJournalsOfType
* @todo Implement testGetJournalsOfType().
*/
public function testGetJournalsOfType()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
$type = FactoryMuffin::create('FireflyIII\Models\TransactionType');
$this->be($user);
$result = $this->object->getJournalsOfType($type);
$this->assertCount(0, $result);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::getJournalsOfTypes
* @todo Implement testGetJournalsOfTypes().
*/
public function testGetJournalsOfTypes()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$user = FactoryMuffin::create('FireflyIII\User');
$this->be($user);
$types = ['Withdrawal', 'Expense'];
$set = $this->object->getJournalsOfTypes($types, 0, 1);
$this->assertTrue($set instanceof LengthAwarePaginator);
$this->assertEquals(1, $set->currentPage());
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::getTransactionType
* @todo Implement testGetTransactionType().
*/
public function testGetTransactionType()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$type = FactoryMuffin::create('FireflyIII\Models\TransactionType');
$otherType = $this->object->getTransactionType($type->type);
$this->assertEquals($type->id, $otherType->id);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::getWithDate
* @todo Implement testGetWithDate().
*/
public function testGetWithDate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$this->be($journal->user);
$found = $this->object->getWithDate($journal->id, $journal->date);
$this->assertEquals($journal->id, $found->id);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::saveTags
* @todo Implement testSaveTags().
*/
public function testSaveTags()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$tags = ['one', 'two', 'three'];
$this->be($journal->user);
$this->object->saveTags($journal, $tags);
$this->assertCount(3, $journal->tags()->get());
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @todo Implement testStore().
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
*/
public function testStore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'withdrawal',
'amount_currency_id' => $currency->id,
'account_id' => $account1->id,
'expense_account' => 'Some expense account',
'date' => '2014-01-01',
'category' => 'Some category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
*/
public function testStoreDeposit()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'deposit',
'amount_currency_id' => $currency->id,
'account_id' => $account1->id,
'revenue_account' => 'Some revenue account',
'date' => '2014-01-01',
'category' => 'Some category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
*/
public function testStoreExpenseWithCash()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'withdrawal',
'amount_currency_id' => $currency->id,
'account_id' => $account1->id,
'expense_account' => '',
'date' => '2014-01-01',
'category' => 'Some other category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
* @expectedException Symfony\Component\HttpKernel\Exception\HttpException
*/
public function testStoreInvalidFromAccount()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'transfer',
'amount_currency_id' => $currency->id,
'account_from_id' => $account1->id,
'account_to_id' => 17,
'date' => '2014-01-01',
'category' => 'Some other category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
* @expectedException Symfony\Component\HttpKernel\Exception\HttpException
*/
public function testStoreInvalidToAccount()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'transfer',
'amount_currency_id' => $currency->id,
'account_from_id' => 17,
'account_to_id' => $account1->id,
'date' => '2014-01-01',
'category' => 'Some other category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
*/
public function testStoreRevenueWithCash()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'deposit',
'amount_currency_id' => $currency->id,
'account_id' => $account1->id,
'revenue_account' => '',
'date' => '2014-01-01',
'category' => 'Some other category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::store
* @covers FireflyIII\Repositories\Journal\JournalRepository::storeAccounts
*/
public function testStoreTransfer()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$account2 = FactoryMuffin::create('FireflyIII\Models\Account');
$user = FactoryMuffin::create('FireflyIII\User');
$data = [
'description' => 'Some journal ' . rand(1, 100),
'user' => $user->id,
'what' => 'transfer',
'amount_currency_id' => $currency->id,
'account_from_id' => $account1->id,
'account_to_id' => $account2->id,
'date' => '2014-01-01',
'category' => 'Some other category',
'budget_id' => $budget->id,
'amount' => 100,
'tags' => ['one', 'two', 'three']
];
$journal = $this->object->store($data);
$this->assertEquals($data['description'], $journal->description);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::update
* @todo Implement testUpdate().
* @covers FireflyIII\Repositories\Journal\JournalRepository::updateTags
*/
public function testUpdate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$account2 = FactoryMuffin::create('FireflyIII\Models\Account');
// two transactions
Transaction::create(
[
'account_id' => $account1->id,
'transaction_journal_id' => $journal->id,
'amount' => 100,
]
);
Transaction::create(
[
'account_id' => $account1->id,
'transaction_journal_id' => $journal->id,
'amount' => -100,
]
);
$data = [
'amount_currency_id' => $currency->id,
'description' => 'New description ' . rand(1, 100),
'date' => '2015-01-01',
'category' => 'SomenewCat',
'amount' => 50,
'user' => $journal->user_id,
'budget_id' => $budget->id,
'account_from_id' => $account1->id,
'account_to_id' => $account2->id,
'revenue_account' => 'Some revenue account',
'expense_account' => 'Some expense account',
'tags' => ['a', 'b', 'c']
];
$result = $this->object->update($journal, $data);
$this->assertEquals($result->description, $data['description']);
$this->assertEquals($result->amount, 50);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::update
* @covers FireflyIII\Repositories\Journal\JournalRepository::updateTags
*/
public function testUpdateNoTags()
{
for ($i = 0; $i < 4; $i++) {
FactoryMuffin::create('FireflyIII\Models\AccountType');
}
FactoryMuffin::create('FireflyIII\Models\TransactionType');
FactoryMuffin::create('FireflyIII\Models\TransactionType');
$journal = FactoryMuffin::create('FireflyIII\Models\TransactionJournal');
$currency = FactoryMuffin::create('FireflyIII\Models\TransactionCurrency');
$budget = FactoryMuffin::create('FireflyIII\Models\Budget');
$account1 = FactoryMuffin::create('FireflyIII\Models\Account');
$account2 = FactoryMuffin::create('FireflyIII\Models\Account');
// two transactions
Transaction::create(
[
'account_id' => $account1->id,
'transaction_journal_id' => $journal->id,
'amount' => 100,
]
);
Transaction::create(
[
'account_id' => $account1->id,
'transaction_journal_id' => $journal->id,
'amount' => -100,
]
);
$data = [
'amount_currency_id' => $currency->id,
'description' => 'New description ' . rand(1, 100),
'date' => '2015-01-01',
'category' => 'SomenewCat',
'amount' => 50,
'user' => $journal->user_id,
'budget_id' => $budget->id,
'account_from_id' => $account1->id,
'account_to_id' => $account2->id,
'revenue_account' => 'Some revenue account',
'expense_account' => 'Some expense account',
'tags' => []
];
$result = $this->object->update($journal, $data);
$this->assertEquals($result->description, $data['description']);
$this->assertEquals($result->amount, 50);
}
/**
* @covers FireflyIII\Repositories\Journal\JournalRepository::updateTags
* @todo Implement testUpdateTags().
*/
public function testUpdateTags()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
}
}

View File

@@ -1,5 +1,9 @@
<?php
use Carbon\Carbon;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankRepetition;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepository;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:19:32.
@@ -32,62 +36,98 @@ class PiggyBankRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::calculateParts
* @todo Implement testCalculateParts().
*/
public function testCalculateParts()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
/** @var PiggyBankRepetition $repetition */
$repetition = FactoryMuffin::create('FireflyIII\Models\PiggyBankRepetition');
$repetition->startdate = new Carbon('2014-01-01');
$repetition->targetdate = new Carbon('2014-12-31');
$repetition->save();
$parts = $this->object->calculateParts($repetition);
$this->assertCount(1, $parts);
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::calculateParts
*/
public function testCalculatePartsWithReminder()
{
/** @var PiggyBankRepetition $repetition */
$repetition = FactoryMuffin::create('FireflyIII\Models\PiggyBankRepetition');
/** @var PiggyBank $piggyBank */
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$piggyBank->startdate = new Carbon('2014-01-01');
$piggyBank->targetdate = new Carbon('2014-12-31');
$piggyBank->remind_me = 1;
$piggyBank->reminder = 'monthly';
$repetition->startdate = new Carbon('2014-01-01');
$repetition->targetdate = new Carbon('2014-12-31');
$repetition->piggy_bank_id = $piggyBank->id;
$repetition->save();
$piggyBank->save();
$parts = $this->object->calculateParts($repetition);
$this->assertCount(12, $parts);
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::createEvent
* @todo Implement testCreateEvent().
*/
public function testCreateEvent()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$this->object->createEvent($piggyBank, 100);
$this->assertCount(1, $piggyBank->piggybankevents()->get());
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::createPiggyBankPart
* @todo Implement testCreatePiggyBankPart().
*/
public function testCreatePiggyBankPart()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$repetition = FactoryMuffin::create('FireflyIII\Models\PiggyBankRepetition');
$data = [
'repetition' => $repetition,
'amountPerBar' => 100,
'currentAmount' => 100,
'cumulativeAmount' => 100,
'startDate' => new Carbon,
'targetDate' => new Carbon,
];
$part = $this->object->createPiggyBankPart($data);
$this->assertEquals($data['amountPerBar'], $part->getAmountPerBar());
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::destroy
* @todo Implement testDestroy().
*/
public function testDestroy()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$this->object->destroy($piggyBank);
$this->assertCount(0, PiggyBank::where('id', $piggyBank->id)->whereNull('deleted_at')->get());
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::getEventSummarySet
* @todo Implement testGetEventSummarySet().
*/
public function testGetEventSummarySet()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$set = $this->object->getEventSummarySet($piggyBank);
$this->assertCount(0, $set);
}
/**
@@ -96,46 +136,51 @@ class PiggyBankRepositoryTest extends TestCase
*/
public function testGetEvents()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$set = $this->object->getEvents($piggyBank);
$this->assertCount(0, $set);
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::getPiggyBanks
* @todo Implement testGetPiggyBanks().
*/
public function testGetPiggyBanks()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$this->be($piggyBank->account->user);
$set = $this->object->getPiggyBanks();
$this->assertCount(1, $set);
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::reset
* @todo Implement testReset().
*/
public function testReset()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$piggyBank->order = 4;
$piggyBank->save();
$this->be($piggyBank->account->user);
$this->object->reset();
$this->assertCount(1, PiggyBank::where('order', 0)->get());
}
/**
* @covers FireflyIII\Repositories\PiggyBank\PiggyBankRepository::setOrder
* @todo Implement testSetOrder().
*/
public function testSetOrder()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$piggyBank->order = 4;
$this->be($piggyBank->account->user);
$piggyBank->save();
$this->object->setOrder($piggyBank->id, 3);
$newPiggy = PiggyBank::find($piggyBank->id);
$this->assertEquals(3, $newPiggy->order);
}
/**
@@ -144,10 +189,21 @@ class PiggyBankRepositoryTest extends TestCase
*/
public function testStore()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$account = FactoryMuffin::create('FireflyIII\Models\Account');
$data = [
'remind_me' => 1,
'account_id' => $account->id,
'name' => 'Some piggy',
'targetamount' => 100,
'reminder_skip' => 0,
'order' => 1,
];
$piggyBank = $this->object->store($data);
$this->assertEquals(1, $piggyBank->id);
}
/**
@@ -156,9 +212,21 @@ class PiggyBankRepositoryTest extends TestCase
*/
public function testUpdate()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$piggyBank = FactoryMuffin::create('FireflyIII\Models\PiggyBank');
$data = [
'name' => 'Update piggy ' . rand(1, 100),
'account_id' => $piggyBank->account_id,
'targetamount' => 101,
'targetdate' => new Carbon,
'reminder' => null,
'startdate' => new Carbon,
'remind_me' => '1'
];
$new = $this->object->update($piggyBank, $data);
$this->assertEquals($data['name'], $new->name);
$this->assertEquals($piggyBank->id, $new->id);
}
}

View File

@@ -1,5 +1,7 @@
<?php
use Carbon\Carbon;
use FireflyIII\Repositories\Reminder\ReminderRepository;
use League\FactoryMuffin\Facade as FactoryMuffin;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-05-05 at 19:19:32.
@@ -18,6 +20,8 @@ class ReminderRepositoryTest extends TestCase
public function setUp()
{
parent::setUp();
$helper = $this->mock('FireflyIII\Helpers\Reminders\ReminderHelperInterface');
$helper->shouldReceive('getReminderText')->andReturn('Hello!');
$this->object = new ReminderRepository;
}
@@ -33,49 +37,116 @@ class ReminderRepositoryTest extends TestCase
/**
* @covers FireflyIII\Repositories\Reminder\ReminderRepository::getActiveReminders
* @todo Implement testGetActiveReminders().
*/
public function testGetActiveReminders()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$yesterday = Carbon::now()->subDay();
$tomorrow = Carbon::now()->addDay();
$user = FactoryMuffin::create('FireflyIII\User');
for ($i = 0; $i < 3; $i++) {
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 1;
$reminder->notnow = 0;
$reminder->startdate = $yesterday;
$reminder->enddate = $tomorrow;
$reminder->user_id = $user->id;
$reminder->save();
}
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 0;
$reminder->notnow = 0;
$reminder->startdate = $yesterday;
$reminder->enddate = $tomorrow;
$reminder->user_id = $user->id;
$reminder->save();
$this->be($user);
$set = $this->object->getActiveReminders();
$this->assertCount(3, $set);
}
/**
* @covers FireflyIII\Repositories\Reminder\ReminderRepository::getDismissedReminders
* @todo Implement testGetDismissedReminders().
*/
public function testGetDismissedReminders()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
for ($i = 0; $i < 3; $i++) {
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->notnow = 1;
$reminder->user_id = $user->id;
$reminder->save();
}
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->notnow = 0;
$reminder->user_id = $user->id;
$reminder->save();
$this->be($user);
$set = $this->object->getDismissedReminders();
$this->assertCount(3, $set);
}
/**
* @covers FireflyIII\Repositories\Reminder\ReminderRepository::getExpiredReminders
* @todo Implement testGetExpiredReminders().
*/
public function testGetExpiredReminders()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$yesterday = Carbon::now()->subDay();
$tomorrow = Carbon::now()->addDay();
$user = FactoryMuffin::create('FireflyIII\User');
for ($i = 0; $i < 3; $i++) {
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 1;
$reminder->notnow = 0;
$reminder->startdate = $tomorrow;
$reminder->enddate = $yesterday;
$reminder->user_id = $user->id;
$reminder->save();
}
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 0;
$reminder->notnow = 0;
$reminder->startdate = $tomorrow;
$reminder->enddate = $yesterday;
$reminder->user_id = $user->id;
$reminder->save();
$this->be($user);
$set = $this->object->getExpiredReminders();
$this->assertCount(3, $set);
}
/**
* @covers FireflyIII\Repositories\Reminder\ReminderRepository::getInactiveReminders
* @todo Implement testGetInactiveReminders().
*/
public function testGetInactiveReminders()
{
// Remove the following lines when you implement this test.
$this->markTestIncomplete(
'This test has not been implemented yet.'
);
$user = FactoryMuffin::create('FireflyIII\User');
for ($i = 0; $i < 3; $i++) {
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 0;
$reminder->user_id = $user->id;
$reminder->save();
}
$reminder = FactoryMuffin::create('FireflyIII\Models\Reminder');
$reminder->active = 1;
$reminder->user_id = $user->id;
$reminder->save();
$this->be($user);
$set = $this->object->getInactiveReminders();
$this->assertCount(3, $set);
}
}

Some files were not shown because too many files have changed in this diff Show More