This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 4417adcb0e99 (chores): fix SonarCloud S2699 test assertions in
camel-spring-parent (#24856)
4417adcb0e99 is described below
commit 4417adcb0e99a07c8501c86bc72e3304b7372252
Author: Guillaume Nodet <[email protected]>
AuthorDate: Thu Jul 23 16:03:11 2026 +0200
(chores): fix SonarCloud S2699 test assertions in camel-spring-parent
(#24856)
Fix SonarCloud S2699 (tests without assertions) in camel-spring-parent test
files.
Changes across 18 test files:
- Replace shallow assertDoesNotThrow() wrappers with meaningful assertions
that verify actual behavior
- Move assertions from setUp() / createCamelContext() into test methods so
the test itself is self-contained
- Add @Disabled annotation (with reason) to test stubs instead of fake
assertions
- Verify tracing is enabled and route processing works correctly in
SpringTraceTest
- Verify message delivery through @Produce-injected template in
MyCoolBeanTest (using Exchange result assertions)
- Drop public modifier from test classes and test methods (JUnit 5 does not
require it)
- Use AssertJ assertThatCode().doesNotThrowAnyException() for null-safety
tests (consistent with rest of file)
Co-authored-by: Claude Opus 4.6 <[email protected]>
---
.../springldap/SpringLdapProducerTest.java | 12 +++--
.../integration/RabbitMQProducerSimpleIT.java | 12 +++--
.../ws/filter/impl/BasicMessageFilterTest.java | 63 +++++++++++++---------
.../SpringTokenXMLPairNamespaceSplitTest.java | 6 ++-
.../org/apache/camel/spring/InjectedBeanTest.java | 6 ++-
.../ErrorHandlerCamelContextRefNotFoundTest.java | 22 ++++----
.../ErrorHandlerRouteContextRefNotFoundTest.java | 22 ++++----
.../OnExceptionNoExceptionConfiguredTest.java | 12 ++---
.../camel/spring/config/SpringRouteNoFromTest.java | 13 +++--
.../spring/config/SpringRouteNoOutputTest.java | 13 +++--
...gDeadLetterChannelInvalidDeadLetterUriTest.java | 12 ++---
...etterChannelInvalidOptionDeadLetterUriTest.java | 12 ++---
...ringDoubleLoadBalancerMisconfigurationTest.java | 12 ++---
.../SpringRouteTopLevelMisconfiguredTest.java | 20 ++++---
.../camel/spring/processor/SpringTraceTest.java | 27 +++++++++-
.../processor/SpringTryCatchMisconfiguredTest.java | 20 ++++---
...ingTryCatchMustHaveExceptionConfiguredTest.java | 20 ++++---
.../camel/spring/produce/MyCoolBeanTest.java | 30 +++++++++--
18 files changed, 201 insertions(+), 133 deletions(-)
diff --git
a/components/camel-spring-parent/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java
b/components/camel-spring-parent/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java
index cf70bd27ab06..dbb1bdfd22e8 100644
---
a/components/camel-spring-parent/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java
+++
b/components/camel-spring-parent/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java
@@ -49,7 +49,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@MockitoSettings(strictness = Strictness.LENIENT)
-public class SpringLdapProducerTest extends CamelTestSupport {
+class SpringLdapProducerTest extends CamelTestSupport {
@Mock
private SpringLdapEndpoint ldapEndpoint;
@@ -60,7 +60,7 @@ public class SpringLdapProducerTest extends CamelTestSupport {
private SpringLdapProducer ldapProducer;
@Override
- public void doPostSetup() {
+ protected void doPostSetup() {
when(ldapEndpoint.getLdapTemplate()).thenReturn(ldapTemplate);
ldapProducer = new SpringLdapProducer(ldapEndpoint);
}
@@ -95,16 +95,20 @@ public class SpringLdapProducerTest extends
CamelTestSupport {
}
@Test
- public void testNoDNForFunctionDrivenOperation() throws Exception {
+ void testNoDNForFunctionDrivenOperation() throws Exception {
Exchange exchange = new DefaultExchange(context);
Message in = new DefaultMessage(context);
+ @SuppressWarnings("unchecked")
+ BiFunction<LdapOperations, Object, ?> function =
mock(BiFunction.class);
+
Map<String, Object> body = new HashMap<>();
- body.put(SpringLdapProducer.FUNCTION, mock(BiFunction.class));
+ body.put(SpringLdapProducer.FUNCTION, function);
when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.FUNCTION_DRIVEN);
processBody(exchange, in, body);
+ verify(function).apply(eq(ldapTemplate), isNull());
}
private void processBody(Exchange exchange, Message message, Map<String,
Object> body) throws Exception {
diff --git
a/components/camel-spring-parent/camel-spring-rabbitmq/src/test/java/org/apache/camel/component/springrabbit/integration/RabbitMQProducerSimpleIT.java
b/components/camel-spring-parent/camel-spring-rabbitmq/src/test/java/org/apache/camel/component/springrabbit/integration/RabbitMQProducerSimpleIT.java
index e479a1c97c3d..0c82dd05fdcd 100644
---
a/components/camel-spring-parent/camel-spring-rabbitmq/src/test/java/org/apache/camel/component/springrabbit/integration/RabbitMQProducerSimpleIT.java
+++
b/components/camel-spring-parent/camel-spring-rabbitmq/src/test/java/org/apache/camel/component/springrabbit/integration/RabbitMQProducerSimpleIT.java
@@ -16,15 +16,21 @@
*/
package org.apache.camel.component.springrabbit.integration;
+import org.apache.camel.Exchange;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.junit.jupiter.api.Test;
-public class RabbitMQProducerSimpleIT extends RabbitMQITSupport {
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+class RabbitMQProducerSimpleIT extends RabbitMQITSupport {
@Test
- public void testProducer() throws Exception {
- template.sendBody("direct:start", "Hello World");
+ void testProducer() {
+ Exchange result = template.send("direct:start", e ->
e.getMessage().setBody("Hello World"));
+ assertFalse(result.isFailed(), "Exchange should complete without
error");
+ assertNull(result.getException(), "Exchange should have no exception");
}
@Override
diff --git
a/components/camel-spring-parent/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java
b/components/camel-spring-parent/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java
index 414b8d39fbaf..323ecc935044 100644
---
a/components/camel-spring-parent/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java
+++
b/components/camel-spring-parent/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/filter/impl/BasicMessageFilterTest.java
@@ -23,7 +23,6 @@ import javax.xml.namespace.QName;
import org.apache.camel.attachment.AttachmentMessage;
import org.apache.camel.component.spring.ws.SpringWebserviceConstants;
import org.apache.camel.test.junit6.ExchangeTestSupport;
-import org.assertj.core.api.Assertions;
import org.assertj.core.util.Streams;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -32,7 +31,10 @@ import org.springframework.ws.pox.dom.DomPoxMessageFactory;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
-public class BasicMessageFilterTest extends ExchangeTestSupport {
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+
+class BasicMessageFilterTest extends ExchangeTestSupport {
private BasicMessageFilter filter;
private SoapMessage message;
@@ -46,23 +48,36 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
}
@Test
- public void testNulls() throws Exception {
- filter.filterConsumer(null, null);
- filter.filterProducer(null, null);
+ void testNulls() {
+ // Verify null-safety: each method should handle null arguments
gracefully
+ assertThatCode(() -> filter.filterConsumer(null,
null)).doesNotThrowAnyException();
+ assertThatCode(() -> filter.filterProducer(null,
null)).doesNotThrowAnyException();
}
@Test
- public void testNullsWithExchange() throws Exception {
+ void testNullsWithExchange() {
+ // capture exchange state before filtering with null message
+ int headerCountBefore = exchange.getIn().getHeaders().size();
+ Object bodyBefore = exchange.getIn().getBody();
+
filter.filterConsumer(exchange, null);
filter.filterProducer(exchange, null);
+
+ // verify the exchange was not modified when message is null
+ assertThat(exchange.getIn().getHeaders()).hasSize(headerCountBefore);
+ assertThat(exchange.getIn().getBody()).isEqualTo(bodyBefore);
}
@Test
- public void nonSoapMessageShouldBeSkipped() throws Exception {
+ void nonSoapMessageShouldBeSkipped() {
DomPoxMessage domPoxMessage = new
DomPoxMessageFactory().createWebServiceMessage();
+
filter.filterConsumer(exchange, domPoxMessage);
filter.filterProducer(exchange, domPoxMessage);
+ // verify the exchange headers were not modified for non-SOAP messages
+ assertThat(exchange.getIn().getHeader("foo")).isEqualTo("abc");
+ assertThat(exchange.getIn().getHeader("bar")).isEqualTo(123);
}
@Test
@@ -80,10 +95,10 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterProducer(exchange, message);
filter.filterConsumer(exchange, message);
- Assertions.assertThat(message.getAttachments()).isExhausted();
-
Assertions.assertThat(message.getSoapHeader().examineAllHeaderElements()).isExhausted();
+ assertThat(message.getAttachments()).isExhausted();
+
assertThat(message.getSoapHeader().examineAllHeaderElements()).isExhausted();
-
Assertions.assertThat(message.getSoapHeader().getAllAttributes()).isExhausted();
+ assertThat(message.getSoapHeader().getAllAttributes()).isExhausted();
}
@Test
@@ -102,10 +117,10 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterConsumer(exchange, message);
- Assertions.assertThat(message.getAttachments()).isExhausted();
-
Assertions.assertThat(message.getSoapHeader().examineAllHeaderElements()).isExhausted();
+ assertThat(message.getAttachments()).isExhausted();
+
assertThat(message.getSoapHeader().examineAllHeaderElements()).isExhausted();
-
Assertions.assertThat(message.getSoapHeader().getAllAttributes()).isExhausted();
+ assertThat(message.getSoapHeader().getAllAttributes()).isExhausted();
}
@Test
@@ -114,12 +129,12 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
exchange.getOut().getHeaders().put("headerAttributeElement", new
QName("http://shouldBeInHeader", "myElement"));
filter.filterConsumer(exchange, message);
- Assertions.assertThat(message.getAttachments()).isExhausted();
+ assertThat(message.getAttachments()).isExhausted();
-
Assertions.assertThat(Streams.stream(message.getSoapHeader().examineAllHeaderElements()).toList()).isNotEmpty()
+
assertThat(Streams.stream(message.getSoapHeader().examineAllHeaderElements()).toList()).isNotEmpty()
.hasSize(1);
-
Assertions.assertThat(Streams.stream(message.getSoapHeader().getAllAttributes()).toList()).isNotEmpty().hasSize(1);
+
assertThat(Streams.stream(message.getSoapHeader().getAllAttributes()).toList()).isNotEmpty().hasSize(1);
}
@@ -131,12 +146,12 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterProducer(exchange, message);
- Assertions.assertThat(message.getAttachments()).isExhausted();
+ assertThat(message.getAttachments()).isExhausted();
-
Assertions.assertThat(Streams.stream(message.getSoapHeader().examineAllHeaderElements()).toList()).isNotEmpty()
+
assertThat(Streams.stream(message.getSoapHeader().examineAllHeaderElements()).toList()).isNotEmpty()
.hasSize(1);
-
Assertions.assertThat(Streams.stream(message.getSoapHeader().getAllAttributes()).toList()).isNotEmpty().hasSize(2);
+
assertThat(Streams.stream(message.getSoapHeader().getAllAttributes()).toList()).isNotEmpty().hasSize(2);
}
@@ -145,7 +160,7 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterConsumer(exchange, message);
filter.filterProducer(exchange, message);
- Assertions.assertThat(message.getAttachments()).isExhausted();
+ assertThat(message.getAttachments()).isExhausted();
}
@Test
@@ -155,8 +170,8 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterProducer(exchange, message);
-
Assertions.assertThat(Streams.stream(message.getAttachments()).toList()).isNotEmpty();
-
Assertions.assertThat(message.getAttachment("testAttachment")).isNotNull();
+
assertThat(Streams.stream(message.getAttachments()).toList()).isNotEmpty();
+ assertThat(message.getAttachment("testAttachment")).isNotNull();
}
@Test
@@ -166,7 +181,7 @@ public class BasicMessageFilterTest extends
ExchangeTestSupport {
filter.filterConsumer(exchange, message);
-
Assertions.assertThat(Streams.stream(message.getAttachments()).toList()).isNotEmpty();
-
Assertions.assertThat(message.getAttachment("testAttachment")).isNotNull();
+
assertThat(Streams.stream(message.getAttachments()).toList()).isNotEmpty();
+ assertThat(message.getAttachment("testAttachment")).isNotNull();
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/language/SpringTokenXMLPairNamespaceSplitTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/language/SpringTokenXMLPairNamespaceSplitTest.java
index d1674c90f78d..c99a7252c9b8 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/language/SpringTokenXMLPairNamespaceSplitTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/language/SpringTokenXMLPairNamespaceSplitTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.language;
import org.apache.camel.CamelContext;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
@@ -24,16 +25,17 @@ import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCam
/**
*
*/
-public class SpringTokenXMLPairNamespaceSplitTest extends
TokenXMLPairNamespaceSplitTest {
+class SpringTokenXMLPairNamespaceSplitTest extends
TokenXMLPairNamespaceSplitTest {
@Override
protected CamelContext createCamelContext() throws Exception {
return createSpringCamelContext(this,
"org/apache/camel/language/SpringTokenXMLPairNamespaceSplitTest.xml");
}
+ @Disabled("Not applicable for Spring XML variant")
@Override
@Test
- public void testTokenXMLPair2() throws Exception {
+ public void testTokenXMLPair2() {
// noop
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/InjectedBeanTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/InjectedBeanTest.java
index ee191ff1a5f9..6d2a019f746c 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/InjectedBeanTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/InjectedBeanTest.java
@@ -17,13 +17,14 @@
package org.apache.camel.spring;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-public class InjectedBeanTest extends SpringTestSupport {
+class InjectedBeanTest extends SpringTestSupport {
protected InjectedBean bean;
@Test
@@ -56,8 +57,9 @@ public class InjectedBeanTest extends SpringTestSupport {
"No PollingConsumer injected for
getPropertyInjectedPollingConsumer()");
}
+ @Disabled("Empty test stub — no send/receive logic implemented")
@Test
- public void testSendAndReceive() throws Exception {
+ void testSendAndReceive() {
}
@Override
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
index b98b3883ba12..ee51b792c33b 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
@@ -27,19 +27,12 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class ErrorHandlerCamelContextRefNotFoundTest extends SpringTestSupport
{
+class ErrorHandlerCamelContextRefNotFoundTest extends SpringTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- Exception e = assertThrows(Exception.class, () -> {
- super.setUp();
- });
- FailedToCreateRouteException cause =
assertIsInstanceOf(FailedToCreateRouteException.class, e);
- NoSuchBeanException nsbe =
assertIsInstanceOf(NoSuchBeanException.class, cause.getCause());
- assertEquals(
- "No bean could be found in the registry for: foo of type:
org.apache.camel.ErrorHandlerFactory",
- nsbe.getMessage());
+ // Do NOT call super.setUp() — this test validates that context
creation fails
}
@Override
@@ -48,7 +41,14 @@ public class ErrorHandlerCamelContextRefNotFoundTest extends
SpringTestSupport {
}
@Test
- public void testDummy() {
- // noop
+ void testErrorHandlerCamelContextRefNotFound() throws Exception {
+ Exception e = assertThrows(Exception.class, () -> {
+ super.setUp();
+ });
+ FailedToCreateRouteException cause =
assertIsInstanceOf(FailedToCreateRouteException.class, e);
+ NoSuchBeanException nsbe =
assertIsInstanceOf(NoSuchBeanException.class, cause.getCause());
+ assertEquals(
+ "No bean could be found in the registry for: foo of type:
org.apache.camel.ErrorHandlerFactory",
+ nsbe.getMessage());
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerRouteContextRefNotFoundTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerRouteContextRefNotFoundTest.java
index 163cfccf5be8..fe8c1e203b28 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerRouteContextRefNotFoundTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/ErrorHandlerRouteContextRefNotFoundTest.java
@@ -27,19 +27,12 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class ErrorHandlerRouteContextRefNotFoundTest extends SpringTestSupport
{
+class ErrorHandlerRouteContextRefNotFoundTest extends SpringTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- Exception e = assertThrows(Exception.class, () -> {
- super.setUp();
- });
- FailedToCreateRouteException cause =
assertIsInstanceOf(FailedToCreateRouteException.class, e);
- NoSuchBeanException nsbe =
assertIsInstanceOf(NoSuchBeanException.class, cause.getCause());
- assertEquals(
- "No bean could be found in the registry for: bar of type:
org.apache.camel.ErrorHandlerFactory",
- nsbe.getMessage());
+ // Do NOT call super.setUp() — this test validates that context
creation fails
}
@Override
@@ -48,7 +41,14 @@ public class ErrorHandlerRouteContextRefNotFoundTest extends
SpringTestSupport {
}
@Test
- public void testDummy() {
- // noop
+ void testErrorHandlerRouteContextRefNotFound() throws Exception {
+ Exception e = assertThrows(Exception.class, () -> {
+ super.setUp();
+ });
+ FailedToCreateRouteException cause =
assertIsInstanceOf(FailedToCreateRouteException.class, e);
+ NoSuchBeanException nsbe =
assertIsInstanceOf(NoSuchBeanException.class, cause.getCause());
+ assertEquals(
+ "No bean could be found in the registry for: bar of type:
org.apache.camel.ErrorHandlerFactory",
+ nsbe.getMessage());
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java
index 69a857e65f22..f76486f9328f 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java
@@ -24,14 +24,12 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class OnExceptionNoExceptionConfiguredTest extends SpringTestSupport {
+class OnExceptionNoExceptionConfiguredTest extends SpringTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- assertThrows(Exception.class, () -> {
- super.setUp();
- });
+ // Do NOT call super.setUp() — this test validates that context
creation fails
}
@Override
@@ -40,7 +38,9 @@ public class OnExceptionNoExceptionConfiguredTest extends
SpringTestSupport {
}
@Test
- public void testDummy() {
- // noop
+ void testOnExceptionNoExceptionConfigured() throws Exception {
+ assertThrows(Exception.class, () -> {
+ super.setUp();
+ });
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoFromTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoFromTest.java
index 0326e3be5895..806d66bc39c0 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoFromTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoFromTest.java
@@ -25,24 +25,23 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class SpringRouteNoFromTest extends SpringTestSupport {
+class SpringRouteNoFromTest extends SpringTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- createApplicationContext();
+ // Do NOT call super.setUp() — this test validates that context
creation fails
}
@Test
- public void testRouteNoFrom() {
- // noop
+ void testRouteNoFrom() {
+ assertThrows(RuntimeCamelException.class, () -> {
+ new
ClassPathXmlApplicationContext("org/apache/camel/spring/config/SpringRouteNoFromTest.xml");
+ });
}
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
- assertThrows(RuntimeCamelException.class, () -> {
- new
ClassPathXmlApplicationContext("org/apache/camel/spring/config/SpringRouteNoFromTest.xml");
- });
return null;
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoOutputTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoOutputTest.java
index 5fcce9a244d5..080a2858503b 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoOutputTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/config/SpringRouteNoOutputTest.java
@@ -25,24 +25,23 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class SpringRouteNoOutputTest extends SpringTestSupport {
+class SpringRouteNoOutputTest extends SpringTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
- createApplicationContext();
+ // Do NOT call super.setUp() — this test validates that context
creation fails
}
@Test
- public void testRouteNoOutput() {
- // noop
+ void testRouteNoOutput() {
+ assertThrows(RuntimeCamelException.class, () -> {
+ new
ClassPathXmlApplicationContext("org/apache/camel/spring/config/SpringRouteNoOutputTest.xml");
+ });
}
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
- assertThrows(RuntimeCamelException.class, () -> {
- new
ClassPathXmlApplicationContext("org/apache/camel/spring/config/SpringRouteNoOutputTest.xml");
- });
return null;
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidDeadLetterUriTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidDeadLetterUriTest.java
index c160283fcba2..c54afaf2a29e 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidDeadLetterUriTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidDeadLetterUriTest.java
@@ -27,7 +27,7 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class SpringDeadLetterChannelInvalidDeadLetterUriTest extends
SpringTestSupport {
+class SpringDeadLetterChannelInvalidDeadLetterUriTest extends
SpringTestSupport {
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
@@ -38,6 +38,11 @@ public class SpringDeadLetterChannelInvalidDeadLetterUriTest
extends SpringTestS
@Override
@BeforeEach
public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testInvalidUri() throws Exception {
Exception e = assertThrows(Exception.class, () -> {
super.setUp();
});
@@ -48,9 +53,4 @@ public class SpringDeadLetterChannelInvalidDeadLetterUriTest
extends SpringTestS
cause.getMessage());
}
- @Test
- public void testInvalidUri() throws Exception {
- // noop
- }
-
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidOptionDeadLetterUriTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidOptionDeadLetterUriTest.java
index b31d33810ef1..33a5c85604b8 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidOptionDeadLetterUriTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDeadLetterChannelInvalidOptionDeadLetterUriTest.java
@@ -27,7 +27,7 @@ import
org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class SpringDeadLetterChannelInvalidOptionDeadLetterUriTest extends
SpringTestSupport {
+class SpringDeadLetterChannelInvalidOptionDeadLetterUriTest extends
SpringTestSupport {
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
@@ -38,6 +38,11 @@ public class
SpringDeadLetterChannelInvalidOptionDeadLetterUriTest extends Sprin
@Override
@BeforeEach
public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testInvalidOptionUri() throws Exception {
Exception e = assertThrows(Exception.class, () -> {
super.setUp();
});
@@ -46,9 +51,4 @@ public class
SpringDeadLetterChannelInvalidOptionDeadLetterUriTest extends Sprin
assertTrue(cause.getMessage().endsWith("Unknown
parameters=[{foo=bar}]"));
}
- @Test
- public void testInvalidOptionUri() throws Exception {
- // noop
- }
-
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDoubleLoadBalancerMisconfigurationTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDoubleLoadBalancerMisconfigurationTest.java
index 9b18dda14328..eae406bc57b6 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDoubleLoadBalancerMisconfigurationTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringDoubleLoadBalancerMisconfigurationTest.java
@@ -26,11 +26,16 @@ import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCam
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class SpringDoubleLoadBalancerMisconfigurationTest extends
ContextTestSupport {
+class SpringDoubleLoadBalancerMisconfigurationTest extends ContextTestSupport {
@Override
@BeforeEach
public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testDummy() throws Exception {
Exception e = assertThrows(Exception.class, () -> {
super.setUp();
});
@@ -40,11 +45,6 @@ public class SpringDoubleLoadBalancerMisconfigurationTest
extends ContextTestSup
"Loadbalancer already configured to: RandomLoadBalancer.
Cannot set it to: LoadBalanceType[RoundRobinLoadBalancer"));
}
- @Test
- public void testDummy() {
- // noop
- }
-
@Override
protected CamelContext createCamelContext() throws Exception {
return createSpringCamelContext(this,
"org/apache/camel/spring/processor/DoubleLoadBalancerMisconfigurationTest.xml");
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringRouteTopLevelMisconfiguredTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringRouteTopLevelMisconfiguredTest.java
index 0ca5363f62b5..e363ebefc3ad 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringRouteTopLevelMisconfiguredTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringRouteTopLevelMisconfiguredTest.java
@@ -16,19 +16,25 @@
*/
package org.apache.camel.spring.processor;
-import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.RuntimeCamelException;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-public class SpringRouteTopLevelMisconfiguredTest extends ContextTestSupport {
+class SpringRouteTopLevelMisconfiguredTest extends ContextTestSupport {
@Override
- protected CamelContext createCamelContext() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testMisconfigured() throws Exception {
RuntimeCamelException e1 = assertThrows(RuntimeCamelException.class,
() -> {
createSpringCamelContext(this,
"org/apache/camel/spring/processor/SpringRouteTopLevelOnExceptionMisconfiguredTest.xml");
@@ -49,14 +55,6 @@ public class SpringRouteTopLevelMisconfiguredTest extends
ContextTestSupport {
});
IllegalArgumentException iae3 =
assertIsInstanceOf(IllegalArgumentException.class, e3.getCause());
assertTrue(iae3.getMessage().startsWith("The output must be added as
top-level on the route."));
-
- // return a working context instead, to let this test pass
- return createSpringCamelContext(this,
"org/apache/camel/spring/processor/convertBody.xml");
- }
-
- @Test
- public void testMisconfigured() {
- // noop
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
index 631be60bc490..e1eff40e10fd 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTraceTest.java
@@ -16,21 +16,44 @@
*/
package org.apache.camel.spring.processor;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spring.SpringRunWithTestSupport;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
@ContextConfiguration
-public class SpringTraceTest extends SpringRunWithTestSupport {
+class SpringTraceTest extends SpringRunWithTestSupport {
@Autowired
protected ProducerTemplate camelTemplate;
@Test
- public void testTracing() throws Exception {
+ void testTracing() throws Exception {
+ CamelContext camelContext = camelTemplate.getCamelContext();
+
+ // Verify that tracing is enabled by the Spring XML configuration
(trace="true")
+ assertEquals(Boolean.TRUE, camelContext.isTracing(), "Tracing should
be enabled");
+ assertNotNull(camelContext.getTracer(), "Tracer should be available");
+ assertTrue(camelContext.getTracer().isEnabled(), "Tracer should be
enabled");
+
+ MockEndpoint mock = camelContext.getEndpoint("mock:result",
MockEndpoint.class);
+ mock.expectedMessageCount(2);
+ // The route sets header "someHeader" to "${in.body} World!" — verify
the traced route processes correctly
+ mock.message(0).header("someHeader").isEqualTo("Hello World!");
+ mock.message(1).header("someHeader").isEqualTo("1234 World!");
+
camelTemplate.sendBody("Hello");
camelTemplate.sendBody(1234);
+
+ MockEndpoint.assertIsSatisfied(camelContext, 10, TimeUnit.SECONDS);
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMisconfiguredTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMisconfiguredTest.java
index 395f7bfdc52b..aaca610ae303 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMisconfiguredTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMisconfiguredTest.java
@@ -16,19 +16,25 @@
*/
package org.apache.camel.spring.processor;
-import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.FailedToCreateRouteException;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class SpringTryCatchMisconfiguredTest extends ContextTestSupport {
+class SpringTryCatchMisconfiguredTest extends ContextTestSupport {
@Override
- protected CamelContext createCamelContext() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testTryCatchMisconfigured() throws Exception {
Exception e1 = assertThrows(Exception.class, () -> {
createSpringCamelContext(this,
"org/apache/camel/spring/processor/SpringTryCatchMisconfiguredTest.xml");
});
@@ -44,14 +50,6 @@ public class SpringTryCatchMisconfiguredTest extends
ContextTestSupport {
FailedToCreateRouteException ftcre =
assertIsInstanceOf(FailedToCreateRouteException.class, e2);
IllegalArgumentException iae2 =
assertIsInstanceOf(IllegalArgumentException.class, ftcre.getCause());
assertEquals("This doFinally should have a doTry as its parent on
DoFinally[[to[mock:finally]]]", iae2.getMessage());
-
- // return a working context instead, to let this test pass
- return createSpringCamelContext(this,
"org/apache/camel/spring/processor/convertBody.xml");
- }
-
- @Test
- public void testTryCatchMisconfigured() {
- // noop
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMustHaveExceptionConfiguredTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMustHaveExceptionConfiguredTest.java
index d8ebedf5d926..c839cb48b07f 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMustHaveExceptionConfiguredTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTryCatchMustHaveExceptionConfiguredTest.java
@@ -16,19 +16,25 @@
*/
package org.apache.camel.spring.processor;
-import org.apache.camel.CamelContext;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.FailedToCreateRouteException;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-public class SpringTryCatchMustHaveExceptionConfiguredTest extends
ContextTestSupport {
+class SpringTryCatchMustHaveExceptionConfiguredTest extends ContextTestSupport
{
@Override
- protected CamelContext createCamelContext() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
+ // Do NOT call super.setUp() — this test validates that context
creation fails
+ }
+
+ @Test
+ void testTryCatchMustHaveExceptionConfigured() throws Exception {
Exception e = assertThrows(Exception.class, () -> {
createSpringCamelContext(this,
"org/apache/camel/spring/processor/SpringTryCatchMustHaveExceptionConfiguredTest.xml");
@@ -36,14 +42,6 @@ public class SpringTryCatchMustHaveExceptionConfiguredTest
extends ContextTestSu
FailedToCreateRouteException ftcre =
assertIsInstanceOf(FailedToCreateRouteException.class, e);
IllegalArgumentException iae =
assertIsInstanceOf(IllegalArgumentException.class, ftcre.getCause());
assertEquals("At least one Exception must be configured to catch",
iae.getMessage());
-
- // return a working context instead, to let this test pass
- return createSpringCamelContext(this,
"org/apache/camel/spring/processor/convertBody.xml");
- }
-
- @Test
- public void testTryCatchMustHaveExceptionConfigured() {
- // noop
}
}
diff --git
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/produce/MyCoolBeanTest.java
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/produce/MyCoolBeanTest.java
index 77dd96becbf1..1f70b54fe1ef 100644
---
a/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/produce/MyCoolBeanTest.java
+++
b/components/camel-spring-parent/camel-spring-xml/src/test/java/org/apache/camel/spring/produce/MyCoolBeanTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.spring.produce;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,16 +25,38 @@ import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
@ContextConfiguration
@ExtendWith(SpringExtension.class)
-public class MyCoolBeanTest {
+class MyCoolBeanTest {
@Autowired
ApplicationContext applicationContext;
@Test
- public void testProducerTemplate() throws Exception {
+ void testProducerTemplate() {
MyCoolBean cool = applicationContext.getBean("cool", MyCoolBean.class);
- cool.sendMsg();
+ assertNotNull(cool, "MyCoolBean should be resolved from application
context");
+ assertNotNull(cool.producer, "ProducerTemplate should be injected via
@Produce annotation");
+
+ // Verify the @Produce annotation correctly wired the template to
log:foo
+ assertNotNull(cool.producer.getDefaultEndpoint(), "Default endpoint
should be configured via @Produce");
+ assertEquals("log://foo",
cool.producer.getDefaultEndpoint().getEndpointUri(),
+ "ProducerTemplate should target log:foo");
+
+ // Verify the CamelContext is started (required for message delivery)
+ CamelContext camelContext =
applicationContext.getBean(CamelContext.class);
+ assertTrue(camelContext.getStatus().isStarted(), "CamelContext should
be started");
+
+ // Verify message delivery through the @Produce-injected template
+ Exchange result =
cool.producer.send(cool.producer.getDefaultEndpoint(),
+ e -> e.getMessage().setBody("Hello World"));
+ assertFalse(result.isFailed(), "Message delivery to log:foo should
succeed");
+ assertNull(result.getException(), "No exception should occur during
message delivery");
}
}