From 962324c3f73561b313f42f2863000cb5c7134c42 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 28 Dec 2017 20:06:16 +0100 Subject: [PATCH] Expand test coverage. --- .../Import/Converter/AmountCreditTest.php | 170 ++++++++++++++++++ .../Unit/Import/Converter/AmountDebitTest.php | 170 ++++++++++++++++++ .../Import/Converter/INGDebitCreditTest.php | 63 +++++++ 3 files changed, 403 insertions(+) create mode 100644 tests/Unit/Import/Converter/AmountCreditTest.php create mode 100644 tests/Unit/Import/Converter/AmountDebitTest.php create mode 100644 tests/Unit/Import/Converter/INGDebitCreditTest.php diff --git a/tests/Unit/Import/Converter/AmountCreditTest.php b/tests/Unit/Import/Converter/AmountCreditTest.php new file mode 100644 index 0000000000..2e4bbd888f --- /dev/null +++ b/tests/Unit/Import/Converter/AmountCreditTest.php @@ -0,0 +1,170 @@ +. + */ +declare(strict_types=1); + +namespace Tests\Unit\Import\Converter; + +use FireflyIII\Import\Converter\AmountCredit; +use Tests\TestCase; + +/** + * Class AmountCreditTest + */ +class AmountCreditTest extends TestCase +{ + /** + * @covers \FireflyIII\Import\Converter\AmountCredit::convert() + */ + public function testConvert() + { + $values = [ + '0' => '0', + '0.0' => '0', + '0.1' => '0.1', + '.2' => '0.2', + '0.01' => '0.01', + '1' => '1', + '1.0' => '1', + '1.1' => '1.1', + '1.12' => '1.12', + '1.10' => '1.1', + '12' => '12', + '12.3' => '12.3', + '12.34' => '12.34', + '123' => '123', + '123.4' => '123.4', + '123.45' => '123.45', + '1234' => '1234', + '1234.5' => '1234.5', + '1234.56' => '1234.56', + '1 234' => '1234', + '1 234.5' => '1234.5', + '1 234.56' => '1234.56', + '1,234' => '1234', + '1,234.5' => '1234.5', + '1,234.56' => '1234.56', + '123,456,789' => '123456789', + '0,0' => '0', + '0,1' => '0.1', + ',2' => '0.2', + '0,01' => '0.01', + '1,0' => '1', + '1,1' => '1.1', + '1,12' => '1.12', + '1,10' => '1.1', + '12,3' => '12.3', + '12,34' => '12.34', + '123,4' => '123.4', + '123,45' => '123.45', + '1234,5' => '1234.5', + '1234,56' => '1234.56', + '1 234,5' => '1234.5', + '1 234,56' => '1234.56', + '1.234' => '1.234', // will no longer match as 1234, but as 1.234 + '1.234,5' => '1234.5', + '1.234,56' => '1234.56', + // many decimals + '2.00' => '2', + '3.000' => '3', + '4.0000' => '4', + '5.000' => '5', + '6.0000' => '6', + '7.200' => '7.2', + '8.2000' => '8.2', + '9.330' => '9.33', + '10.3300' => '10.33', + '11.444' => '11.444', + '12.4440' => '12.444', + '13.5555' => '13.5555', + '14.45678' => '14.45678', + '15.456789' => '15.456789', + '16.4567898' => '16.4567898', + '17.34567898' => '17.34567898', + '18.134567898' => '18.134567898', + '19.1634567898' => '19.1634567898', + '20.16334567898' => '20.16334567898', + '21.16364567898' => '21.16364567898', + '22.163644567898' => '22.163644567898', + // many decimals, mixed, large numbers + '63522.00' => '63522', + '63523.000' => '63523', + '63524.0000' => '63524', + '63525.000' => '63525', + '63526.0000' => '63526', + '63527.200' => '63527.2', + '63528.2000' => '63528.2', + '63529.330' => '63529.33', + '635210.3300' => '635210.33', + '635211.444' => '635211.444', + '635212.4440' => '635212.444', + '635213.5555' => '635213.5555', + '635214.45678' => '635214.45678', + '635215.456789' => '635215.456789', + '635216.4567898' => '635216.4567898', + '635217.34567898' => '635217.34567898', + '635218.134567898' => '635218.134567898', + '635219.1634567898' => '635219.1634567898', + '635220.16334567898' => '635220.16334567898', + '635221.16364567898' => '635221.16364567898', + '635222.163644567898' => '635222.163644567898', + // many decimals, mixed, also mixed thousands separators + '63 522.00' => '63522', + '63 523.000' => '63523', + '63,524.0000' => '63524', + '63 525.000' => '63525', + '63,526.0000' => '63526', + '63 527.200' => '63527.2', + '63 528.2000' => '63528.2', + '63 529.330' => '63529.33', + '63,5210.3300' => '635210.33', + '63,5211.444' => '635211.444', + '63 5212.4440' => '635212.444', + '163 5219.1634567898' => '1635219.1634567898', + '444 163 5219.1634567898' => '4441635219.1634567898', + '-0.34918323' => '0.34918323', + '0.208' => '0.208', + '-0.15' => '0.15', + '-0.03881677' => '0.03881677', + '0.33' => '0.33', + '-0.1' => '0.1', + '0.01124' => '0.01124', + '-0.01124' => '0.01124', + '0.115' => '0.115', + '-0.115' => '0.115', + '1.33' => '1.33', + ]; + foreach ($values as $value => $expected) { + $converter = new AmountCredit; + $result = $converter->convert($value); + $this->assertEquals($expected, $result, sprintf('The original value was %s', $value)); + } + } + + /** + * @covers \FireflyIII\Import\Converter\AmountCredit::convert() + */ + public function testConvertNull() + { + $converter = new AmountCredit; + $result = $converter->convert(null); + $this->assertEquals('0', $result); + } +} diff --git a/tests/Unit/Import/Converter/AmountDebitTest.php b/tests/Unit/Import/Converter/AmountDebitTest.php new file mode 100644 index 0000000000..702b9f0992 --- /dev/null +++ b/tests/Unit/Import/Converter/AmountDebitTest.php @@ -0,0 +1,170 @@ +. + */ +declare(strict_types=1); + +namespace Tests\Unit\Import\Converter; + +use FireflyIII\Import\Converter\AmountDebit; +use Tests\TestCase; + +/** + * Class AmountDebitTest + */ +class AmountDebitTest extends TestCase +{ + /** + * @covers \FireflyIII\Import\Converter\AmountDebit::convert() + */ + public function testConvert() + { + $values = [ + '0' => '0', + '0.0' => '0', + '0.1' => '-0.1', + '.2' => '-0.2', + '0.01' => '-0.01', + '1' => '-1', + '1.0' => '-1', + '1.1' => '-1.1', + '1.12' => '-1.12', + '1.10' => '-1.1', + '12' => '-12', + '12.3' => '-12.3', + '12.34' => '-12.34', + '123' => '-123', + '123.4' => '-123.4', + '123.45' => '-123.45', + '1234' => '-1234', + '1234.5' => '-1234.5', + '1234.56' => '-1234.56', + '1 234' => '-1234', + '1 234.5' => '-1234.5', + '1 234.56' => '-1234.56', + '1,234' => '-1234', + '1,234.5' => '-1234.5', + '1,234.56' => '-1234.56', + '123,456,789' => '-123456789', + '0,0' => '0', + '0,1' => '-0.1', + ',2' => '-0.2', + '0,01' => '-0.01', + '1,0' => '-1', + '1,1' => '-1.1', + '1,12' => '-1.12', + '1,10' => '-1.1', + '12,3' => '-12.3', + '12,34' => '-12.34', + '123,4' => '-123.4', + '123,45' => '-123.45', + '1234,5' => '-1234.5', + '1234,56' => '-1234.56', + '1 234,5' => '-1234.5', + '1 234,56' => '-1234.56', + '1.234' => '-1.234', // will no longer match as 1234, but as 1.234 + '1.234,5' => '-1234.5', + '1.234,56' => '-1234.56', + // many decimals + '2.00' => '-2', + '3.000' => '-3', + '4.0000' => '-4', + '5.000' => '-5', + '6.0000' => '-6', + '7.200' => '-7.2', + '8.2000' => '-8.2', + '9.330' => '-9.33', + '10.3300' => '-10.33', + '11.444' => '-11.444', + '12.4440' => '-12.444', + '13.5555' => '-13.5555', + '14.45678' => '-14.45678', + '15.456789' => '-15.456789', + '16.4567898' => '-16.4567898', + '17.34567898' => '-17.34567898', + '18.134567898' => '-18.134567898', + '19.1634567898' => '-19.1634567898', + '20.16334567898' => '-20.16334567898', + '21.16364567898' => '-21.16364567898', + '22.163644567898' => '-22.163644567898', + // many decimals, mixed, large numbers + '63522.00' => '-63522', + '63523.000' => '-63523', + '63524.0000' => '-63524', + '63525.000' => '-63525', + '63526.0000' => '-63526', + '63527.200' => '-63527.2', + '63528.2000' => '-63528.2', + '63529.330' => '-63529.33', + '635210.3300' => '-635210.33', + '635211.444' => '-635211.444', + '635212.4440' => '-635212.444', + '635213.5555' => '-635213.5555', + '635214.45678' => '-635214.45678', + '635215.456789' => '-635215.456789', + '635216.4567898' => '-635216.4567898', + '635217.34567898' => '-635217.34567898', + '635218.134567898' => '-635218.134567898', + '635219.1634567898' => '-635219.1634567898', + '635220.16334567898' => '-635220.16334567898', + '635221.16364567898' => '-635221.16364567898', + '635222.163644567898' => '-635222.163644567898', + // many decimals, mixed, also mixed thousands separators + '63 522.00' => '-63522', + '63 523.000' => '-63523', + '63,524.0000' => '-63524', + '63 525.000' => '-63525', + '63,526.0000' => '-63526', + '63 527.200' => '-63527.2', + '63 528.2000' => '-63528.2', + '63 529.330' => '-63529.33', + '63,5210.3300' => '-635210.33', + '63,5211.444' => '-635211.444', + '63 5212.4440' => '-635212.444', + '163 5219.1634567898' => '-1635219.1634567898', + '444 163 5219.1634567898' => '-4441635219.1634567898', + '-0.34918323' => '-0.34918323', + '0.208' => '-0.208', + '-0.15' => '-0.15', + '-0.03881677' => '-0.03881677', + '0.33' => '-0.33', + '-0.1' => '-0.1', + '0.01124' => '-0.01124', + '-0.01124' => '-0.01124', + '0.115' => '-0.115', + '-0.115' => '-0.115', + '1.33' => '-1.33', + ]; + foreach ($values as $value => $expected) { + $converter = new AmountDebit; + $result = $converter->convert($value); + $this->assertEquals($expected, $result, sprintf('The original value was %s', $value)); + } + } + + /** + * @covers \FireflyIII\Import\Converter\AmountDebit::convert() + */ + public function testConvertNull() + { + $converter = new AmountDebit; + $result = $converter->convert(null); + $this->assertEquals('0', $result); + } +} diff --git a/tests/Unit/Import/Converter/INGDebitCreditTest.php b/tests/Unit/Import/Converter/INGDebitCreditTest.php new file mode 100644 index 0000000000..d24e1da395 --- /dev/null +++ b/tests/Unit/Import/Converter/INGDebitCreditTest.php @@ -0,0 +1,63 @@ +. + */ + +declare(strict_types=1); + +namespace Tests\Unit\Import\Converter; + +use FireflyIII\Import\Converter\INGDebitCredit; +use Tests\TestCase; + +/** + * Class INGDebitCreditTest + */ +class INGDebitCreditTest extends TestCase +{ + /** + * @covers \FireflyIII\Import\Converter\INGDebitCredit::convert() + */ + public function testConvertAf() + { + $converter = new INGDebitCredit; + $result = $converter->convert('Af'); + $this->assertEquals(-1, $result); + } + + /** + * @covers \FireflyIII\Import\Converter\INGDebitCredit::convert() + */ + public function testConvertBij() + { + $converter = new INGDebitCredit; + $result = $converter->convert('Bij'); + $this->assertEquals(1, $result); + } + + /** + * @covers \FireflyIII\Import\Converter\INGDebitCredit::convert() + */ + public function testConvertAnything() + { + $converter = new INGDebitCredit; + $result = $converter->convert('9083jkdkj'); + $this->assertEquals(1, $result); + } +} \ No newline at end of file