camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Quinn Stevenson <qu...@pronoia-solutions.com>
Subject Re: DataSet Consumer expected message count - proposed change
Date Thu, 10 Mar 2016 16:28:43 GMT
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.ibsen@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
> <quinn@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


Mime
View raw message