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 cf70bd27ab064..dbb1bdfd22e81 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.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 void testNoDN() throws Exception { } @Test - public void testNoDNForFunctionDrivenOperation() throws Exception { + void testNoDNForFunctionDrivenOperation() throws Exception { Exchange exchange = new DefaultExchange(context); Message in = new DefaultMessage(context); + @SuppressWarnings("unchecked") + BiFunction function = mock(BiFunction.class); + Map 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 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 e479a1c97c3d8..0c82dd05fdcdb 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 414b8d39fbaf1..323ecc9350444 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 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.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 void before() { } @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 void withoutHeader() throws Exception { 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 void removeCamelInternalHeaderAttributes() throws Exception { 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 void consumerWithHeader() throws Exception { 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 void producerWithHeader() throws Exception { 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 void withoutAttachment() throws Exception { filter.filterConsumer(exchange, message); filter.filterProducer(exchange, message); - Assertions.assertThat(message.getAttachments()).isExhausted(); + assertThat(message.getAttachments()).isExhausted(); } @Test @@ -155,8 +170,8 @@ public void producerWithAttachment() throws Exception { 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 void consumerWithAttachment() throws Exception { 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 d1674c90f78dd..c99a7252c9b89 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 @@ /** * */ -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 ee191ff1a5f92..6d2a019f746c5 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 void testInjectionPoints() throws Exception { "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 b98b3883ba125..ee51b792c33b1 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 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 @@ protected AbstractXmlApplicationContext createApplicationContext() { } @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 163cfccf5be89..fe8c1e203b28a 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 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 @@ protected AbstractXmlApplicationContext createApplicationContext() { } @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 69a857e65f229..f76486f9328fc 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 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 @@ protected AbstractXmlApplicationContext createApplicationContext() { } @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 0326e3be58954..806d66bc39c09 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 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 5fcce9a244d59..080a2858503b5 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 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 c160283fcba25..c54afaf2a29e9 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 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 @@ protected AbstractXmlApplicationContext createApplicationContext() { @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 void setUp() throws Exception { 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 b31d33810ef1e..33a5c85604b82 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 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 @@ protected AbstractXmlApplicationContext createApplicationContext() { @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 void setUp() throws Exception { 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 9b18dda143282..eae406bc57b6a 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.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 void setUp() throws Exception { "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 0ca5363f62b52..e363ebefc3ad1 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 @@ protected CamelContext createCamelContext() throws Exception { }); 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 631be60bc490c..e1eff40e10fd7 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 395f7bfdc52bb..aaca610ae303b 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 @@ protected CamelContext createCamelContext() throws Exception { 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 d8ebedf5d9262..c839cb48b07fc 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 @@ protected CamelContext createCamelContext() throws Exception { 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 77dd96becbf1b..1f70b54fe1ef7 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.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"); } }