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");
     }
 }


Reply via email to