diff --git a/pom.xml b/pom.xml
index 91b324a..80f230a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
cz.geek
fio-java
- 0.1.1-SNAPSHOT
+ 0.1.2-SNAPSHOT
${project.artifactId}
Fio Bank Java Client
@@ -29,10 +29,13 @@
Martin Caslavsky
+
+ Jaromir Sima
+
- 1.7
+ 1.8
UTF-8
UTF-8
4.3.3
diff --git a/src/main/java/cz/geek/fio/FioConversionService.java b/src/main/java/cz/geek/fio/FioConversionService.java
index f43b00f..2cd87b8 100644
--- a/src/main/java/cz/geek/fio/FioConversionService.java
+++ b/src/main/java/cz/geek/fio/FioConversionService.java
@@ -106,6 +106,17 @@ public List convert(final TransactionList source) {
if (transaction.getColumn25() != null) {
target.setKomentar(transaction.getColumn25().getValue());
}
+ if (transaction.getColumn5() != null) {
+ target.setVariabilniSymbol(transaction.getColumn5().getValue());
+ }
+ if (transaction.getColumn4() != null) {
+ target.setKonstantniSymbol(transaction.getColumn4().getValue());
+ }
+ if (transaction.getColumn6() != null) {
+ target.setSpecifickySymbol(transaction.getColumn6().getValue());
+ }
+
+
transactions.add(target);
}
return transactions;
diff --git a/src/main/java/cz/geek/fio/FioTransaction.java b/src/main/java/cz/geek/fio/FioTransaction.java
index 2d1eab9..3d77d1e 100644
--- a/src/main/java/cz/geek/fio/FioTransaction.java
+++ b/src/main/java/cz/geek/fio/FioTransaction.java
@@ -20,6 +20,9 @@ public class FioTransaction {
private String provedl;
private String komentar;
private long idPokynu;
+ private String variabilniSymbol;
+ private String konstantniSymbol;
+ private String specifickySymbol;
public String getIdPohybu() {
return idPohybu;
@@ -117,4 +120,30 @@ void setIdPokynu(final long idPokynu) {
this.idPokynu = idPokynu;
}
+ public String getVariabilniSymbol() {
+ return variabilniSymbol;
+ }
+
+ public void setVariabilniSymbol(String variabilniSymbol) {
+ this.variabilniSymbol = variabilniSymbol;
+ }
+
+
+ public String getKonstantniSymbol() {
+ return konstantniSymbol;
+ }
+
+ public void setKonstantniSymbol(String konstantniSymbol) {
+ this.konstantniSymbol = konstantniSymbol;
+ }
+
+ public String getSpecifickySymbol() {
+ return specifickySymbol;
+ }
+
+ public void setSpecifickySymbol(String specifickySymbol) {
+ this.specifickySymbol = specifickySymbol;
+ }
+
+
}
diff --git a/src/test/java/cz/geek/fio/FioConversionServiceTest.java b/src/test/java/cz/geek/fio/FioConversionServiceTest.java
index c8665eb..7092e24 100644
--- a/src/test/java/cz/geek/fio/FioConversionServiceTest.java
+++ b/src/test/java/cz/geek/fio/FioConversionServiceTest.java
@@ -1,7 +1,14 @@
package cz.geek.fio;
+import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
+import org.joda.time.LocalDate;
import org.testng.annotations.Test;
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.List;
+
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import static org.testng.Assert.*;
@@ -20,16 +27,123 @@ public void shouldConvert() throws Exception {
final Info info = new Info();
info.setAccountId("account");
info.setBankId("bank");
+ info.setBic("bic");
+ info.setClosingBalance(BigDecimal.TEN);
+ info.setCurrency("czk");
+ info.setDateEnd(this.getGregorianCalendar(2017));
+ info.setDateStart(this.getGregorianCalendar(2016));
+ info.setIban("iban");
+ info.setIdFrom(BigInteger.ONE);
+ info.setIdLastDownload(BigInteger.ZERO);
+ info.setIdList(new BigInteger("11"));
+ info.setIdTo(new BigInteger("12"));
+ info.setOpeningBalance(new BigDecimal("9"));
+ info.setYearList(BigInteger.ZERO);
final AccountStatement source = new AccountStatement();
source.setInfo(info);
+ final TransactionList transactionList = new TransactionList();
+ transactionList.getTransaction().add( this.getTransaction("999", "888", "777") );
+ source.setTransactionList(transactionList);
final FioAccountStatement target = service.convert(source, FioAccountStatement.class);
- assertThat(target, is(notNullValue()));
+ assertNotNull(target);
+
+ assertNotNull(target.getInfo());
+ assertEquals(target.getInfo().getAccountId(), info.getAccountId());
+ assertEquals(target.getInfo().getBankId(), info.getBankId());
+ assertEquals(target.getInfo().getBic(), info.getBic());
+ assertEquals(target.getInfo().getCurrency(), info.getCurrency());
+ assertEquals(target.getInfo().getIban(), info.getIban());
+ assertEquals(target.getInfo().getClosingBalance(), info.getClosingBalance());
+ assertEquals(target.getInfo().getCurrency(), info.getCurrency());
+ assertEquals(target.getInfo().getDateEnd(), new LocalDate(2017,1,1));
+ assertEquals(target.getInfo().getDateStart(), new LocalDate(2016,1,1));
+ assertEquals(target.getInfo().getIdFrom(), info.getIdFrom());
+ assertEquals(target.getInfo().getIdLastDownload(), info.getIdLastDownload());
+ assertEquals(target.getInfo().getIdList(), info.getIdList());
+ assertEquals(target.getInfo().getIdTo(), info.getIdTo());
+ assertEquals(target.getInfo().getOpeningBalance(), info.getOpeningBalance());
+ assertEquals(target.getInfo().getYearList(), info.getYearList());
+
+ assertNotNull(target.getTransactions());
+ assertEquals(target.getTransactions().size(), 1);
+
+ FioTransaction tr = target.getTransactions().get(0);
+ assertEquals(tr.getIdPohybu(), "22");
+ assertEquals(tr.getDatum(), new LocalDate(2000,1,1));
+ assertEquals(tr.getObjem(), BigDecimal.ONE);
+ assertEquals(tr.getTyp(), "8");
+ assertEquals(tr.getMena(), "14");
+ assertEquals(tr.getVariabilniSymbol(), "999");
+ assertEquals(tr.getSpecifickySymbol(), "888");
+ assertEquals(tr.getKonstantniSymbol(), "777");
+ }
+
+ private XMLGregorianCalendar getGregorianCalendar(int year){
+ XMLGregorianCalendar cal = new XMLGregorianCalendarImpl();
+ cal.setYear(year);
+ cal.setMonth(1);
+ cal.setDay(1);
+ return cal;
+ }
+
+
+ private Transaction getTransaction(String vs, String ss, String ks){
+
+ final Transaction transaction = new Transaction();
+
+ final Column22 c = new Column22();
+ c.setId(BigInteger.ONE);
+ c.setName("column_22");
+ c.setValue("22");
+ transaction.setColumn22(c);
+
+ final Column0 c0 = new Column0();
+ c0.setId(BigInteger.ONE);
+ c0.setName("column_0");
+ c0.setValue(this.getGregorianCalendar(2000));
+ transaction.setColumn0(c0);
+
+ final Column1 c1 = new Column1();
+ c1.setId(BigInteger.ONE);
+ c1.setName("column_1");
+ c1.setValue(BigDecimal.ONE);
+ transaction.setColumn1(c1);
+
+ final Column8 c8 = new Column8();
+ c8.setId(BigInteger.ONE);
+ c8.setName("column_8");
+ c8.setValue("8");
+ transaction.setColumn8(c8);
+
+ final Column14 c14 = new Column14();
+ c14.setId(BigInteger.ONE);
+ c14.setName("column_14");
+ c14.setValue("14");
+ transaction.setColumn14(c14);
+
+
+ final Column5 vsCol = new Column5();
+ vsCol.setId(BigInteger.ONE);
+ vsCol.setName("column_5");
+ vsCol.setValue(vs);
+ transaction.setColumn5(vsCol);
+
+ final Column4 ksCol = new Column4();
+ ksCol.setId(BigInteger.ONE);
+ ksCol.setName("column_4");
+ ksCol.setValue(ks);
+ transaction.setColumn4(ksCol);
+
+ final Column6 ssCol = new Column6();
+ ssCol.setId(BigInteger.ONE);
+ ssCol.setName("column_6");
+ ssCol.setValue(ss);
+ transaction.setColumn6(ssCol);
+
+ return transaction;
- assertThat(target.getInfo(), is(notNullValue()));
- assertThat(target.getInfo().getAccountId(), is(info.getAccountId()));
- assertThat(target.getInfo().getBankId(), is(info.getBankId()));
}
}
\ No newline at end of file
diff --git a/src/test/java/cz/geek/fio/FioExtractorTest.java b/src/test/java/cz/geek/fio/FioExtractorTest.java
index af93ff8..d5363df 100644
--- a/src/test/java/cz/geek/fio/FioExtractorTest.java
+++ b/src/test/java/cz/geek/fio/FioExtractorTest.java
@@ -33,6 +33,9 @@ public void shouldName() throws Exception {
final FioTransaction transaction = statement.getTransactions().iterator().next();
assertThat(transaction.getIdPohybu(), is("1147301403"));
assertThat(transaction.getDatum(), is(new LocalDate(2012, 6, 30)));
+ assertEquals(transaction.getVariabilniSymbol(), "9998887770");
+ assertEquals(transaction.getSpecifickySymbol(), "666555444");
+ assertEquals(transaction.getKonstantniSymbol(), "0111");
}
static class FakeClientHttpResponse extends AbstractClientHttpResponse {
diff --git a/src/test/resources/transactions-id.xml b/src/test/resources/transactions-id.xml
index cd701b7..24d9c63 100644
--- a/src/test/resources/transactions-id.xml
+++ b/src/test/resources/transactions-id.xml
@@ -18,6 +18,11 @@
CZK
Připsaný úrok
2099310186
+
+ 0111
+ 9998887770
+ 666555444
+
1147301404