. */ 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 extends TestCase { /** @var MetadataParser */ private $metadataParser; /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', \get_class($this))); $this->metadataParser = new MetadataParser(); } public function testDescriptionIsCorrectlyExtractedFromBeginning() { $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() { $transaction = $this->createTransactionWithDescription1('EREF+AbcCRED+DE123SVWZ+Description'); $this->assertEquals('Description', $this->metadataParser->getDescription($transaction)); } private function createTransactionWithDescription1(string $description1) { $transaction = $this->mock(FinTSTransaction::class); $transaction->shouldReceive('getDescription1')->atLeast()->once()->andReturn($description1); return $transaction; } }