https://issues.apache.org/jira/browse/CAMEL-6792 created.

I disagree about the test support making assertions. If we are calling a
method appropriately named, there is no reason it shouldn't make the assert
call. This is, after all, a Camel*TestSupport* class. If we do it with a
different signature and return null then every time I call mock =
getMockEndpoint(), I need another line of code which is
assertNotNull(mock). If I miss one, I am with a ghost endpoint and my tests
give invalid results. If we dont want to use an assert, I would at least
suggest an IllegalArgumentException which will have the same effect. In
fact I cant conceive of a use case for getMockEndpoint that should create a
ghost mock not attached to anything. I expected the existing method to
throw if I gave it a wrong URI.


On Fri, Sep 27, 2013 at 9:16 AM, Jan Matèrne (jhm) <apa...@materne.de>wrote:

> Instead of overloading the method I would prefer another one:
> - getMockEndpoint will return the endpoint or null
> - createMockEndpoint will return the endpoint and create one if required
> But that would change the existing API of getMockEndpoint()  :(
>
> Having a 2nd argument would result in
>   getMockEndpoint(uri) {
>     // use 'false' as it is the current implementation
>     return getMockEndpoint(uri,false)
>   }
>   getMockEndpoint(uri,boolean create) ...
>
> Maybe it is just enough to improve the javadoc of getMockEndpoint(),
> describe the
> "auto-creation" behaviour and link to context.hasEndpoint(uri) ...
>
>
> Jan
>
>
> > -----Ursprüngliche Nachricht-----
> > Von: Raul Kripalani [mailto:r...@evosent.com]
> > Gesendet: Freitag, 27. September 2013 15:36
> > An: users@camel.apache.org
> > Betreff: Re: CamelTestSupport Needs a New Method
> >
> > I would prefer to add another signature for that method such that it
> > accepts a 2nd argument "create" which is a boolean. If true, it will
> > create the endpoint; else it will return null.
> >
> > I don't think CamelTestSupport should make the assertion; it should be
> > the user's code, if that's what he/she is after.
> >
> > Regards,
> >
> > *Raúl Kripalani*
> > Apache Camel PMC Member & Committer | Enterprise Architect, Open Source
> > Integration specialist http://about.me/raulkripalani |
> > http://www.linkedin.com/in/raulkripalani
> > http://blog.raulkr.net | twitter: @raulvk
> >
> > On Fri, Sep 27, 2013 at 9:11 AM, Willem jiang
> > <willem.ji...@gmail.com>wrote:
> >
> > > Yeah, it's a good suggestion.
> > > Please feel free to fill a JIRA[1] for it :)
> > >
> > > [1]http://issues.apache.org/jira/browse/CAMEL
> > >
> > > --
> > > Willem Jiang
> > >
> > > Red Hat, Inc.
> > > Web: http://www.redhat.com
> > > Blog: http://willemjiang.blogspot.com
> > > (http://willemjiang.blogspot.com/)
> > > (English)
> > >           http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
> > > Twitter: willemjiang
> > > Weibo: 姜宁willem
> > >
> > >
> > >
> > >
> > >
> > > On Friday, September 27, 2013 at 7:54 AM, kraythe . wrote:
> > >
> > > > There is a problem with the CamelTestSupport class in that if you
> > > > call getMockEndpoint on an endpoint that doesnt exist, it blithely
> > > > returns you an endpoint connected to nothing. The problem is you
> > end
> > > > up chasing
> > > endless
> > > > test failures when the fact is your endpoint is not even there. So
> > I
> > > > suggest a method I added to my subclass of CamelTestSupport which
> > is:
> > > >
> > > > protected MockEndpoint assertAndGetMockEndpoint(final String uri) {
> > > >
> > > > assertNotNull(context.hasEndpoint(uri));
> > > >
> > > > return getMockEndpoint(uri);
> > > >
> > > > }
> > > >
> > > > This method will make sure that the endpoint is there before
> > > > returning it and it will make tests easier to write.
> > >
> > >
> > >
> > >
>
>

Reply via email to