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