You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2013/04/30 10:43:14 UTC
svn commit: r1477508 - in /camel/trunk/components/camel-bindy/src:
main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
Author: cmoulliard
Date: Tue Apr 30 08:43:14 2013
New Revision: 1477508
URL: http://svn.apache.org/r1477508
Log:
CAMEL-6323 : Add a new unit test for FixedLengthFormat with @Link class, replace LinkedHashMap with TreeMap to solve ordering issue
Modified:
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java?rev=1477508&r1=1477507&r2=1477508&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java Tue Apr 30 08:43:14 2013
@@ -21,7 +21,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -34,7 +33,6 @@ import org.apache.camel.dataformat.bindy
import org.apache.camel.dataformat.bindy.format.FormatException;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.spi.PackageScanFilter;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,8 +48,10 @@ public class BindyFixedLengthFactory ext
boolean isOneToMany;
- private Map<Integer, DataField> dataFields = new LinkedHashMap<Integer, DataField>();
- private Map<Integer, Field> annotatedFields = new LinkedHashMap<Integer, Field>();
+ //private Map<Integer, DataField> dataFields = new LinkedHashMap<Integer, DataField>();
+ private Map<Integer, DataField> dataFields = new TreeMap<Integer, DataField>();
+ //private Map<Integer, Field> annotatedFields = new LinkedHashMap<Integer, Field>();
+ private Map<Integer, Field> annotatedFields = new TreeMap<Integer, Field>();
private int numberOptionalFields;
private int numberMandatoryFields;
Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java?rev=1477508&r1=1477507&r2=1477508&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/link/BindySimpleFixedLengthWithLinkTest.java Tue Apr 30 08:43:14 2013
@@ -16,6 +16,10 @@
*/
package org.apache.camel.dataformat.bindy.fixed.link;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
@@ -58,10 +62,22 @@ public class BindySimpleFixedLengthWithL
// check the model
Exchange exchange = unmarshallResult.getReceivedExchanges().get(0);
- BindySimpleFixedLengthWithLinkTest.Order order = (BindySimpleFixedLengthWithLinkTest.Order) exchange.getIn().getBody();
- assertEquals("AAA", order.fieldA);
- assertEquals("BBB", order.subRec.fieldB);
- assertEquals("CCC", order.fieldC);
+ List<HashMap<String, Object>> results = (List) exchange.getIn().getBody();
+ String orderKey = "org.apache.camel.dataformat.bindy.fixed.link.BindySimpleFixedLengthWithLinkTest$Order";
+
+ for (int i = 0; i < results.size(); i++) {
+ Map<String, Object> map = results.get(i);
+ for ( String key : map.keySet() ) {
+ if (key.equals(orderKey)) {
+ Order order = (Order) map.get(orderKey);
+ assertEquals("AAA", order.fieldA);
+ assertEquals("CCC", order.fieldC);
+ assertEquals("BBB", order.subRec.fieldB);
+ }
+ }
+
+ }
+
}
@@ -76,12 +92,12 @@ public class BindySimpleFixedLengthWithL
@Override
public void configure() throws Exception {
BindyDataFormat bindy = new BindyDataFormat();
- bindy.setClassType(BindySimpleFixedLengthWithLinkTest.Order.class);
+ bindy.setPackages(new String[]{"org.apache.camel.dataformat.bindy.fixed.link"});
bindy.setLocale("en");
bindy.setType(BindyType.Fixed);
from(URI_DIRECT_UNMARSHALL)
- .unmarshal().bindy(BindyType.Fixed, BindySimpleFixedLengthWithLinkTest.Order.class)
+ .unmarshal(bindy)
.to(URI_MOCK_UNMARSHALL_RESULT);
}
};
@@ -89,9 +105,6 @@ public class BindySimpleFixedLengthWithL
return routeBuilder;
}
- // *************
- // DATA FORMATS
- // *************
@FixedLengthRecord
public static class Order {
// 'AAA'
@@ -102,7 +115,7 @@ public class BindySimpleFixedLengthWithL
private SubRec subRec;
// 'CCC'
- @DataField(pos = 3, length = 3)
+ @DataField(pos = 7, length = 3)
private String fieldC;
public String getFieldA() {
@@ -129,13 +142,14 @@ public class BindySimpleFixedLengthWithL
this.subRec = subRec;
}
+
}
@Link
@FixedLengthRecord
public static class SubRec {
- @DataField(pos = 2, length = 3)
+ @DataField(pos = 4, length = 3)
private String fieldB;
public String getFieldB() {
@@ -147,4 +161,5 @@ public class BindySimpleFixedLengthWithL
}
}
+
}
\ No newline at end of file