This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new f0d50d9 Added test based on user forum issue f0d50d9 is described below commit f0d50d952e6cfee4890dac7b999edac055406dfd Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Dec 7 10:57:04 2018 +0100 Added test based on user forum issue --- .../camel/processor/RouteStartupOrderLastTest.java | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/camel-core/src/test/java/org/apache/camel/processor/RouteStartupOrderLastTest.java b/camel-core/src/test/java/org/apache/camel/processor/RouteStartupOrderLastTest.java new file mode 100644 index 0000000..106745c --- /dev/null +++ b/camel-core/src/test/java/org/apache/camel/processor/RouteStartupOrderLastTest.java @@ -0,0 +1,72 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.processor; + +import java.util.List; + +import org.apache.camel.ContextTestSupport; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.spi.RouteStartupOrder; +import org.junit.Test; + +/** + * @version + */ +public class RouteStartupOrderLastTest extends ContextTestSupport { + + @Test + public void testRouteStartupOrderLast() throws Exception { + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMessageCount(1); + + template.sendBody("direct:start", "Hello World"); + + assertMockEndpointsSatisfied(); + + // assert correct order + DefaultCamelContext dcc = (DefaultCamelContext) context; + List<RouteStartupOrder> order = dcc.getRouteStartupOrder(); + + assertEquals(4, order.size()); + assertEquals("seda://foo", order.get(0).getRoute().getEndpoint().getEndpointUri()); + assertEquals("direct://start", order.get(1).getRoute().getEndpoint().getEndpointUri()); + assertEquals("seda://bar", order.get(2).getRoute().getEndpoint().getEndpointUri()); + assertEquals("direct://bar", order.get(3).getRoute().getEndpoint().getEndpointUri()); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + @Override + public void configure() throws Exception { + // use auto assigned startup ordering + from("direct:start").to("seda:foo"); + + // should start first + from("seda:foo").startupOrder(1).to("mock:result"); + + // should start last after the default routes route + from("direct:bar").startupOrder(12345).to("seda:bar"); + + // use auto assigned startup ordering + from("seda:bar").to("mock:other"); + } + }; + } +} \ No newline at end of file