How can I receive the byte[] from the message ? I suppose that the following method call will return an object : resultEndpoint.getExchanges().get(0).getIn().getBody()
Charles Moulliard Senior Enterprise Architect Apache Camel Committer ***************************** blog : http://cmoulliard.blogspot.com twitter : http://twitter.com/cmoulliard On Fri, Oct 23, 2009 at 11:05 AM, Claus Ibsen <[email protected]> wrote: > The B[ stuff is Java way of telling its a byte array > > Force Camel to test against String etc > >> // resultEndpoint.expectedBodiesReceived(result); > > Could be > resultEndpoint.message(0).body(String.class).isEqualTo(result); > > I guess we should add that type converter stuff into > expectedBodiesReceived as well. > > > > On Fri, Oct 23, 2009 at 11:01 AM, Charles Moulliard > <[email protected]> wrote: >> I have created a unit test to unmarshal a FIX message into a model >> (copy the model into another one) and marshal the result into a CSV >> >> The result received by the mock is null. If I try to read the object, >> I have this : >> >>>>> Class : [B >>>>> CSV generated : [...@12b19c5 >> >> Remark : the FIX message is well transformed into a model of objects >> and bindy does not generate any error during the generation of the >> outputstream from the model object >> >> public class VresEmxToCsvTest extends AbstractJUnit4SpringContextTests { >> >> private static final transient Log LOG = >> LogFactory.getLog(VresEmxToCsvTest.class); >> >> �...@produce(uri = "direct:start") >> private ProducerTemplate template; >> >> �...@endpointinject(uri = "mock:result") >> private MockEndpoint resultEndpoint; >> >> >> �...@test >> �...@dirtiescontext >> public void testEmxtoCsv() throws Exception { >> >> String record = >> "8=FIX.4.1 9=980 35=U3 34=61 49=SERVER 50=EMXSV 52=20091021-14:58:09 56=X3S >> 115=AHPRO 116=AHPADMIN 128=AHINT 129=AHIADMIN 9426=VRES 15=GBP 58=TEXT >> 117=first >> response 131=VAL >> Multiple 9400=* 9442=UT 9464=20090910-14:00:00 9469=Q 9477=11 9488=AHINT >> 9490=AHPRO 9494=AGENCY >> NO 9504=desig2 9450=3 9470=1 22=4 48=ISINLU898 9429=20091013-09:54:45 >> 9448=2432.45454 9493=fgfhgfhg 9470=2 22=4 48=ISINLU898 >> 9429=20091013-09:54:45 9448=2432.45454 9493=fgfhgfhg 9470=3 22=4 >> 48=ISINLU898 9429=20091013-09:54:45 9448=2432.45454 9493=fgfhgfhg >> 9425=20091008-13:11:12 9452=20091008-13:11:16 9453=20091008-13:11:16 >> 9480=1.0~SHA-1~RSA~CN=EMX >> Certificate Authority,OU=Certificate Authority,O=EMX Company >> Limited,C=GB~3ea639ba~3ee270f7e32929b5fb32eede09dd10c4f8e6809b83b7831165534be991e7845d6bfa7b6964f4336896d8f43e86e22d58b38362b6b6d096643d00351221df9b6d74ce9852689dc599c641182286de2b4ec8d47df6883d61a0664233daf34ec24026b985205ea2dbba5ca5856bb64ab911b8122c326bd1ccdd5d2b415b4d97ad94 >> 9481=20091008-13:11:12 9491=4003182 10=190 "; >> String result = ""; >> >> template.sendBody(record); >> >> resultEndpoint.expectedMessageCount(1); >> // resultEndpoint.expectedBodiesReceived(result); >> resultEndpoint.assertIsSatisfied(); >> >> for (Exchange exch : resultEndpoint.getExchanges()) { >> Object obj = exch.getIn().getBody(); >> System.out.println(">>> Class : " + obj.getClass().getName()); >> System.out.println(">>> CSV generated : " + obj.toString()); >> } >> >> >> >> >> } >> >> >> >> /* �...@test >> �...@dirtiescontext >> public void testUnMarshallWithNullFields() throws Exception { >> >> // TODO add null fields >> String record = >> "8=FIX.4.1 9=89 35=U2 34=84 49=SERVER 52=20090630-10:29:25 56=X3S 9426=TBKD >> 11=ORDER1 22=2 37=WWWWWW 48=ISIN24324343 54=1 58=TTT 67=1 68=1 121=Y >> 152=33.43 173=TTTTTTT 174=TTTTTTTTTTT >> 182=BIGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 183=HHHHHH >> 184=YYYYYYYYY 185=FFFFFFFFFFFFFF 9400=TTTTTTTTTTT 9401=1 9402=31.23 9403=1 >> 9404=TTT 9405=TTT 9406=TTT 9407=TTT 9408=TTT 9409=TTT 9410=TTT 9411=TTT >> 9412=TTT 9413=N 9414=TTT 9415=TTT 9416=R 9417=USD 9418=DEM 9419=8.65 >> 9420=334 9422=M 9423=Y 9424=HJHJKHJKHJ 9428=20090303-12:25:55 9435=20080326 >> 9436=jhkjkj 9437=dddddddddd 9438=eeeeeeeeee 9439=1209 9440=AA 9441=8 >> 9442=PROTYP3 9443=1 9444=safdewfw 9449=fsgsg 9451=E 9455=EUR 9462=5 9468=? >> 9471=433.443 9474=E 9475=Y 9482=fwrfw 9483=KKKKK 9484=KLKLKL 9485=JKIJKJKJ >> 9488=ORIG1 9489=JJJJJ 9490=PRV03 9492=kjlklk 9494=AGENCY33 9495=23.18 >> 9491=TBKD-57765177 10=111 "; >> >> template.sendBody(record); >> >> resultEndpoint.expectedMessageCount(1); >> resultEndpoint.assertIsSatisfied(); >> >> List<Exchange> exchanges = resultEndpoint.getExchanges(); >> >> for(Exchange exchange : exchanges) { >> >> models = (List<Map<String, Object>>) exchange.getIn().getBody(); >> >> for (int i=0; i< models.size(); i++) { >> model = models.get(i); >> OutTbkdMessage tbkd = >> (OutTbkdMessage)model.get("com.xpectis.x3s.model.backoffice.emx.tbkd.out.OutTbkdMessage"); >> Assert.assertEquals(tbkd.getOrdUntNb(), null); >> LOG.debug("Model : " + tbkd.toString()); >> } >> >> >> } >> }*/ >> >> �...@configuration >> public static class ContextConfig extends SingleRouteCamelConfiguration { >> BindyKeyValuePairDataFormat emxBindyDataFormat = new >> BindyKeyValuePairDataFormat("com.xpectis.x3s.model.backoffice.emx.vres.out","com.xpectis.x3s.model.backoffice.emx.common"); >> BindyCsvDataFormat csvBindyDataFormat = new >> BindyCsvDataFormat("com.xpectis.x3s.model.backoffice.emx.vres.in"); >> >> �...@override >> �...@bean >> public RouteBuilder route() { >> return new RouteBuilder() { >> �...@override >> public void configure() { >> from("direct:start") >> .unmarshal(emxBindyDataFormat) >> .process(new Processor() { >> >> public void process(Exchange exchange) throws >> Exception { >> >> InVresMessage >> inVresMessage = new InVresMessage(); >> List<Map<String, Object>> models = new >> ArrayList<Map<String, Object>>(); >> List<Map<String, Object>> modelsReceived; >> Map<String, Object> model = new >> HashMap<String, Object>(); >> >> modelsReceived = >> (List<Map<String, Object>>) exchange.getIn().getBody(); >> OutVresMessage outVresMessage >> = (OutVresMessage) >> modelsReceived.get(0).get("com.xpectis.x3s.model.backoffice.emx.vres.out.OutVresMessage"); >> >> >> PropertyUtils.copyProperties(inVresMessage, outVresMessage); >> >> model.put(inVresMessage.getClass().getName(), inVresMessage); >> models.add( model ); >> >> >> exchange.getIn().setBody(models); >> } >> } >> >> ) >> .marshal(csvBindyDataFormat) >> .to("mock:result"); >> } >> }; >> } >> } >> >> } >> >> >> Regards, >> >> Charles Moulliard >> Senior Enterprise Architect >> Apache Camel Committer >> >> ***************************** >> blog : http://cmoulliard.blogspot.com >> twitter : http://twitter.com/cmoulliard >> > > > > -- > Claus Ibsen > Apache Camel Committer > > Author of Camel in Action: http://www.manning.com/ibsen/ > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus >
