This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch 2.13.x in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 58b998bc6d37a9b39c2270566ea1d1a9309865d0 Author: JiriOndrusek <ondrusek.j...@gmail.com> AuthorDate: Tue Feb 14 09:13:33 2023 +0100 Multiple test methods do not work when extending CamelQuarkusTestSupport #4560 --- .../DoubleRoutesTest.java} | 16 ++++---- .../extensions/doubeRouteBuilder/FirstET.java} | 43 +++++++++++---------- .../RouteBuilder.java} | 28 +++----------- .../extensions/doubeRouteBuilder/SecondET.java} | 43 +++++++++++---------- .../ProducedRouteBuilderTest.java | 4 +- .../routeBuilder/RouteBuilderFailureTest.java | 18 ++++++++- .../extensions/routeBuilder/RouteBuilderUtil.java | 45 ---------------------- .../routeBuilder/RouteBuilderWarningET.java | 17 +------- ...RouteBuilderWarningWithProducedBuilderTest.java | 19 +++++++-- ...teBuilderWarningWithoutProducedBuilderTest.java | 18 +++++++-- .../{RouteBuilderHello.java => RouteProducer.java} | 17 ++++---- .../apache/camel/quarkus/test/CallbackUtil.java | 12 +++--- .../quarkus/test/CamelQuarkusTestSupport.java | 22 +++++++++++ .../test/common/CallbacksPerTestFalse01Test.java | 2 - .../test/common/CallbacksPerTestFalse02Test.java | 5 +-- .../test/common/CallbacksPerTestTrue01Test.java | 2 - .../test/common/CallbacksPerTestTrue02Test.java | 2 - .../test/junit5/patterns/AdviceWithLambdaTest.java | 2 + .../AdviceInDoBeforeEachMethodsTest.java | 2 - 19 files changed, 153 insertions(+), 164 deletions(-) diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/DoubleRoutesTest.java similarity index 82% copy from test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java copy to test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/DoubleRoutesTest.java index 17fa9029a2..9fc59a5622 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/DoubleRoutesTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.test.extensions.producedRouteBuilder; +package org.apache.camel.quarkus.test.extensions.doubeRouteBuilder; import java.util.function.Supplier; @@ -28,25 +28,25 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; /** - * Test for https://github.com/apache/camel-quarkus/issues/4362 + * Test for https://github.com/apache/camel-quarkus/issues/4560 */ -public class ProducedRouteBuilderTest { +public class DoubleRoutesTest { @RegisterExtension static final QuarkusDevModeTest TEST = new QuarkusDevModeTest() .setArchiveProducer(new Supplier<>() { @Override public JavaArchive get() { - return ShrinkWrap.create(JavaArchive.class) + return ShrinkWrap.create(JavaArchive.class).addClass(RouteBuilder.class) .add(new StringAsset( - ContinuousTestingTestUtils.appProperties("camel-quarkus.junit5.message=Sheldon")), + ContinuousTestingTestUtils.appProperties("#")), "application.properties"); } }) .setTestArchiveProducer(new Supplier<>() { @Override public JavaArchive get() { - return ShrinkWrap.create(JavaArchive.class).addClasses(ProducedRouteBuilderET.class); + return ShrinkWrap.create(JavaArchive.class).addClasses(FirstET.class, SecondET.class); } }); @@ -55,7 +55,7 @@ public class ProducedRouteBuilderTest { ContinuousTestingTestUtils utils = new ContinuousTestingTestUtils(); ContinuousTestingTestUtils.TestStatus ts = utils.waitForNextCompletion(); - Assertions.assertEquals(1L, ts.getTestsFailed()); - Assertions.assertEquals(1L, ts.getTestsPassed()); + Assertions.assertEquals(0L, ts.getTestsFailed()); + Assertions.assertEquals(4L, ts.getTestsPassed()); } } diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/FirstET.java similarity index 55% copy from test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java copy to test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/FirstET.java index ef19a48b33..47c2b056e3 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/FirstET.java @@ -14,42 +14,45 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.test.junit5.patterns; +package org.apache.camel.quarkus.test.extensions.doubeRouteBuilder; import io.quarkus.test.junit.QuarkusTest; import org.apache.camel.RoutesBuilder; -import org.apache.camel.builder.AdviceWith; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.quarkus.test.CamelQuarkusTestSupport; import org.junit.jupiter.api.Test; @QuarkusTest -public class AdviceWithLambdaTest extends CamelQuarkusTestSupport { +public class FirstET extends CamelQuarkusTestSupport { @Override - public boolean isUseAdviceWith() { - return true; + protected RoutesBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:startTest").to("direct:start").to("mock:result"); + } + }; } @Test - public void testAdviceWith() throws Exception { - getMockEndpoint("mock:result").expectedMessageCount(1); + public void someTestA() throws InterruptedException { + MockEndpoint mockEndpoint = getMockEndpoint("mock:result"); + mockEndpoint.expectedBodiesReceived("Some Value"); - // advice the route in one line - AdviceWith.adviceWith(context, "foo", a -> a.weaveAddLast().to("mock:result")); + template.sendBody("direct:startTest", null); - template.sendBody("direct:start", "Bye World"); - - assertMockEndpointsSatisfied(); + mockEndpoint.assertIsSatisfied(); } - @Override - protected RoutesBuilder createRouteBuilder() { - return new RouteBuilder() { - @Override - public void configure() { - from("direct:start").routeId("foo").to("log:foo"); - } - }; + @Test + public void someTestB() throws InterruptedException { + MockEndpoint mockEndpoint = getMockEndpoint("mock:result"); + mockEndpoint.expectedBodiesReceived("Some Value"); + + template.sendBody("direct:startTest", null); + + mockEndpoint.assertIsSatisfied(); } } diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningResource.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/RouteBuilder.java similarity index 57% rename from test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningResource.java rename to test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/RouteBuilder.java index 758fdaa5b3..7ce968d360 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningResource.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/RouteBuilder.java @@ -14,29 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.test.extensions.routeBuilder; +package org.apache.camel.quarkus.test.extensions.doubeRouteBuilder; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +public class RouteBuilder extends org.apache.camel.builder.RouteBuilder { + @Override + public void configure() throws Exception { + from("direct:start").setBody(constant("Some Value")).log("The body is: ${body}"); -import org.apache.camel.ProducerTemplate; - -@Path("/routeBuilder") -@ApplicationScoped -public class RouteBuilderWarningResource { - - @Inject - ProducerTemplate producerTemplate; - - @Path("/in") - @POST - @Produces(MediaType.TEXT_PLAIN) - public void in(String body) { - producerTemplate.sendBody("direct:in", body); + from("timer:timeToAct?period=5000").routeId("TimerRoute").log("Calling direct:start").to("direct:start"); } - } diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/SecondET.java similarity index 55% copy from test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java copy to test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/SecondET.java index ef19a48b33..f76a446ccb 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/doubeRouteBuilder/SecondET.java @@ -14,42 +14,45 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.test.junit5.patterns; +package org.apache.camel.quarkus.test.extensions.doubeRouteBuilder; import io.quarkus.test.junit.QuarkusTest; import org.apache.camel.RoutesBuilder; -import org.apache.camel.builder.AdviceWith; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.quarkus.test.CamelQuarkusTestSupport; import org.junit.jupiter.api.Test; @QuarkusTest -public class AdviceWithLambdaTest extends CamelQuarkusTestSupport { +public class SecondET extends CamelQuarkusTestSupport { @Override - public boolean isUseAdviceWith() { - return true; + protected RoutesBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:startTest").to("direct:start").to("mock:result"); + } + }; } @Test - public void testAdviceWith() throws Exception { - getMockEndpoint("mock:result").expectedMessageCount(1); + public void someTestA() throws InterruptedException { + MockEndpoint mockEndpoint = getMockEndpoint("mock:result"); + mockEndpoint.expectedBodiesReceived("Some Value"); - // advice the route in one line - AdviceWith.adviceWith(context, "foo", a -> a.weaveAddLast().to("mock:result")); + template.sendBody("direct:startTest", null); - template.sendBody("direct:start", "Bye World"); - - assertMockEndpointsSatisfied(); + mockEndpoint.assertIsSatisfied(); } - @Override - protected RoutesBuilder createRouteBuilder() { - return new RouteBuilder() { - @Override - public void configure() { - from("direct:start").routeId("foo").to("log:foo"); - } - }; + @Test + public void someTestB() throws InterruptedException { + MockEndpoint mockEndpoint = getMockEndpoint("mock:result"); + mockEndpoint.expectedBodiesReceived("Some Value"); + + template.sendBody("direct:startTest", null); + + mockEndpoint.assertIsSatisfied(); } } diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java index 17fa9029a2..dfe0a81e59 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/producedRouteBuilder/ProducedRouteBuilderTest.java @@ -55,7 +55,7 @@ public class ProducedRouteBuilderTest { ContinuousTestingTestUtils utils = new ContinuousTestingTestUtils(); ContinuousTestingTestUtils.TestStatus ts = utils.waitForNextCompletion(); - Assertions.assertEquals(1L, ts.getTestsFailed()); - Assertions.assertEquals(1L, ts.getTestsPassed()); + Assertions.assertEquals(0L, ts.getTestsFailed()); + Assertions.assertEquals(2L, ts.getTestsPassed()); } } diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderFailureTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderFailureTest.java index 8ff06ffbe6..ef8b01e586 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderFailureTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderFailureTest.java @@ -16,9 +16,14 @@ */ package org.apache.camel.quarkus.test.extensions.routeBuilder; +import java.util.logging.Level; + import io.quarkus.test.ContinuousTestingTestUtils; import io.quarkus.test.QuarkusDevModeTest; import org.apache.camel.quarkus.test.extensions.continousDev.HelloResource; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,8 +34,17 @@ import org.junit.jupiter.api.extension.RegisterExtension; public class RouteBuilderFailureTest { @RegisterExtension - static final QuarkusDevModeTest TEST = RouteBuilderUtil.createTestModule(RouteBuilderFailureET.class, - RouteBuilderWarningResource.class, HelloResource.class); + static final QuarkusDevModeTest TEST = new QuarkusDevModeTest() + .setArchiveProducer(() -> { + JavaArchive ja = ShrinkWrap.create(JavaArchive.class) + .addClasses(RouteBuilderFailureET.class, HelloResource.class) + .add(new StringAsset( + ContinuousTestingTestUtils.appProperties("camel-quarkus.junit5.message=Sheldon")), + "application.properties"); + return ja; + }) + .setTestArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class).addClasses(RouteBuilderFailureET.class)) + .setLogRecordPredicate(record -> record.getLevel().equals(Level.WARNING)); @Test public void checkTests() { diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderUtil.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderUtil.java deleted file mode 100644 index 0ba81a2f30..0000000000 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.quarkus.test.extensions.routeBuilder; - -import java.util.logging.Level; - -import io.quarkus.test.ContinuousTestingTestUtils; -import io.quarkus.test.QuarkusDevModeTest; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.StringAsset; -import org.jboss.shrinkwrap.api.spec.JavaArchive; - -public class RouteBuilderUtil { - - static QuarkusDevModeTest createTestModule(Class testClass, Class<?>... archiveClasses) { - QuarkusDevModeTest retVal = new QuarkusDevModeTest() - .setArchiveProducer(() -> { - JavaArchive ja = ShrinkWrap.create(JavaArchive.class) - .addClasses(archiveClasses) - .add(new StringAsset( - ContinuousTestingTestUtils.appProperties("camel-quarkus.junit5.message=Sheldon")), - "application.properties"); - return ja; - }) - .setTestArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class).addClasses(testClass)) - .setLogRecordPredicate(record -> record.getLevel().equals(Level.WARNING)); - - return retVal; - } - -} diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningET.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningET.java index 3a6c04baeb..f3ba2cb8ee 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningET.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningET.java @@ -17,13 +17,11 @@ package org.apache.camel.quarkus.test.extensions.routeBuilder; import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.quarkus.test.CamelQuarkusTestSupport; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import static org.hamcrest.CoreMatchers.is; - @QuarkusTest public class RouteBuilderWarningET extends CamelQuarkusTestSupport { @@ -34,18 +32,7 @@ public class RouteBuilderWarningET extends CamelQuarkusTestSupport { @Test public void helloTest() throws Exception { - RestAssured.given() - .body("Hello (from routeBuilder) ") - .post("/routeBuilder/in") - .then() - .statusCode(204); - - RestAssured.given() - .body("file:target/data/RouteBuilderET?fileName=hello_true.txt") - .post("/hello/message") - .then() - .statusCode(200) - .body(is("Hello (from routeBuilder) Sheldon")); + Assertions.assertTrue(true); } @Override diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithProducedBuilderTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithProducedBuilderTest.java index b35276adcc..c06ce134b7 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithProducedBuilderTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithProducedBuilderTest.java @@ -16,9 +16,13 @@ */ package org.apache.camel.quarkus.test.extensions.routeBuilder; +import java.util.logging.Level; + import io.quarkus.test.ContinuousTestingTestUtils; import io.quarkus.test.QuarkusDevModeTest; -import org.apache.camel.quarkus.test.extensions.continousDev.HelloResource; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -30,8 +34,17 @@ import org.junit.jupiter.api.extension.RegisterExtension; public class RouteBuilderWarningWithProducedBuilderTest { @RegisterExtension - static final QuarkusDevModeTest TEST = RouteBuilderUtil.createTestModule(RouteBuilderWarningET.class, - RouteBuilderWarningResource.class, HelloResource.class, RouteBuilderHello.class); + static final QuarkusDevModeTest TEST = new QuarkusDevModeTest() + .setArchiveProducer(() -> { + JavaArchive ja = ShrinkWrap.create(JavaArchive.class) + .addClasses(RouteProducer.class) + .add(new StringAsset( + ContinuousTestingTestUtils.appProperties("#")), + "application.properties"); + return ja; + }) + .setTestArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class).addClasses(RouteBuilderWarningET.class)) + .setLogRecordPredicate(record -> record.getLevel().equals(Level.WARNING)); @Test public void checkTests() { diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithoutProducedBuilderTest.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithoutProducedBuilderTest.java index ba578bbe19..9436d05368 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithoutProducedBuilderTest.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderWarningWithoutProducedBuilderTest.java @@ -16,9 +16,13 @@ */ package org.apache.camel.quarkus.test.extensions.routeBuilder; +import java.util.logging.Level; + import io.quarkus.test.ContinuousTestingTestUtils; import io.quarkus.test.QuarkusDevModeTest; -import org.apache.camel.quarkus.test.extensions.continousDev.HelloResource; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -30,8 +34,16 @@ import org.junit.jupiter.api.extension.RegisterExtension; public class RouteBuilderWarningWithoutProducedBuilderTest { @RegisterExtension - static final QuarkusDevModeTest TEST = RouteBuilderUtil.createTestModule(RouteBuilderWarningET.class, - RouteBuilderWarningResource.class, HelloResource.class); + static final QuarkusDevModeTest TEST = new QuarkusDevModeTest() + .setArchiveProducer(() -> { + JavaArchive ja = ShrinkWrap.create(JavaArchive.class) + .add(new StringAsset( + ContinuousTestingTestUtils.appProperties("#")), + "application.properties"); + return ja; + }) + .setTestArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class).addClasses(RouteBuilderWarningET.class)) + .setLogRecordPredicate(record -> record.getLevel().equals(Level.WARNING)); @Test public void checkTests() { diff --git a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderHello.java b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteProducer.java similarity index 76% rename from test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderHello.java rename to test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteProducer.java index b20908bb52..618500fafe 100644 --- a/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteBuilderHello.java +++ b/test-framework/junit5-extension-tests/src/test/java/org/apache/camel/quarkus/test/extensions/routeBuilder/RouteProducer.java @@ -16,16 +16,17 @@ */ package org.apache.camel.quarkus.test.extensions.routeBuilder; -import javax.enterprise.context.ApplicationScoped; - import org.apache.camel.builder.RouteBuilder; -@ApplicationScoped -public class RouteBuilderHello extends RouteBuilder { +public class RouteProducer { - @Override - public void configure() { - from("direct:in").routeId("directRoute").to("file:target/data/RouteBuilderET?filename=hello_false.txt"); + @javax.enterprise.inject.Produces + public RouteBuilder routes() { + return new RouteBuilder() { + @Override + public void configure() { + from("direct:in1").to("direct:in2"); + } + }; } - } diff --git a/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CallbackUtil.java b/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CallbackUtil.java index b4f8d3fa56..f01d15d7ed 100644 --- a/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CallbackUtil.java +++ b/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CallbackUtil.java @@ -48,13 +48,15 @@ public class CallbackUtil { static void resetContext(CamelQuarkusTestSupport testInstance) { - //if routeBuilder (from the test) was used, all routes has to be stopped and removed + //if routeBuilder (from the test) was used, all routes from that builder has to be stopped and removed //because routes will be created again (in case of TestInstance.Lifecycle.PER_CLASS, this method is not executed) - if (testInstance.isUseRouteBuilder()) { - try { - testInstance.context().getRouteController().stopAllRoutes(); - testInstance.context().getRouteController().removeAllRoutes(); + if (testInstance.isUseRouteBuilder() && testInstance.createdRoutes != null) { + try { + for (String r : testInstance.createdRoutes) { + testInstance.context().getRouteController().stopRoute(r); + testInstance.context().removeRoute(r); + } } catch (Exception e) { throw new RuntimeException(e); } diff --git a/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CamelQuarkusTestSupport.java b/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CamelQuarkusTestSupport.java index 3baaaebe2c..50f6bd9c6e 100644 --- a/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CamelQuarkusTestSupport.java +++ b/test-framework/junit5/src/main/java/org/apache/camel/quarkus/test/CamelQuarkusTestSupport.java @@ -18,6 +18,8 @@ package org.apache.camel.quarkus.test; import java.util.ArrayList; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; import javax.inject.Inject; @@ -80,6 +82,11 @@ public class CamelQuarkusTestSupport extends CamelTestSupport @Inject protected CamelContext context; + /* + * Set of routes, which were created by routeBuilder. This set is used by some callbacks. + */ + Set<String> createdRoutes; + //------------------------ quarkus callbacks --------------- /** @@ -304,6 +311,12 @@ public class CamelQuarkusTestSupport extends CamelTestSupport if (isUseAdviceWith() || isUseDebugger()) { ((FastCamelContext) context).suspend(); } + + if (isUseRouteBuilder()) { + //save the routeIds of routes existing before setup + createdRoutes = context.getRoutes().stream().map(r -> r.getRouteId()).collect(Collectors.toSet()); + } + super.doPreSetup(); } @@ -326,6 +339,15 @@ public class CamelQuarkusTestSupport extends CamelTestSupport mcc.addRouteDefinitions(rdfs); } } + + if (isUseRouteBuilder()) { + //remove from the routes all routes which existed before setup + var allRoutes = context.getRoutes().stream().map(r -> r.getRouteId()).collect(Collectors.toSet()); + if (createdRoutes != null) { + allRoutes.removeAll(createdRoutes); + } + createdRoutes = allRoutes; + } super.doPostSetup(); } diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse01Test.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse01Test.java index 54e0ff051b..e10d0ce525 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse01Test.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse01Test.java @@ -19,14 +19,12 @@ package org.apache.camel.quarkus.test.common; import java.util.function.BiConsumer; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.TestInstance; // replaces CreateCamelContextPerTestTrueTest @QuarkusTest @TestInstance(TestInstance.Lifecycle.PER_METHOD) -@TestProfile(CallbacksPerTestFalse01Test.class) public class CallbacksPerTestFalse01Test extends AbstractCallbacksTest { public CallbacksPerTestFalse01Test() { diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse02Test.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse02Test.java index f9fbb14544..9bb7834a79 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse02Test.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestFalse02Test.java @@ -19,17 +19,16 @@ package org.apache.camel.quarkus.test.common; import java.util.concurrent.TimeUnit; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; import org.hamcrest.Matchers; +import org.junit.jupiter.api.Test; import static org.awaitility.Awaitility.await; // replaces CreateCamelContextPerTestTrueTest @QuarkusTest -@TestProfile(CallbacksPerTestFalse01Test.class) public class CallbacksPerTestFalse02Test { - // @Test + @Test public void testAfter01Class() { await().atMost(5, TimeUnit.SECONDS).until(() -> AbstractCallbacksTest.testFromAnotherClass( diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue01Test.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue01Test.java index 54bcbfdcc3..b765ef6b0d 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue01Test.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue01Test.java @@ -19,14 +19,12 @@ package org.apache.camel.quarkus.test.common; import java.util.function.BiConsumer; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.TestInstance; // replaces CreateCamelContextPerTestTrueTest @QuarkusTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) -@TestProfile(CallbacksPerTestTrue01Test.class) public class CallbacksPerTestTrue01Test extends AbstractCallbacksTest { public CallbacksPerTestTrue01Test() { diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue02Test.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue02Test.java index 777c3b97e4..472d5d319f 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue02Test.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/common/CallbacksPerTestTrue02Test.java @@ -19,7 +19,6 @@ package org.apache.camel.quarkus.test.common; import java.util.concurrent.TimeUnit; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; @@ -27,7 +26,6 @@ import static org.awaitility.Awaitility.await; // replaces CreateCamelContextPerTestTrueTest @QuarkusTest -@TestProfile(CallbacksPerTestTrue01Test.class) public class CallbacksPerTestTrue02Test { @Test diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java index ef19a48b33..b773c49b37 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/junit5/patterns/AdviceWithLambdaTest.java @@ -17,6 +17,7 @@ package org.apache.camel.quarkus.test.junit5.patterns; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.TestProfile; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.AdviceWith; import org.apache.camel.builder.RouteBuilder; @@ -24,6 +25,7 @@ import org.apache.camel.quarkus.test.CamelQuarkusTestSupport; import org.junit.jupiter.api.Test; @QuarkusTest +@TestProfile(AdviceWithLambdaTest.class) public class AdviceWithLambdaTest extends CamelQuarkusTestSupport { @Override diff --git a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/userTestCases/AdviceInDoBeforeEachMethodsTest.java b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/userTestCases/AdviceInDoBeforeEachMethodsTest.java index 159d352c49..d3df9b6662 100644 --- a/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/userTestCases/AdviceInDoBeforeEachMethodsTest.java +++ b/test-framework/junit5/src/test/java/org/apache/camel/quarkus/test/userTestCases/AdviceInDoBeforeEachMethodsTest.java @@ -19,7 +19,6 @@ package org.apache.camel.quarkus.test.userTestCases; import javax.inject.Inject; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.TestProfile; import io.quarkus.test.junit.callback.QuarkusTestMethodContext; import org.apache.camel.CamelContext; import org.apache.camel.EndpointInject; @@ -36,7 +35,6 @@ import org.junit.jupiter.api.Test; * Test for https://github.com/apache/camel-quarkus/issues/4362 */ @QuarkusTest -@TestProfile(AdviceInDoBeforeEachMethodsTest.class) public class AdviceInDoBeforeEachMethodsTest extends CamelQuarkusTestSupport { @Produce("direct:ftp")