From 742e03944d57dc30643543f5b8c7e789fa6e3902 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 21 Oct 2018 11:08:36 +0200 Subject: [PATCH] Small textual changes for #1159 --- app/Support/FinTS/MetadataParser.php | 16 +++++++- .../Unit/Support/FinTS/MetadataParserTest.php | 38 ++++++++++++++----- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/app/Support/FinTS/MetadataParser.php b/app/Support/FinTS/MetadataParser.php index 37d8debc22..73f17405a2 100644 --- a/app/Support/FinTS/MetadataParser.php +++ b/app/Support/FinTS/MetadataParser.php @@ -21,17 +21,29 @@ declare(strict_types=1); namespace FireflyIII\Support\FinTS; + use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction; +/** + * + * Class MetadataParser + */ class MetadataParser { - function getDescription(FinTSTransaction $transaction) + /** + * @param FinTSTransaction $transaction + * + * @return string + */ + public function getDescription(FinTSTransaction $transaction): string { //Given a description like 'EREF+AbcCRED+DE123SVWZ+DefABWA+Ghi' or 'EREF+AbcCRED+DE123SVWZ+Def' return 'Def' $finTSDescription = $transaction->getDescription1(); - if (preg_match('/SVWZ\+([^\+]*)([A-Z]{4}\+|$)/', $finTSDescription, $matches) === 1) { + $matches = []; + if (1 === preg_match('/SVWZ\+([^\+]*)([A-Z]{4}\+|$)/', $finTSDescription, $matches)) { return $matches[1]; } + return $finTSDescription; } } \ No newline at end of file diff --git a/tests/Unit/Support/FinTS/MetadataParserTest.php b/tests/Unit/Support/FinTS/MetadataParserTest.php index d986b724e4..f656074150 100644 --- a/tests/Unit/Support/FinTS/MetadataParserTest.php +++ b/tests/Unit/Support/FinTS/MetadataParserTest.php @@ -23,11 +23,14 @@ declare(strict_types=1); namespace Tests\Unit\Support\FinTS; use Fhp\Model\StatementOfAccount\Transaction as FinTSTransaction; - use FireflyIII\Support\FinTS\MetadataParser; use Illuminate\Support\Facades\Log; use Tests\TestCase; +/** + * + * Class MetadataParserTest + */ class MetadataParserTest extends TestCase { @@ -44,28 +47,43 @@ class MetadataParserTest extends TestCase $this->metadataParser = new MetadataParser(); } - public function testDescriptionIsCorrectlyExtractedFromBeginning() + /** + * @covers \FireflyIII\Support\FinTS\MetadataParser + */ + public function testDescriptionIsCorrectlyExtractedFromBeginning(): void { $transaction = $this->createTransactionWithDescription1('SVWZ+DescriptionABWA+xxx'); $this->assertEquals('Description', $this->metadataParser->getDescription($transaction)); } - public function testDescriptionIsCorrectlyExtractedFromMiddle() - { - $transaction = $this->createTransactionWithDescription1('EREF+AbcCRED+DE123SVWZ+DescriptionABWA+Ghi'); - $this->assertEquals('Description', $this->metadataParser->getDescription($transaction)); - } - - public function testDescriptionIsCorrectlyExtractedFromEnd() + /** + * @covers \FireflyIII\Support\FinTS\MetadataParser + */ + public function testDescriptionIsCorrectlyExtractedFromEnd(): void { $transaction = $this->createTransactionWithDescription1('EREF+AbcCRED+DE123SVWZ+Description'); $this->assertEquals('Description', $this->metadataParser->getDescription($transaction)); } - private function createTransactionWithDescription1(string $description1) + /** + * @covers \FireflyIII\Support\FinTS\MetadataParser + */ + public function testDescriptionIsCorrectlyExtractedFromMiddle(): void + { + $transaction = $this->createTransactionWithDescription1('EREF+AbcCRED+DE123SVWZ+DescriptionABWA+Ghi'); + $this->assertEquals('Description', $this->metadataParser->getDescription($transaction)); + } + + /** + * @param string $description1 + * + * @return FinTSTransaction + */ + private function createTransactionWithDescription1(string $description1): FinTSTransaction { $transaction = $this->mock(FinTSTransaction::class); $transaction->shouldReceive('getDescription1')->atLeast()->once()->andReturn($description1); + return $transaction; } }