Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
676ab5f0
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
676ab5f0
编写于
7月 25, 2011
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
restored OpenEntityManagerInViewTests
上级
179dad8c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
180 addition
and
161 deletion
+180
-161
org.springframework.orm/src/test/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewTests.java
...amework/orm/jpa/support/OpenEntityManagerInViewTests.java
+180
-161
未找到文件。
org.springframework.orm/src/test/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewTests.java
浏览文件 @
676ab5f0
/*
* Copyright 2002-20
07
the original author or authors.
* Copyright 2002-20
11
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.
...
...
@@ -16,172 +16,191 @@
package
org.springframework.orm.jpa.support
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
java.io.IOException
;
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 Juergen Hoeller
* @author Chris Beams
*/
@Ignore
// dependency issues after moving from .testsuite -> .test
public
class
OpenEntityManagerInViewTests
{
public
class
OpenEntityManagerInViewTests
extends
TestCase
{
// private MockControl factoryControl, managerControl;
//
// private EntityManager manager;
//
// private EntityManagerFactory factory;
//
// private JpaTemplate template;
//
//
// @Override
// protected void setUp() throws Exception {
// factoryControl = MockControl.createControl(EntityManagerFactory.class);
// factory = (EntityManagerFactory) factoryControl.getMock();
// managerControl = MockControl.createControl(EntityManager.class);
// manager = (EntityManager) managerControl.getMock();
//
// template = new JpaTemplate(factory);
// template.afterPropertiesSet();
//
// factoryControl.expectAndReturn(factory.createEntityManager(), manager);
// }
//
// @Override
// protected void tearDown() throws Exception {
// assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
// assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
// assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
// assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
// }
//
// public void testOpenEntityManagerInterceptorInView() throws Exception {
// OpenEntityManagerInViewInterceptor rawInterceptor = new OpenEntityManagerInViewInterceptor();
// rawInterceptor.setEntityManagerFactory(factory);
// HandlerInterceptor interceptor = new WebRequestHandlerInterceptorAdapter(rawInterceptor);
//
// MockServletContext sc = new MockServletContext();
// MockHttpServletRequest request = new MockHttpServletRequest(sc);
// MockHttpServletResponse response = new MockHttpServletResponse();
//
// managerControl.replay();
// factoryControl.replay();
//
// interceptor.preHandle(request, response, "handler");
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
//
// // check that further invocations simply participate
// interceptor.preHandle(request, response, "handler");
//
// interceptor.preHandle(request, response, "handler");
// interceptor.postHandle(request, response, "handler", null);
// interceptor.afterCompletion(request, response, "handler", null);
//
// interceptor.postHandle(request, response, "handler", null);
// interceptor.afterCompletion(request, response, "handler", null);
//
// interceptor.preHandle(request, response, "handler");
// interceptor.postHandle(request, response, "handler", null);
// interceptor.afterCompletion(request, response, "handler", null);
//
// factoryControl.verify();
// managerControl.verify();
//
// managerControl.reset();
// factoryControl.reset();
// managerControl.replay();
// factoryControl.replay();
//
// interceptor.postHandle(request, response, "handler", null);
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
//
// factoryControl.verify();
// managerControl.verify();
//
// managerControl.reset();
// factoryControl.reset();
//
// manager.close();
//
// managerControl.replay();
// factoryControl.replay();
//
// interceptor.afterCompletion(request, response, "handler", null);
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
//
// factoryControl.verify();
// managerControl.verify();
// }
//
// public void testOpenEntityManagerInViewFilter() throws Exception {
// manager.close();
//
// managerControl.replay();
// factoryControl.replay();
//
// MockControl factoryControl2 = MockControl.createControl(EntityManagerFactory.class);
// final EntityManagerFactory factory2 = (EntityManagerFactory) factoryControl2.getMock();
//
// MockControl managerControl2 = MockControl.createControl(EntityManager.class);
// EntityManager manager2 = (EntityManager) managerControl2.getMock();
//
// factoryControl2.expectAndReturn(factory2.createEntityManager(), manager2);
// manager2.close();
//
// factoryControl2.replay();
// managerControl2.replay();
//
// MockServletContext sc = new MockServletContext();
// StaticWebApplicationContext wac = new StaticWebApplicationContext();
// wac.setServletContext(sc);
// wac.getDefaultListableBeanFactory().registerSingleton("entityManagerFactory", factory);
// wac.getDefaultListableBeanFactory().registerSingleton("myEntityManagerFactory", factory2);
// wac.refresh();
// sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
// MockHttpServletRequest request = new MockHttpServletRequest(sc);
// MockHttpServletResponse response = new MockHttpServletResponse();
//
// MockFilterConfig filterConfig = new MockFilterConfig(wac.getServletContext(), "filter");
// MockFilterConfig filterConfig2 = new MockFilterConfig(wac.getServletContext(), "filter2");
// filterConfig2.addInitParameter("entityManagerFactoryBeanName", "myEntityManagerFactory");
//
// final OpenEntityManagerInViewFilter filter = new OpenEntityManagerInViewFilter();
// filter.init(filterConfig);
// final OpenEntityManagerInViewFilter filter2 = new OpenEntityManagerInViewFilter();
// filter2.init(filterConfig2);
//
// final FilterChain filterChain = new FilterChain() {
// public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) {
// assertTrue(TransactionSynchronizationManager.hasResource(factory));
// servletRequest.setAttribute("invoked", Boolean.TRUE);
// }
// };
//
// final FilterChain filterChain2 = new FilterChain() {
// public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
// throws IOException, ServletException {
// assertTrue(TransactionSynchronizationManager.hasResource(factory2));
// filter.doFilter(servletRequest, servletResponse, filterChain);
// }
// };
//
// FilterChain filterChain3 = new PassThroughFilterChain(filter2, filterChain2);
//
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
// assertFalse(TransactionSynchronizationManager.hasResource(factory2));
// filter2.doFilter(request, response, filterChain3);
// assertFalse(TransactionSynchronizationManager.hasResource(factory));
// assertFalse(TransactionSynchronizationManager.hasResource(factory2));
// assertNotNull(request.getAttribute("invoked"));
//
// factoryControl.verify();
// managerControl.verify();
// factoryControl2.verify();
// managerControl2.verify();
//
// wac.close();
// }
private
MockControl
factoryControl
,
managerControl
;
private
EntityManager
manager
;
private
EntityManagerFactory
factory
;
private
JpaTemplate
template
;
@Override
protected
void
setUp
()
throws
Exception
{
factoryControl
=
MockControl
.
createControl
(
EntityManagerFactory
.
class
);
factory
=
(
EntityManagerFactory
)
factoryControl
.
getMock
();
managerControl
=
MockControl
.
createControl
(
EntityManager
.
class
);
manager
=
(
EntityManager
)
managerControl
.
getMock
();
template
=
new
JpaTemplate
(
factory
);
template
.
afterPropertiesSet
();
factoryControl
.
expectAndReturn
(
factory
.
createEntityManager
(),
manager
);
}
@Override
protected
void
tearDown
()
throws
Exception
{
assertTrue
(
TransactionSynchronizationManager
.
getResourceMap
().
isEmpty
());
assertFalse
(
TransactionSynchronizationManager
.
isSynchronizationActive
());
assertFalse
(
TransactionSynchronizationManager
.
isCurrentTransactionReadOnly
());
assertFalse
(
TransactionSynchronizationManager
.
isActualTransactionActive
());
}
public
void
testOpenEntityManagerInViewInterceptor
()
throws
Exception
{
OpenEntityManagerInViewInterceptor
interceptor
=
new
OpenEntityManagerInViewInterceptor
();
interceptor
.
setEntityManagerFactory
(
factory
);
MockServletContext
sc
=
new
MockServletContext
();
MockHttpServletRequest
request
=
new
MockHttpServletRequest
(
sc
);
managerControl
.
replay
();
factoryControl
.
replay
();
interceptor
.
preHandle
(
new
ServletWebRequest
(
request
));
assertTrue
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
// check that further invocations simply participate
interceptor
.
preHandle
(
new
ServletWebRequest
(
request
));
interceptor
.
preHandle
(
new
ServletWebRequest
(
request
));
interceptor
.
postHandle
(
new
ServletWebRequest
(
request
),
null
);
interceptor
.
afterCompletion
(
new
ServletWebRequest
(
request
),
null
);
interceptor
.
postHandle
(
new
ServletWebRequest
(
request
),
null
);
interceptor
.
afterCompletion
(
new
ServletWebRequest
(
request
),
null
);
interceptor
.
preHandle
(
new
ServletWebRequest
(
request
));
interceptor
.
postHandle
(
new
ServletWebRequest
(
request
),
null
);
interceptor
.
afterCompletion
(
new
ServletWebRequest
(
request
),
null
);
factoryControl
.
verify
();
managerControl
.
verify
();
managerControl
.
reset
();
factoryControl
.
reset
();
managerControl
.
replay
();
factoryControl
.
replay
();
interceptor
.
postHandle
(
new
ServletWebRequest
(
request
),
null
);
assertTrue
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
factoryControl
.
verify
();
managerControl
.
verify
();
managerControl
.
reset
();
factoryControl
.
reset
();
managerControl
.
expectAndReturn
(
manager
.
isOpen
(),
true
);
manager
.
close
();
managerControl
.
replay
();
factoryControl
.
replay
();
interceptor
.
afterCompletion
(
new
ServletWebRequest
(
request
),
null
);
assertFalse
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
factoryControl
.
verify
();
managerControl
.
verify
();
}
public
void
testOpenEntityManagerInViewFilter
()
throws
Exception
{
managerControl
.
expectAndReturn
(
manager
.
isOpen
(),
true
);
manager
.
close
();
managerControl
.
replay
();
factoryControl
.
replay
();
MockControl
factoryControl2
=
MockControl
.
createControl
(
EntityManagerFactory
.
class
);
final
EntityManagerFactory
factory2
=
(
EntityManagerFactory
)
factoryControl2
.
getMock
();
MockControl
managerControl2
=
MockControl
.
createControl
(
EntityManager
.
class
);
EntityManager
manager2
=
(
EntityManager
)
managerControl2
.
getMock
();
factoryControl2
.
expectAndReturn
(
factory2
.
createEntityManager
(),
manager2
);
managerControl2
.
expectAndReturn
(
manager2
.
isOpen
(),
true
);
manager2
.
close
();
factoryControl2
.
replay
();
managerControl2
.
replay
();
MockServletContext
sc
=
new
MockServletContext
();
StaticWebApplicationContext
wac
=
new
StaticWebApplicationContext
();
wac
.
setServletContext
(
sc
);
wac
.
getDefaultListableBeanFactory
().
registerSingleton
(
"entityManagerFactory"
,
factory
);
wac
.
getDefaultListableBeanFactory
().
registerSingleton
(
"myEntityManagerFactory"
,
factory2
);
wac
.
refresh
();
sc
.
setAttribute
(
WebApplicationContext
.
ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
wac
);
MockHttpServletRequest
request
=
new
MockHttpServletRequest
(
sc
);
MockHttpServletResponse
response
=
new
MockHttpServletResponse
();
MockFilterConfig
filterConfig
=
new
MockFilterConfig
(
wac
.
getServletContext
(),
"filter"
);
MockFilterConfig
filterConfig2
=
new
MockFilterConfig
(
wac
.
getServletContext
(),
"filter2"
);
filterConfig2
.
addInitParameter
(
"entityManagerFactoryBeanName"
,
"myEntityManagerFactory"
);
final
OpenEntityManagerInViewFilter
filter
=
new
OpenEntityManagerInViewFilter
();
filter
.
init
(
filterConfig
);
final
OpenEntityManagerInViewFilter
filter2
=
new
OpenEntityManagerInViewFilter
();
filter2
.
init
(
filterConfig2
);
final
FilterChain
filterChain
=
new
FilterChain
()
{
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
)
{
assertTrue
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
servletRequest
.
setAttribute
(
"invoked"
,
Boolean
.
TRUE
);
}
};
final
FilterChain
filterChain2
=
new
FilterChain
()
{
public
void
doFilter
(
ServletRequest
servletRequest
,
ServletResponse
servletResponse
)
throws
IOException
,
ServletException
{
assertTrue
(
TransactionSynchronizationManager
.
hasResource
(
factory2
));
filter
.
doFilter
(
servletRequest
,
servletResponse
,
filterChain
);
}
};
FilterChain
filterChain3
=
new
PassThroughFilterChain
(
filter2
,
filterChain2
);
assertFalse
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
assertFalse
(
TransactionSynchronizationManager
.
hasResource
(
factory2
));
filter2
.
doFilter
(
request
,
response
,
filterChain3
);
assertFalse
(
TransactionSynchronizationManager
.
hasResource
(
factory
));
assertFalse
(
TransactionSynchronizationManager
.
hasResource
(
factory2
));
assertNotNull
(
request
.
getAttribute
(
"invoked"
));
factoryControl
.
verify
();
managerControl
.
verify
();
factoryControl2
.
verify
();
managerControl2
.
verify
();
wac
.
close
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录