Thanks, it did give me some hints.

For anyone else interested, the solution I used was to configure the quartz 
component to not start the scheduler automatically as follows.

<bean id="quartz2" class="org.apache.camel.component.quartz2.QuartzComponent">
        <property name="autoStartScheduler" value="false"/>
</bean>

In the unit test, inject this component in

@Autowired
private QuartzComponent quartzComponent;

Then during tests, set all expectations first on mocked components as per 
normal and then call

quartzComponent.getScheduler().start()

No more race conditions!

On 06/05/2014, at 9:43 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> On Tue, May 6, 2014 at 1:36 PM, Minh Tran <darth.minhs...@gmail.com> wrote:
>> No one else unit tests their quartz routes?
>> 
> 
> Well Camel tests its own components. So maybe take a peak there
> https://github.com/apache/camel/tree/master/components/camel-quartz/src/test
> 
>> On 06/05/2014, at 8:51 AM, Minh Tran <darth.minhs...@gmail.com> wrote:
>> 
>>> Hi
>>> 
>>> Most of my routes start with either direct or jms. So to test I would use 
>>> the @MockEndpoints and set all my expectations then trigger the route using 
>>> a ProducerTemplate. But I'm struggling to understand how I can do the same 
>>> when it's a quartz component at the start of the route.
>>> 
>>> eg
>>> 
>>> <from uri="quartz:foo"/>
>>> <to uri="bean:bar"/>
>>> 
>>> How do you trigger this from the unit test? I'd like to be able to set all 
>>> my expectations before the route gets triggered.
>> 
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/

Reply via email to