While working on the PR for this (JIRA CAMEL-9699), I noticed that 
DataSetEndpoint.performAssertions does not call super.performAssertions.  As a 
result, the received exchanges aren’t in the DataSet/Mock, so I can’t 
post-process the exchanges for data validation in a test.

Is this the intended/desired behavior?


> On Mar 10, 2016, at 10:03 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> 
> Hi
> 
> Yeah it does. And as long you can turn back the old way its fine. And
> such a change in a testing component is much more okay to do than a
> component you use for production.
> 
> I suggest you work on a patch and then lets see this in action.
> 
> 
> On Thu, Mar 10, 2016 at 5:28 PM, Quinn Stevenson
> <qu...@pronoia-solutions.com> wrote:
>> I could definitely add an option to turn the new behavior on or off, but I’d 
>> like to make the new behavior the default if that’s OK.
>> 
>> The reasons for this are:
>> - I think the new behavior is more intuitive (but that’s just my opinion - 
>> I’d like to hear others)
>> - The point of the change was to get rid of a bunch of duplication I have in 
>> my tests that are there to make the tests behave the way I think they should 
>> - namely sourceDataSet.expectedMessageCount(0) that I have everywhere.  It 
>> forces me to grab or inject the dataset into the test and change it.  With 
>> the new default, all of that could go away.
>> - The proposed change wouldn’t break existing uses unless they are relying 
>> on the test to fail when it’s a source only and they haven’t overridden the 
>> expected message count.  The endpoints that are targets would still use the 
>> size as the default expected message count, so I don’t think it would break 
>> very many tests - and fixing them would be simple.
>> 
>> Does all of that make sense?
>> 
>>> On Mar 10, 2016, at 2:29 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>> 
>>> Hi
>>> 
>>> Yeah sure. Maybe have some option on dataset you can use to turn this
>>> on|off so the old behavior can be the default still.
>>> 
>>> On Wed, Mar 9, 2016 at 9:50 PM, Quinn Stevenson
>>> <qu...@pronoia-solutions.com> wrote:
>>>> I would like to propose changing the current behavior of the DataSet 
>>>> component such that the expected message count defaults to zero for 
>>>> DataSets used as a source (i.e. DataSetConsumers).
>>>> 
>>>> The reasoning behind this is as follows.
>>>> 
>>>> I use the DataSet component for simple load testing.  When I use a DataSet 
>>>> as a source (i.e. from(“dataset://my-dataset <dataset://my-dataset>”) ), 
>>>> the assertMockEndpointsSatisfied() always fails because the 
>>>> expectedMessageSize is set to the size of the DataSet.  I either have to 
>>>> explicitly set the expected message count on the endpoint to zero ( 
>>>> getMockEndpoint( “dataset://my-dataset 
>>>> <dataset://my-dataset>”).expectedMessageCount( 0 ), or I have to assert 
>>>> all of the other mock endpoints individually (i.e not use 
>>>> assertMockEndpointsSatisfied() ).
>>>> 
>>>> I rarely use the same dataset as both a source (i.e. from(“dataset://…”) ) 
>>>> and a target (i.e. to( “dataset://…”) ), so this behavior doesn’t make 
>>>> much sense to me.  Additionally, I can’t use the same DataSet as the 
>>>> source and target when the source message count would be different than 
>>>> the target message count - which would be the case for a route that does 
>>>> some simple filtering, and all I want to assert is the correct number of 
>>>> messages came through.
>>>> 
>>>> I’ve figured out a way to do this, and I’d like to create a JIRA task and 
>>>> a pull request for this if it sounds like an acceptable change.
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Claus Ibsen
>>> -----------------
>>> http://davsclaus.com @davsclaus
>>> Camel in Action 2: https://www.manning.com/ibsen2
>> 
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to