Skip to content

Commit

Permalink
Added some fixture from French banks.
Browse files Browse the repository at this point in the history
  • Loading branch information
ambroisemaupate committed Jul 20, 2016
1 parent 1ef11ba commit cb60356
Show file tree
Hide file tree
Showing 7 changed files with 539 additions and 18 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.idea
.DS_Store
vendor
vendor
composer.lock
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"require": {
"php": ">=5.4"
},
"require-dev": {
"phpunit/phpunit": "~4.1.3"
},
"autoload": {
"psr-0": { "OfxParser": "lib/" }
}
Expand Down
6 changes: 3 additions & 3 deletions tests/OfxParser/OfxTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class OfxTest extends \PHPUnit_Framework_TestCase

public function setUp()
{
$ofxFile = 'fixtures/ofxdata-xml.ofx';
$ofxFile = dirname(__DIR__).'/fixtures/ofxdata-xml.ofx';

if (!file_exists($ofxFile))
{
Expand All @@ -21,7 +21,7 @@ public function setUp()

public function testAcceptOnlySimpleXMLElement()
{
$this->setExpectedException('\Exception');
$this->setExpectedException('\TypeError');
new Ofx('This is not an SimpleXMLObject');
}

Expand Down Expand Up @@ -68,7 +68,7 @@ public function testBuildsSignOn()

public function testBuildsMultipleBankAccounts()
{
$multiOfxFile = 'fixtures/ofx-multiple-accounts-xml.ofx';
$multiOfxFile = dirname(__DIR__).'/fixtures/ofx-multiple-accounts-xml.ofx';
if (!file_exists($multiOfxFile))
{
$this->markTestSkipped('Could not find multiple account data file, cannot fully test Multiple Bank Accounts');
Expand Down
40 changes: 26 additions & 14 deletions tests/OfxParser/ParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,6 @@

class ParserTest extends \PHPUnit_Framework_TestCase
{
protected $ofxdata;

public function setUp()
{
$this->ofxdata = 'fixtures/ofxdata.ofx';
}

public function testXmlLoadStringThrowsExceptionWithInvalidXml()
{
$invalidXml = '<invalid xml>';
Expand Down Expand Up @@ -93,29 +86,48 @@ public function testLoadFromFileWhenFileDoesNotExist()
$parser->loadFromFile('a non-existent file');
}

public function testLoadFromFileWhenFileDoesExist()
/**
* @dataProvider testLoadFromStringProvider
*/
public function testLoadFromFileWhenFileDoesExist($filename)
{
if (!file_exists($this->ofxdata))
if (!file_exists($filename))
{
$this->markTestSkipped('Could not find data file, cannot test loadFromFile method fully');
}

$parser = $this->getMock('\OfxParser\Parser', ['loadFromString']);
$parser->expects($this->once())->method('loadFromString');
$parser->loadFromFile($this->ofxdata);
$parser->loadFromFile($filename);
}

public function testLoadFromString()
/**
* @return array
*/
public function testLoadFromStringProvider()
{
return [
[dirname(__DIR__).'/fixtures/ofxdata.ofx'],
[dirname(__DIR__).'/fixtures/ofxdata-oneline.ofx'],
[dirname(__DIR__).'/fixtures/ofxdata-cmfr.ofx'],
[dirname(__DIR__).'/fixtures/ofxdata-bpbfc.ofx'],
];
}

/**
* @param $filename
* @dataProvider testLoadFromStringProvider
*/
public function testLoadFromString($filename)
{
if (!file_exists($this->ofxdata))
if (!file_exists($filename))
{
$this->markTestSkipped('Could not find data file, cannot test loadFromString method fully');
}

$content = file_get_contents($this->ofxdata);
$content = file_get_contents($filename);

$parser = new Parser();
$parser->loadFromString($content);
}

}
107 changes: 107 additions & 0 deletions tests/fixtures/ofxdata-bpbfc.ofx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<DTSERVER>20160720060656
<LANGUAGE>FRA
<DTPROFUP>20160720060656
<DTACCTUP>20160720060656
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>XXXXXXXXXXX
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<STMTRS>
<CURDEF>EUR
<BANKACCTFROM>
<BANKID>XXXXX</BANKID>
<BRANCHID>XXXXX</BRANCHID>
<ACCTID>XXXXXXXXXXX</ACCTID>
<ACCTTYPE>CHECKING</ACCTTYPE>
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20160421
<DTEND>20160430
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160429
<TRNAMT>-13.50
<FITID>201600400034BD27
<CHECKNUM>5IIWR0X
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160428
<TRNAMT>-6.00
<FITID>201600400033BD27
<CHECKNUM>5GVDFOZ
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160427
<TRNAMT>-8.50
<FITID>201600400032BD27
<CHECKNUM>5F7TWZ9
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160426
<TRNAMT>-5.50
<FITID>201600400031BD27
<CHECKNUM>5DKAKG4
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160422
<TRNAMT>-10.00
<FITID>201600400030BD27
<CHECKNUM>56Y5FVZ
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20160422
<TRNAMT>-9.99
<FITID>201600400029BD27
<CHECKNUM>56YPG4O
<NAME>OPERATION NAME DISCLOSED
<MEMO>OPERATION MEMO DISCLOSED
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>10000.00
<DTASOF>20160720
</LEDGERBAL>
<AVAILBAL>
<BALAMT>10000.00
<DTASOF>20160720
</AVAILBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>
Loading

0 comments on commit cb60356

Please sign in to comment.