Test Case Fixes for Latest SPR 4 Snapshot
- Close child context before parent to publish child close event to parent - SpelRouter FB injection - Don't pass null Method to TransactionAttributeSource.getTransactionAttribute()
This commit is contained in:
@@ -23,16 +23,20 @@ import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.core.MessageHandler;
|
||||
import org.springframework.integration.endpoint.EventDrivenConsumer;
|
||||
import org.springframework.integration.handler.DelayHandler;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
@@ -48,6 +52,7 @@ import org.springframework.transaction.interceptor.TransactionInterceptor;
|
||||
* @author Mark Fisher
|
||||
* @author Artem Bilan
|
||||
* @author Gunnar Hillert
|
||||
* @author Gary Russell
|
||||
* @since 1.0.3
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@@ -100,7 +105,7 @@ public class DelayerParserTests {
|
||||
}
|
||||
|
||||
@Test //INT-2649
|
||||
public void transactionalSubElement() {
|
||||
public void transactionalSubElement() throws Exception {
|
||||
Object endpoint = context.getBean("delayerWithTransactional");
|
||||
DelayHandler delayHandler = TestUtils.getPropertyValue(endpoint, "handler", DelayHandler.class);
|
||||
List<?> adviceChain = TestUtils.getPropertyValue(delayHandler, "delayedAdviceChain", List.class);
|
||||
@@ -109,7 +114,8 @@ public class DelayerParserTests {
|
||||
assertTrue(advice instanceof TransactionInterceptor);
|
||||
TransactionAttributeSource transactionAttributeSource = ((TransactionInterceptor) advice).getTransactionAttributeSource();
|
||||
assertTrue(transactionAttributeSource instanceof MatchAlwaysTransactionAttributeSource);
|
||||
TransactionDefinition definition = transactionAttributeSource.getTransactionAttribute(null, null);
|
||||
Method method = MessageHandler.class.getMethod("handleMessage", Message.class);
|
||||
TransactionDefinition definition = transactionAttributeSource.getTransactionAttribute(method, null);
|
||||
assertEquals(TransactionDefinition.PROPAGATION_REQUIRED, definition.getPropagationBehavior());
|
||||
assertEquals(TransactionDefinition.ISOLATION_DEFAULT, definition.getIsolationLevel());
|
||||
assertEquals(TransactionDefinition.TIMEOUT_DEFAULT, definition.getTimeout());
|
||||
|
||||
@@ -39,12 +39,12 @@ import org.springframework.util.StopWatch;
|
||||
/**
|
||||
* @author Oleg Zhurakousky
|
||||
* @author Gunnar Hillert
|
||||
* @author Gary Russell
|
||||
*/
|
||||
|
||||
public class MessageIdGenerationTests {
|
||||
|
||||
@Test
|
||||
public void testCustomIdGenerationWithParentRegistrar() throws Exception{
|
||||
public void testCustomIdGenerationWithParentRegistrar() throws Exception {
|
||||
ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("MessageIdGenerationTests-context-withGenerator.xml", this.getClass());
|
||||
ClassPathXmlApplicationContext child = new ClassPathXmlApplicationContext(new String[]{"MessageIdGenerationTests-context.xml"}, this.getClass(), parent);
|
||||
|
||||
@@ -58,7 +58,7 @@ public class MessageIdGenerationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCustomIdGenerationWithParentChileIndependentCreation() throws Exception{
|
||||
public void testCustomIdGenerationWithParentChildIndependentCreation() throws Exception {
|
||||
ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("MessageIdGenerationTests-context-withGenerator.xml", this.getClass());
|
||||
GenericXmlApplicationContext child = new GenericXmlApplicationContext();
|
||||
child.load("classpath:/org/springframework/integration/core/MessageIdGenerationTests-context.xml");
|
||||
@@ -89,7 +89,7 @@ public class MessageIdGenerationTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCustomIdGenerationWithChildRegistrar() throws Exception{
|
||||
public void testCustomIdGenerationWithChildRegistrar() throws Exception {
|
||||
ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("MessageIdGenerationTests-context.xml", this.getClass());
|
||||
ClassPathXmlApplicationContext child = new ClassPathXmlApplicationContext(new String[]{"MessageIdGenerationTests-context-withGenerator.xml"}, this.getClass(), parent);
|
||||
|
||||
@@ -98,13 +98,13 @@ public class MessageIdGenerationTests {
|
||||
MessageChannel inputChannel = child.getBean("input", MessageChannel.class);
|
||||
inputChannel.send(new GenericMessage<Integer>(0));
|
||||
verify(idGenerator, atLeastOnce()).generateId();
|
||||
parent.close();
|
||||
child.close();
|
||||
parent.close();
|
||||
this.assertDestroy();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCustomIdGenerationWithChildRegistrarClosed() throws Exception{
|
||||
public void testCustomIdGenerationWithChildRegistrarClosed() throws Exception {
|
||||
ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("MessageIdGenerationTests-context.xml", this.getClass());
|
||||
ClassPathXmlApplicationContext child = new ClassPathXmlApplicationContext(new String[]{"MessageIdGenerationTests-context-withGenerator.xml"}, this.getClass(), parent);
|
||||
|
||||
@@ -120,7 +120,7 @@ public class MessageIdGenerationTests {
|
||||
|
||||
// similar to the last test, but should not fail because child AC is closed before second child AC is started
|
||||
@Test
|
||||
public void testCustomIdGenerationWithParentChildIndependentCreationChildrenRegistrarsOneAtTheTime() throws Exception{
|
||||
public void testCustomIdGenerationWithParentChildIndependentCreationChildrenRegistrarsOneAtTheTime() throws Exception {
|
||||
ClassPathXmlApplicationContext parent = new ClassPathXmlApplicationContext("MessageIdGenerationTests-context.xml", this.getClass());
|
||||
|
||||
GenericXmlApplicationContext childA = new GenericXmlApplicationContext();
|
||||
@@ -142,7 +142,7 @@ public class MessageIdGenerationTests {
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void performanceTest(){
|
||||
public void performanceTest() {
|
||||
int times = 1000000;
|
||||
StopWatch watch = new StopWatch();
|
||||
watch.start();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2011 the original author or authors.
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -26,16 +26,15 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.MessageChannel;
|
||||
import org.springframework.integration.config.ConsumerEndpointFactoryBean;
|
||||
import org.springframework.integration.core.PollableChannel;
|
||||
import org.springframework.integration.router.AbstractMappingMessageRouter;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Gary Russell
|
||||
*/
|
||||
@ContextConfiguration
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@@ -43,10 +42,10 @@ public class RouterWithMappingTests {
|
||||
|
||||
@Autowired
|
||||
private MessageChannel expressionRouter;
|
||||
|
||||
|
||||
@Autowired
|
||||
@Qualifier("spelRouter")
|
||||
private ConsumerEndpointFactoryBean spelRouter;
|
||||
@Qualifier("spelRouter.handler")
|
||||
private AbstractMappingMessageRouter spelRouterHandler;
|
||||
|
||||
@Autowired
|
||||
private MessageChannel pojoRouter;
|
||||
@@ -87,8 +86,7 @@ public class RouterWithMappingTests {
|
||||
assertNull(fooChannelForExpression.receive(0));
|
||||
assertNull(barChannelForExpression.receive(0));
|
||||
// validate dynamics
|
||||
AbstractMappingMessageRouter router = (AbstractMappingMessageRouter) TestUtils.getPropertyValue(spelRouter, "handler");
|
||||
router.setChannelMapping("baz", "fooChannelForExpression");
|
||||
spelRouterHandler.setChannelMapping("baz", "fooChannelForExpression");
|
||||
expressionRouter.send(message3);
|
||||
assertNull(defaultChannelForExpression.receive(10));
|
||||
assertNotNull(fooChannelForExpression.receive(10));
|
||||
|
||||
Reference in New Issue
Block a user