From ffdc992f2e5c758a3e0f9d3779d5ad4acce2106b Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Fri, 22 Oct 2021 15:28:26 -0400 Subject: [PATCH] Rework `JpaOutboundGatewayParserTests` to JUnit 5 --- ...JpaOutboundGatewayParserTests-context.xml} | 9 +-- .../xml/JpaOutboundGatewayParserTests.java | 78 +++++++------------ 2 files changed, 31 insertions(+), 56 deletions(-) rename spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/{JpaOutboundGatewayParserTests.xml => JpaOutboundGatewayParserTests-context.xml} (95%) diff --git a/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.xml b/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests-context.xml similarity index 95% rename from spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.xml rename to spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests-context.xml index da46703afe..b6d2336f64 100644 --- a/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.xml +++ b/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests-context.xml @@ -88,14 +88,9 @@ request-channel="in" reply-channel="out" reply-timeout="100"> - + - - - - - - + diff --git a/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.java b/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.java index 7dde34fb61..2be5012fd6 100644 --- a/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.java +++ b/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/config/xml/JpaOutboundGatewayParserTests.java @@ -17,14 +17,15 @@ package org.springframework.integration.jpa.config.xml; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; -import org.junit.After; -import org.junit.Test; -import org.mockito.Mockito; +import org.junit.jupiter.api.Test; import org.springframework.aop.support.AopUtils; import org.springframework.beans.factory.BeanDefinitionStoreException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.expression.Expression; @@ -42,8 +43,9 @@ import org.springframework.integration.jpa.support.PersistMode; import org.springframework.integration.test.util.TestUtils; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandler; -import org.springframework.messaging.MessagingException; import org.springframework.messaging.support.GenericMessage; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; /** @@ -55,15 +57,18 @@ import org.springframework.messaging.support.GenericMessage; * @since 2.2 * */ +@SpringJUnitConfig +@DirtiesContext public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice { + @Autowired private ConfigurableApplicationContext context; private EventDrivenConsumer consumer; @Test public void testRetrievingJpaOutboundGatewayParser() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), "retrievingJpaOutboundGateway"); + setUp("retrievingJpaOutboundGateway"); final AbstractMessageChannel inputChannel = TestUtils.getPropertyValue(this.consumer, "inputChannel", AbstractMessageChannel.class); assertThat(inputChannel.getComponentName()).isEqualTo("in"); @@ -95,7 +100,7 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice @Test public void testRetrievingJpaOutboundGatewayParserWithFirstResult() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), "retrievingJpaOutboundGatewayWithFirstResult"); + setUp("retrievingJpaOutboundGatewayWithFirstResult"); final JpaOutboundGateway jpaOutboundGateway = TestUtils.getPropertyValue(this.consumer, "handler", JpaOutboundGateway.class); Expression firstResultExpression = @@ -107,8 +112,7 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice @Test public void testRetrievingJpaOutboundGatewayParserWithFirstResultExpression() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), - "retrievingJpaOutboundGatewayWithFirstResultExpression"); + setUp("retrievingJpaOutboundGatewayWithFirstResultExpression"); final JpaOutboundGateway jpaOutboundGateway = TestUtils.getPropertyValue(this.consumer, "handler", JpaOutboundGateway.class); Expression firstResultExpression = @@ -121,7 +125,7 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice @Test public void testRetrievingJpaOutboundGatewayParserWithMaxResultExpression() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), "retrievingJpaOutboundGatewayWithMaxResultExpression"); + setUp("retrievingJpaOutboundGatewayWithMaxResultExpression"); final JpaOutboundGateway jpaOutboundGateway = TestUtils.getPropertyValue(this.consumer, "handler", JpaOutboundGateway.class); Expression maxNumberOfResultExpression = @@ -134,10 +138,9 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice @Test public void testUpdatingJpaOutboundGatewayParser() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), "updatingJpaOutboundGateway"); + setUp("updatingJpaOutboundGateway"); - - final AbstractMessageChannel inputChannel = + AbstractMessageChannel inputChannel = TestUtils.getPropertyValue(this.consumer, "inputChannel", AbstractMessageChannel.class); assertThat(inputChannel.getComponentName()).isEqualTo("in"); @@ -165,12 +168,11 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice assertThat(entityClass.getName()).isEqualTo("org.springframework.integration.jpa.test.entity.StudentDomain"); - final JpaOperations jpaOperations = - TestUtils.getPropertyValue(jpaExecutor, "jpaOperations", JpaOperations.class); + JpaOperations jpaOperations = TestUtils.getPropertyValue(jpaExecutor, "jpaOperations", JpaOperations.class); assertThat(jpaOperations).isNotNull(); - final Boolean usePayloadAsParameterSource = + Boolean usePayloadAsParameterSource = TestUtils.getPropertyValue(jpaExecutor, "usePayloadAsParameterSource", Boolean.class); assertThat(usePayloadAsParameterSource).isTrue(); @@ -189,57 +191,35 @@ public class JpaOutboundGatewayParserTests extends AbstractRequestHandlerAdvice @Test public void advised() { - setUp("JpaOutboundGatewayParserTests.xml", getClass(), "advised"); - + setUp("advised"); EventDrivenConsumer jpaOutboundGatewayEndpoint = context.getBean("advised", EventDrivenConsumer.class); MessageHandler jpaOutboundGateway = TestUtils.getPropertyValue(jpaOutboundGatewayEndpoint, "handler", MessageHandler.class); FooAdvice advice = context.getBean("jpaFooAdvice", FooAdvice.class); -// assertThat(AopUtils.isAopProxy(jpaOutboundGateway)).isTrue(); + assertThat(AopUtils.isAopProxy(jpaOutboundGateway)).isTrue(); - try { - jpaOutboundGateway.handleMessage(new GenericMessage<>("foo")); - fail("expected ReplyRequiredException"); - } - catch (MessagingException e) { - assertThat(e instanceof ReplyRequiredException).isTrue(); - } + assertThatExceptionOfType(ReplyRequiredException.class) + .isThrownBy(() -> jpaOutboundGateway.handleMessage(new GenericMessage<>("foo"))); - /*Mockito.verify(advice) - .doInvoke(Mockito.any(ExecutionCallback.class), Mockito.any(Object.class), Mockito.any(Message.class));*/ + verify(advice).doInvoke(any(ExecutionCallback.class), any(Object.class), any(Message.class)); } @Test public void testJpaExecutorBeanIdNaming() { - this.context = new ClassPathXmlApplicationContext("JpaOutboundGatewayParserTests.xml", getClass()); - assertThat(context.getBean("retrievingJpaOutboundGateway.jpaExecutor", JpaExecutor.class)).isNotNull(); assertThat(context.getBean("updatingJpaOutboundGateway.jpaExecutor", JpaExecutor.class)).isNotNull(); } @Test public void withBothFirstResultAndFirstResultExpressionPresent() { - try { - this.context = new ClassPathXmlApplicationContext("JpaInvalidOutboundGatewayParserTests.xml", getClass()); - } - catch (BeanDefinitionStoreException e) { - assertThat(e.getMessage()).startsWith("Configuration problem: Only one of 'first-result' " + - "or 'first-result-expression' is allowed"); - return; - } - fail("BeanDefinitionStoreException expected."); - + assertThatExceptionOfType(BeanDefinitionStoreException.class) + .isThrownBy(() -> + new ClassPathXmlApplicationContext("JpaInvalidOutboundGatewayParserTests.xml", getClass())) + .withMessageStartingWith( + "Configuration problem: Only one of 'first-result' or 'first-result-expression' is allowed"); } - @After - public void tearDown() { - if (context != null) { - context.close(); - } - } - - public void setUp(String name, Class cls, String gatewayId) { - context = new ClassPathXmlApplicationContext(name, cls); + private void setUp(String gatewayId) { consumer = this.context.getBean(gatewayId, EventDrivenConsumer.class); }