restored OpenEntityManagerInViewTests
git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4769 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
parent
a6a730d136
commit
7bfa480c99
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2007 the original author or authors.
|
* Copyright 2002-2011 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -16,172 +16,191 @@
|
||||||
|
|
||||||
package org.springframework.orm.jpa.support;
|
package org.springframework.orm.jpa.support;
|
||||||
|
|
||||||
import org.junit.Ignore;
|
import java.io.IOException;
|
||||||
import org.junit.Test;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.EntityManagerFactory;
|
||||||
|
import javax.servlet.FilterChain;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
import javax.servlet.ServletResponse;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
import org.easymock.MockControl;
|
||||||
|
|
||||||
|
import org.springframework.mock.web.MockFilterConfig;
|
||||||
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
|
import org.springframework.mock.web.MockHttpServletResponse;
|
||||||
|
import org.springframework.mock.web.MockServletContext;
|
||||||
|
import org.springframework.mock.web.PassThroughFilterChain;
|
||||||
|
import org.springframework.orm.jpa.JpaTemplate;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
import org.springframework.web.context.request.ServletWebRequest;
|
||||||
|
import org.springframework.web.context.support.StaticWebApplicationContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Costin Leau
|
* @author Costin Leau
|
||||||
* @author Juergen Hoeller
|
* @author Juergen Hoeller
|
||||||
* @author Chris Beams
|
* @author Chris Beams
|
||||||
*/
|
*/
|
||||||
@Ignore // dependency issues after moving from .testsuite -> .test
|
public class OpenEntityManagerInViewTests extends TestCase {
|
||||||
public class OpenEntityManagerInViewTests {
|
|
||||||
|
|
||||||
// private MockControl factoryControl, managerControl;
|
private MockControl factoryControl, managerControl;
|
||||||
//
|
|
||||||
// private EntityManager manager;
|
private EntityManager manager;
|
||||||
//
|
|
||||||
// private EntityManagerFactory factory;
|
private EntityManagerFactory factory;
|
||||||
//
|
|
||||||
// private JpaTemplate template;
|
private JpaTemplate template;
|
||||||
//
|
|
||||||
//
|
|
||||||
// @Override
|
@Override
|
||||||
// protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
// factoryControl = MockControl.createControl(EntityManagerFactory.class);
|
factoryControl = MockControl.createControl(EntityManagerFactory.class);
|
||||||
// factory = (EntityManagerFactory) factoryControl.getMock();
|
factory = (EntityManagerFactory) factoryControl.getMock();
|
||||||
// managerControl = MockControl.createControl(EntityManager.class);
|
managerControl = MockControl.createControl(EntityManager.class);
|
||||||
// manager = (EntityManager) managerControl.getMock();
|
manager = (EntityManager) managerControl.getMock();
|
||||||
//
|
|
||||||
// template = new JpaTemplate(factory);
|
template = new JpaTemplate(factory);
|
||||||
// template.afterPropertiesSet();
|
template.afterPropertiesSet();
|
||||||
//
|
|
||||||
// factoryControl.expectAndReturn(factory.createEntityManager(), manager);
|
factoryControl.expectAndReturn(factory.createEntityManager(), manager);
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Override
|
@Override
|
||||||
// protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
// assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
|
assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
|
||||||
// assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
|
assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
|
||||||
// assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
|
assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
|
||||||
// assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
|
assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// public void testOpenEntityManagerInterceptorInView() throws Exception {
|
public void testOpenEntityManagerInViewInterceptor() throws Exception {
|
||||||
// OpenEntityManagerInViewInterceptor rawInterceptor = new OpenEntityManagerInViewInterceptor();
|
OpenEntityManagerInViewInterceptor interceptor = new OpenEntityManagerInViewInterceptor();
|
||||||
// rawInterceptor.setEntityManagerFactory(factory);
|
interceptor.setEntityManagerFactory(factory);
|
||||||
// HandlerInterceptor interceptor = new WebRequestHandlerInterceptorAdapter(rawInterceptor);
|
|
||||||
//
|
MockServletContext sc = new MockServletContext();
|
||||||
// MockServletContext sc = new MockServletContext();
|
MockHttpServletRequest request = new MockHttpServletRequest(sc);
|
||||||
// MockHttpServletRequest request = new MockHttpServletRequest(sc);
|
|
||||||
// MockHttpServletResponse response = new MockHttpServletResponse();
|
managerControl.replay();
|
||||||
//
|
factoryControl.replay();
|
||||||
// managerControl.replay();
|
|
||||||
// factoryControl.replay();
|
interceptor.preHandle(new ServletWebRequest(request));
|
||||||
//
|
assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// interceptor.preHandle(request, response, "handler");
|
|
||||||
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
// check that further invocations simply participate
|
||||||
//
|
interceptor.preHandle(new ServletWebRequest(request));
|
||||||
// // check that further invocations simply participate
|
|
||||||
// interceptor.preHandle(request, response, "handler");
|
interceptor.preHandle(new ServletWebRequest(request));
|
||||||
//
|
interceptor.postHandle(new ServletWebRequest(request), null);
|
||||||
// interceptor.preHandle(request, response, "handler");
|
interceptor.afterCompletion(new ServletWebRequest(request), null);
|
||||||
// interceptor.postHandle(request, response, "handler", null);
|
|
||||||
// interceptor.afterCompletion(request, response, "handler", null);
|
interceptor.postHandle(new ServletWebRequest(request), null);
|
||||||
//
|
interceptor.afterCompletion(new ServletWebRequest(request), null);
|
||||||
// interceptor.postHandle(request, response, "handler", null);
|
|
||||||
// interceptor.afterCompletion(request, response, "handler", null);
|
interceptor.preHandle(new ServletWebRequest(request));
|
||||||
//
|
interceptor.postHandle(new ServletWebRequest(request), null);
|
||||||
// interceptor.preHandle(request, response, "handler");
|
interceptor.afterCompletion(new ServletWebRequest(request), null);
|
||||||
// interceptor.postHandle(request, response, "handler", null);
|
|
||||||
// interceptor.afterCompletion(request, response, "handler", null);
|
factoryControl.verify();
|
||||||
//
|
managerControl.verify();
|
||||||
// factoryControl.verify();
|
|
||||||
// managerControl.verify();
|
managerControl.reset();
|
||||||
//
|
factoryControl.reset();
|
||||||
// managerControl.reset();
|
managerControl.replay();
|
||||||
// factoryControl.reset();
|
factoryControl.replay();
|
||||||
// managerControl.replay();
|
|
||||||
// factoryControl.replay();
|
interceptor.postHandle(new ServletWebRequest(request), null);
|
||||||
//
|
assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// interceptor.postHandle(request, response, "handler", null);
|
|
||||||
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
factoryControl.verify();
|
||||||
//
|
managerControl.verify();
|
||||||
// factoryControl.verify();
|
|
||||||
// managerControl.verify();
|
managerControl.reset();
|
||||||
//
|
factoryControl.reset();
|
||||||
// managerControl.reset();
|
|
||||||
// factoryControl.reset();
|
managerControl.expectAndReturn(manager.isOpen(), true);
|
||||||
//
|
manager.close();
|
||||||
// manager.close();
|
|
||||||
//
|
managerControl.replay();
|
||||||
// managerControl.replay();
|
factoryControl.replay();
|
||||||
// factoryControl.replay();
|
|
||||||
//
|
interceptor.afterCompletion(new ServletWebRequest(request), null);
|
||||||
// interceptor.afterCompletion(request, response, "handler", null);
|
assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
|
||||||
//
|
factoryControl.verify();
|
||||||
// factoryControl.verify();
|
managerControl.verify();
|
||||||
// managerControl.verify();
|
}
|
||||||
// }
|
|
||||||
//
|
public void testOpenEntityManagerInViewFilter() throws Exception {
|
||||||
// public void testOpenEntityManagerInViewFilter() throws Exception {
|
managerControl.expectAndReturn(manager.isOpen(), true);
|
||||||
// manager.close();
|
manager.close();
|
||||||
//
|
|
||||||
// managerControl.replay();
|
managerControl.replay();
|
||||||
// factoryControl.replay();
|
factoryControl.replay();
|
||||||
//
|
|
||||||
// MockControl factoryControl2 = MockControl.createControl(EntityManagerFactory.class);
|
MockControl factoryControl2 = MockControl.createControl(EntityManagerFactory.class);
|
||||||
// final EntityManagerFactory factory2 = (EntityManagerFactory) factoryControl2.getMock();
|
final EntityManagerFactory factory2 = (EntityManagerFactory) factoryControl2.getMock();
|
||||||
//
|
|
||||||
// MockControl managerControl2 = MockControl.createControl(EntityManager.class);
|
MockControl managerControl2 = MockControl.createControl(EntityManager.class);
|
||||||
// EntityManager manager2 = (EntityManager) managerControl2.getMock();
|
EntityManager manager2 = (EntityManager) managerControl2.getMock();
|
||||||
//
|
|
||||||
// factoryControl2.expectAndReturn(factory2.createEntityManager(), manager2);
|
factoryControl2.expectAndReturn(factory2.createEntityManager(), manager2);
|
||||||
// manager2.close();
|
managerControl2.expectAndReturn(manager2.isOpen(), true);
|
||||||
//
|
manager2.close();
|
||||||
// factoryControl2.replay();
|
|
||||||
// managerControl2.replay();
|
factoryControl2.replay();
|
||||||
//
|
managerControl2.replay();
|
||||||
// MockServletContext sc = new MockServletContext();
|
|
||||||
// StaticWebApplicationContext wac = new StaticWebApplicationContext();
|
MockServletContext sc = new MockServletContext();
|
||||||
// wac.setServletContext(sc);
|
StaticWebApplicationContext wac = new StaticWebApplicationContext();
|
||||||
// wac.getDefaultListableBeanFactory().registerSingleton("entityManagerFactory", factory);
|
wac.setServletContext(sc);
|
||||||
// wac.getDefaultListableBeanFactory().registerSingleton("myEntityManagerFactory", factory2);
|
wac.getDefaultListableBeanFactory().registerSingleton("entityManagerFactory", factory);
|
||||||
// wac.refresh();
|
wac.getDefaultListableBeanFactory().registerSingleton("myEntityManagerFactory", factory2);
|
||||||
// sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
|
wac.refresh();
|
||||||
// MockHttpServletRequest request = new MockHttpServletRequest(sc);
|
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
|
||||||
// MockHttpServletResponse response = new MockHttpServletResponse();
|
MockHttpServletRequest request = new MockHttpServletRequest(sc);
|
||||||
//
|
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||||
// MockFilterConfig filterConfig = new MockFilterConfig(wac.getServletContext(), "filter");
|
|
||||||
// MockFilterConfig filterConfig2 = new MockFilterConfig(wac.getServletContext(), "filter2");
|
MockFilterConfig filterConfig = new MockFilterConfig(wac.getServletContext(), "filter");
|
||||||
// filterConfig2.addInitParameter("entityManagerFactoryBeanName", "myEntityManagerFactory");
|
MockFilterConfig filterConfig2 = new MockFilterConfig(wac.getServletContext(), "filter2");
|
||||||
//
|
filterConfig2.addInitParameter("entityManagerFactoryBeanName", "myEntityManagerFactory");
|
||||||
// final OpenEntityManagerInViewFilter filter = new OpenEntityManagerInViewFilter();
|
|
||||||
// filter.init(filterConfig);
|
final OpenEntityManagerInViewFilter filter = new OpenEntityManagerInViewFilter();
|
||||||
// final OpenEntityManagerInViewFilter filter2 = new OpenEntityManagerInViewFilter();
|
filter.init(filterConfig);
|
||||||
// filter2.init(filterConfig2);
|
final OpenEntityManagerInViewFilter filter2 = new OpenEntityManagerInViewFilter();
|
||||||
//
|
filter2.init(filterConfig2);
|
||||||
// final FilterChain filterChain = new FilterChain() {
|
|
||||||
// public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) {
|
final FilterChain filterChain = new FilterChain() {
|
||||||
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) {
|
||||||
// servletRequest.setAttribute("invoked", Boolean.TRUE);
|
assertTrue(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// }
|
servletRequest.setAttribute("invoked", Boolean.TRUE);
|
||||||
// };
|
}
|
||||||
//
|
};
|
||||||
// final FilterChain filterChain2 = new FilterChain() {
|
|
||||||
// public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
|
final FilterChain filterChain2 = new FilterChain() {
|
||||||
// throws IOException, ServletException {
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
|
||||||
// assertTrue(TransactionSynchronizationManager.hasResource(factory2));
|
throws IOException, ServletException {
|
||||||
// filter.doFilter(servletRequest, servletResponse, filterChain);
|
assertTrue(TransactionSynchronizationManager.hasResource(factory2));
|
||||||
// }
|
filter.doFilter(servletRequest, servletResponse, filterChain);
|
||||||
// };
|
}
|
||||||
//
|
};
|
||||||
// FilterChain filterChain3 = new PassThroughFilterChain(filter2, filterChain2);
|
|
||||||
//
|
FilterChain filterChain3 = new PassThroughFilterChain(filter2, filterChain2);
|
||||||
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
|
||||||
// assertFalse(TransactionSynchronizationManager.hasResource(factory2));
|
assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// filter2.doFilter(request, response, filterChain3);
|
assertFalse(TransactionSynchronizationManager.hasResource(factory2));
|
||||||
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
filter2.doFilter(request, response, filterChain3);
|
||||||
// assertFalse(TransactionSynchronizationManager.hasResource(factory2));
|
assertFalse(TransactionSynchronizationManager.hasResource(factory));
|
||||||
// assertNotNull(request.getAttribute("invoked"));
|
assertFalse(TransactionSynchronizationManager.hasResource(factory2));
|
||||||
//
|
assertNotNull(request.getAttribute("invoked"));
|
||||||
// factoryControl.verify();
|
|
||||||
// managerControl.verify();
|
factoryControl.verify();
|
||||||
// factoryControl2.verify();
|
managerControl.verify();
|
||||||
// managerControl2.verify();
|
factoryControl2.verify();
|
||||||
//
|
managerControl2.verify();
|
||||||
// wac.close();
|
|
||||||
// }
|
wac.close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue