Can you share your route and your unit test? Than it's easier (for me) to
understand where your issues are.
Have a look at the many AdviceWith* unit tests at [1].

[1]
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/

Best,
Christian

On Sat, Jan 5, 2013 at 4:55 PM, Henri Tremblay <henri.tremb...@gmail.com>wrote:

> Hum... I'm already creating the advice in the test (not in the setup).
>
> I'll try but isUseAdviceWith seems only not to start the context. So I
> don't see how this can help me to set my original route back.
>
>
>
> On 4 January 2013 18:06, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> > On Fri, Jan 4, 2013 at 6:02 PM, Henri Tremblay <henri.tremb...@gmail.com
> >
> > wrote:
> > > That's what I'm doing.
> > >
> > >     routeDefinitionUnderTest.adviceWith(context(), new
> > > AdviceWithRouteBuilder() {
> > >
> > >       @Override
> > >       public void configure() throws Exception {
> > >         weaveById("doTry*").before().setHeader("JMSMessageID",
> > > constant("DuplicateID"));
> > >       }
> > >     });
> > >
> > > But I have two tests in my test case. The second one still use the
> > tainted
> > > context (yes, if you tell me that another test case won't have the
> > problem,
> > > I can separate the tests in two classes).
> > >
> >
> > You can do the advice in the test method itself. Then it ought to be
> > local to that given test only.
> >
> > As we do at
> > http://camel.apache.org/advicewith.html
> >
> > And see the green box about the tip.
> >
> >
> > >
> > > On 4 January 2013 17:11, Christian Müller <christian.muel...@gmail.com
> > >wrote:
> > >
> > >> You can use adviceWith [1] in your test. In this case you don't have
> to
> > >> touch your original route.
> > >>
> > >> [1] http://camel.apache.org/advicewith.html
> > >>
> > >> Best,
> > >> Christian
> > >>
> > >> On Fri, Jan 4, 2013 at 4:52 PM, Henri Tremblay <
> > henri.tremb...@gmail.com
> > >> >wrote:
> > >>
> > >> > Hi,
> > >> >
> > >> > Happy new year to everyone.
> > >> >
> > >> > I'm doing integration tests. I'm reading from a JMS queue and then
> > doing
> > >> > some special stuff is the JMSMessageID already exist.
> > >> >
> > >> > I want to test that the "special stuff" is correctly called.
> > >> >
> > >> > So right now I'm doing this:
> > >> > - Adding an advice at the beginning of the route that set the
> > >> JMSMessageID
> > >> > - Sending two messages
> > >> >
> > >> > Everything is fine but since it's an integration tests, my route is
> > now
> > >> > dirty and cannot be reused for other tests. So I'm stuck.
> > >> >
> > >> > I'm using a org.apache.camel.test.junit4.CamelTestSupport. The camel
> > >> > context comes from a SingletonBeanFactory somewhere else (I can't
> > change
> > >> > that).
> > >> >
> > >> > So, I would like a solution to get an "unweaved" route back.
> > >> >
> > >> > The solution is can see:
> > >> >
> > >> >    - But back the original route. (How?)
> > >> >    - Remove the weaving on the route (How?)
> > >> >    - Reload the context with it's original content (How?)
> > >> >    - Set the JMSMessageId without weaving (How?)
> > >> >    - ???
> > >> >
> > >> > Any ideas are welcome
> > >> >
> > >> > Cheers,
> > >> > Henri
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >>
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > Red Hat, Inc.
> > FuseSource is now part of Red Hat
> > Email: cib...@redhat.com
> > Web: http://fusesource.com
> > Twitter: davsclaus
> > Blog: http://davsclaus.com
> > Author of Camel in Action: http://www.manning.com/ibsen
> >
>



--

Reply via email to