The result.expectedBodiesReceived( generateModel().toString() ); was working

There was a stupid "." character instead of a " " in the expected string.

So forget my question

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com
twitter : http://twitter.com/cmoulliard



On Wed, Oct 21, 2009 at 11:08 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> 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
>

Reply via email to