You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2023/02/17 21:08:05 UTC
[camel-quarkus] 07/08: Multiple test methods do not work when extending CamelQuarkusTestSupport #4560
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 <on...@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")