Yeah they are not String equals See below: > [{org.apache.camel.dataformat.bindy.model.fix.simple.header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@35bb0f[ > [{org.apache.camel.dataformat.bindy.model.fix.simple.header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@366573[
You can override and implement a toString in the Header class to avoid printing the @xxxx stuff (hash coded) Or implement equals / hashCode on your objects and let them be able to compare. Or just do a simple check if X text exists using indexOf On Wed, Oct 21, 2009 at 11:04 AM, Charles Moulliard <cmoulli...@gmail.com> wrote: > Assertion error is also generated using what you propose Claus : > > java.lang.AssertionError: mock://result body == > [{org.apache.camel.dataformat.bindy.model.fix.simple.header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@35bb0f[ > beginString=FIX 4.1 > bodyLength=20 > msgSeqNum=1 > msgType=0 > sendCompId=INVMGR > targetCompId=BRKR > ], > org.apache.camel.dataformat.bindy.model.fix.simple.order=org.apache.camel.dataformat.bindy.model.fix.simple.or...@11eb199[ > header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@35bb0f[ > beginString=FIX 4.1 > bodyLength=20 > msgSeqNum=1 > msgType=0 > sendCompId=INVMGR > targetCompId=BRKR > ] > trailer=org.apache.camel.dataformat.bindy.model.fix.simple.trai...@8ae45a[ > checkSum=220 > ] > account=BE.CHM.001 > clOrdId=CHM0001-01 > iDSource=4 > securityId=BE0001245678 > side=1 > text=this is a camel - bindy test > ], > org.apache.camel.dataformat.bindy.model.fix.simple.trailer=org.apache.camel.dataformat.bindy.model.fix.simple.trai...@8ae45a[ > checkSum=220 > ]}] on Exchange[GenericFileMessage with body: > [{org.apache.camel.dataformat.bindy.model.fix.simple.header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@366573[ > beginString=FIX.4.1 > bodyLength=20 > msgSeqNum=1 > msgType=0 > sendCompId=INVMGR > targetCompId=BRKR > ], > org.apache.camel.dataformat.bindy.model.fix.simple.order=org.apache.camel.dataformat.bindy.model.fix.simple.or...@13e75a5[ > header=org.apache.camel.dataformat.bindy.model.fix.simple.hea...@366573[ > beginString=FIX.4.1 > bodyLength=20 > msgSeqNum=1 > msgType=0 > sendCompId=INVMGR > targetCompId=BRKR > ] > trailer=org.apache.camel.dataformat.bindy.model.fix.simple.trai...@19da967[ > checkSum=220 > ] > account=BE.CHM.001 > clOrdId=CHM0001-01 > iDSource=4 > securityId=BE0001245678 > side=1 > text=this is a camel - bindy test > ], > org.apache.camel.dataformat.bindy.model.fix.simple.trailer=org.apache.camel.dataformat.bindy.model.fix.simple.trai...@19da967[ > checkSum=220 > ]}]] > > Charles Moulliard > Senior Enterprise Architect > Apache Camel Committer > > ***************************** > blog : http://cmoulliard.blogspot.com > twitter : http://twitter.com/cmoulliard > > > > On Wed, Oct 21, 2009 at 10:48 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> On Wed, Oct 21, 2009 at 10:41 AM, Charles Moulliard >> <cmoulli...@gmail.com> wrote: >>> How do you do the comparison ? >>> >>> If I extend my model class with the AbstractParent and that I use the >>> following method : >>> >>> result.expectedBodiesReceived( generateModel().toString() ); >> >> This one does a simple assertEquals from junit. >> Maybe we should extend it to use Camels type coverter system as well. >> >> >> You can do this in Camel instead >> result.message(0).body().isEqualTo(generateModel().toString()); >> >> >>> >>> to compare what I receive from camel-bindy unmarshalling with a model >>> generated from scratch, the test fail >>> >>> java.lang.AssertionError: mock://result Body of message: 0. Expected: >>> <[{org.apache.camel.dataformat.bindy.model.fix.sorted.body.order=org.apache.camel.dataformat.bindy.model.fix.sorted.body.or...@e45b5e[ >>> header=org.apache.camel.dataformat.bindy.model.fix.sorted.header.hea...@7f58ef[ >>> beginString=FIX 4.1 >>> bodyLength=20 >>> msgSeqNum=1 >>> msgType=0 >>> sendCompId=INVMGR >>> targetCompId=BRKR >>> ] >>> trailer=org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trai...@e1dac2[ >>> checkSum=220 >>> ] >>> account=BE.CHM.001 >>> clOrdId=CHM0001-01 >>> iDSource=4 >>> securityId=BE0001245678 >>> side=1 >>> text=this is a camel - bindy test >>> ], >>> org.apache.camel.dataformat.bindy.model.fix.sorted.header.header=org.apache.camel.dataformat.bindy.model.fix.sorted.header.hea...@7f58ef[ >>> beginString=FIX 4.1 >>> bodyLength=20 >>> msgSeqNum=1 >>> msgType=0 >>> sendCompId=INVMGR >>> targetCompId=BRKR >>> ], >>> org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trailer=org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trai...@e1dac2[ >>> checkSum=220 >>> ]}]> but was: >>> <[{org.apache.camel.dataformat.bindy.model.fix.sorted.body.order=org.apache.camel.dataformat.bindy.model.fix.sorted.body.or...@19f03d7[ >>> header=org.apache.camel.dataformat.bindy.model.fix.sorted.header.hea...@4bf53e[ >>> beginString=FIX.4.1 >>> bodyLength=20 >>> msgSeqNum=1 >>> msgType=0 >>> sendCompId=INVMGR >>> targetCompId=BRKR >>> ] >>> trailer=org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trai...@d1e7c2[ >>> checkSum=220 >>> ] >>> account=BE.CHM.001 >>> clOrdId=CHM0001-01 >>> iDSource=4 >>> securityId=BE0001245678 >>> side=1 >>> text=this is a camel - bindy test >>> ], >>> org.apache.camel.dataformat.bindy.model.fix.sorted.header.header=org.apache.camel.dataformat.bindy.model.fix.sorted.header.hea...@4bf53e[ >>> beginString=FIX.4.1 >>> bodyLength=20 >>> msgSeqNum=1 >>> msgType=0 >>> sendCompId=INVMGR >>> targetCompId=BRKR >>> ], >>> org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trailer=org.apache.camel.dataformat.bindy.model.fix.sorted.trailer.trai...@d1e7c2[ >>> checkSum=220 >>> ]}]> >>> >>> Regards, >>> >>> Charles Moulliard >>> Senior Enterprise Architect >>> Apache Camel Committer >>> >>> ***************************** >>> blog : http://cmoulliard.blogspot.com >>> twitter : http://twitter.com/cmoulliard >>> >>> >>> >>> On Wed, Oct 21, 2009 at 9:16 AM, Dmitry Ulanov <dula...@gmail.com> wrote: >>>> In Java Objects are comared via equals() method, not toString(). I usually >>>> use Jakarta Lang libarary to automate it. For example: >>>> >>>> import java.io.Serializable; >>>> >>>> import org.apache.commons.lang.builder.EqualsBuilder; >>>> import org.apache.commons.lang.builder.HashCodeBuilder; >>>> import org.apache.commons.lang.builder.ToStringBuilder; >>>> import org.apache.commons.lang.builder.ToStringStyle; >>>> >>>> public abstract class AbstractParent<T extends AbstractParent> implements >>>> Serializable { >>>> >>>> private static final long serialVersionUID = 1L; >>>> >>>> �...@override public boolean equals(Object obj) { >>>> return EqualsBuilder.reflectionEquals(this, obj); >>>> } >>>> >>>> �...@override public int hashCode() { >>>> return HashCodeBuilder.reflectionHashCode(this); >>>> } >>>> >>>> �...@override public String toString() { >>>> return ToStringBuilder.reflectionToString(this, >>>> ToStringStyle.MULTI_LINE_STYLE); >>>> } >>>> } >>>> >>>> On Wed, Oct 21, 2009 at 11:12 AM, Charles Moulliard >>>> <cmoulli...@gmail.com>wrote: >>>> >>>>> I have customized the toString method of each Class. What is strange >>>>> is that in another the test generating the same objects, it works. >>>>> >>>>> I will adapt the test to compare object differently. >>>>> >>>>> Charles Moulliard >>>>> Senior Enterprise Architect >>>>> Apache Camel Committer >>>>> >>>>> ***************************** >>>>> blog : http://cmoulliard.blogspot.com >>>>> twitter : http://twitter.com/cmoulliard >>>>> >>>>> >>>>> >>>>> On Tue, Oct 20, 2009 at 7:48 PM, Claus Ibsen <claus.ib...@gmail.com> >>>>> wrote: >>>>> > Hi >>>>> > >>>>> > If you are comparing objects it will use equals and it may not be able >>>>> > to detect that they are identical. >>>>> > >>>>> > If they have a nice toString you can convert them to String and do a >>>>> > string equals. >>>>> > >>>>> > At least their to string output in this mail looks as if they are >>>>> identical. >>>>> > >>>>> > On Tue, Oct 20, 2009 at 4:48 PM, Charles Moulliard >>>>> > <cmoulli...@gmail.com> >>>>> wrote: >>>>> >> Unit test return the following error : >>>>> >> >>>>> >> java.lang.AssertionError: mock://result Body of message: 0. >>>>> >> >>>>> >> Expected: >>>>> >> >>>>> >> <[{org.apache.camel.dataformat.bindy.model.fix.simple.Header=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Header, FIX 4.1, >>>>> >> 20, 10, INVMGR, BRKR, >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Order=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Order, BE.CHM.001, >>>>> >> CHM0001-01, 4, BE0001245678, 1, this is a camel - bindy test, >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Trailer=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Trailer, 220}]> >>>>> >> >>>>> >> but was: >>>>> >> >>>>> >> <[{org.apache.camel.dataformat.bindy.model.fix.simple.Header=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Header, FIX.4.1, >>>>> >> 20, 10, INVMGR, BRKR, >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Order=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Order, BE.CHM.001, >>>>> >> CHM0001-01, 4, BE0001245678, 1, this is a camel - bindy test, >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Trailer=Model : >>>>> >> org.apache.camel.dataformat.bindy.model.fix.simple.Trailer, 220}]> >>>>> >> >>>>> >> I don't understand why test fail because comparison of both is the same >>>>> !!! >>>>> >> >>>>> >> Here is the method used to compare what I receive : >>>>> >> result.expectedBodiesReceived() >>>>> >> >>>>> >> result = result endpoint >>>>> >> >>>>> >> Regards, >>>>> >> >>>>> >> Charles Moulliard >>>>> >> Senior Enterprise Architect >>>>> >> Apache Camel Committer >>>>> >> >>>>> >> ***************************** >>>>> >> blog : http://cmoulliard.blogspot.com >>>>> >> twitter : http://twitter.com/cmoulliard >>>>> >> >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Claus Ibsen >>>>> > Apache Camel Committer >>>>> > >>>>> > Open Source Integration: http://fusesource.com >>>>> > Blog: http://davsclaus.blogspot.com/ >>>>> > Twitter: http://twitter.com/davsclaus >>>>> > >>>>> >>>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus