⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toplinkjtatransactiontests.java

📁 spring 框架代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
//		MockControl utControl = MockControl.createControl(UserTransaction.class);
//		UserTransaction ut = (UserTransaction) utControl.getMock();
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_NO_TRANSACTION, 1);
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_ACTIVE, 1);
//		ut.begin();
//		utControl.setVoidCallable(1);
//		ut.rollback();
//		utControl.setVoidCallable(1);
//		utControl.replay();
//
//		MockControl sfControl = MockControl.createControl(SessionFactory.class);
//		final SessionFactory sf = (SessionFactory) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//		sf.openSession();
//		sfControl.setReturnValue(session, 1);
//		session.getSessionFactory();
//		sessionControl.setReturnValue(sf, 1);
//		sfControl.replay();
//		sessionControl.replay();
//
//		JtaTransactionManager ptm = new JtaTransactionManager(ut);
//		TransactionTemplate tt = new TransactionTemplate(ptm);
//		final List l = new ArrayList();
//		l.add("test");
//		final HibernateException flushEx = new HibernateException("flush failure");
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//
//		try {
//			tt.execute(new TransactionCallback() {
//				public Object doInTransaction(TransactionStatus status) {
//					try {
//						assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
//						assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//						HibernateTemplate ht = new HibernateTemplate(sf);
//						ht.setExposeNativeSession(true);
//						List htl = ht.executeFind(new HibernateCallback() {
//							public Object doInHibernate(Session sess) {
//								assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//								assertEquals(session, sess);
//								return l;
//							}
//						});
//						ht = new HibernateTemplate(sf);
//						ht.setExposeNativeSession(true);
//						htl = ht.executeFind(new HibernateCallback() {
//							public Object doInHibernate(Session sess) {
//								assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//								assertEquals(session, sess);
//								return l;
//							}
//						});
//						assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//						sessionControl.verify();
//						sessionControl.reset();
//						try {
//							session.getFlushMode();
//							sessionControl.setReturnValue(FlushMode.AUTO, 1);
//							session.flush();
//							sessionControl.setThrowable(flushEx);
//							session.close();
//							sessionControl.setReturnValue(null, 1);
//						}
//						catch (HibernateException e) {
//						}
//						sessionControl.replay();
//						return htl;
//					}
//					catch (Error err) {
//						err.printStackTrace();
//						throw err;
//					}
//				}
//			});
//		}
//		catch (DataAccessException ex) {
//			// expected
//			assertTrue(flushEx == ex.getCause());
//		}
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//
//		utControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//	}
//
//	public void testJtaTransactionRollback() throws Exception {
//		MockControl utControl = MockControl.createControl(UserTransaction.class);
//		UserTransaction ut = (UserTransaction) utControl.getMock();
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_NO_TRANSACTION, 1);
//		ut.begin();
//		utControl.setVoidCallable(1);
//		ut.rollback();
//		utControl.setVoidCallable(1);
//		utControl.replay();
//
//		MockControl sfControl = MockControl.createControl(SessionFactory.class);
//		final SessionFactory sf = (SessionFactory) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//		sf.openSession();
//		sfControl.setReturnValue(session, 1);
//		session.getSessionFactory();
//		sessionControl.setReturnValue(sf, 1);
//		sfControl.replay();
//		sessionControl.replay();
//
//		JtaTransactionManager ptm = new JtaTransactionManager(ut);
//		TransactionTemplate tt = new TransactionTemplate(ptm);
//		final List l = new ArrayList();
//		l.add("test");
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//
//		Object result = tt.execute(new TransactionCallback() {
//			public Object doInTransaction(TransactionStatus status) {
//				try {
//					assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
//					HibernateTemplate ht = new HibernateTemplate(sf);
//					List htl = ht.executeFind(new HibernateCallback() {
//						public Object doInHibernate(Session session) {
//							return l;
//						}
//					});
//					status.setRollbackOnly();
//					sessionControl.verify();
//					sessionControl.reset();
//					try {
//						session.close();
//					}
//					catch (HibernateException ex) {
//					}
//					sessionControl.setReturnValue(null, 1);
//					sessionControl.replay();
//					return htl;
//				}
//				catch (Error err) {
//					err.printStackTrace();
//					throw err;
//				}
//			}
//		});
//		assertTrue("Correct result list", result == l);
//
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//		utControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//	}
//
//	public void testJtaTransactionCommitWithPreBound() throws Exception {
//		doTestJtaTransactionCommitWithPreBound(false, false);
//	}
//
//	public void testJtaTransactionCommitWithPreBoundAndFlushModeNever() throws Exception {
//		doTestJtaTransactionCommitWithPreBound(false, true);
//	}
//
//	public void testJtaTransactionCommitWithJtaTmAndPreBound() throws Exception {
//		doTestJtaTransactionCommitWithPreBound(true, false);
//	}
//
//	public void testJtaTransactionCommitWithJtaTmAndPreBoundAndFlushModeNever() throws Exception {
//		doTestJtaTransactionCommitWithPreBound(true, true);
//	}
//
//	protected void doTestJtaTransactionCommitWithPreBound(boolean jtaTm, final boolean flushNever) throws Exception {
//		MockControl utControl = MockControl.createControl(UserTransaction.class);
//		UserTransaction ut = (UserTransaction) utControl.getMock();
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_NO_TRANSACTION, 1);
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_ACTIVE, 1);
//		ut.begin();
//		utControl.setVoidCallable(1);
//		ut.commit();
//		utControl.setVoidCallable(1);
//
//		MockControl tmControl = MockControl.createControl(TransactionManager.class);
//		TransactionManager tm = (TransactionManager) tmControl.getMock();
//		if (jtaTm) {
//			MockJtaTransaction transaction = new MockJtaTransaction();
//			tm.getStatus();
//			tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
//			tm.getTransaction();
//			tmControl.setReturnValue(transaction, 1);
//		}
//
//		MockControl sfControl = MockControl.createControl(SessionFactoryImplementor.class);
//		final SessionFactoryImplementor sf = (SessionFactoryImplementor) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(SessionImplementor.class);
//		final SessionImplementor session = (SessionImplementor) sessionControl.getMock();
//		sf.getConnectionProvider();
//		sfControl.setReturnValue(null, 1);
//		sf.getTransactionManager();
//		sfControl.setReturnValue((jtaTm ? tm : null), 1);
//		session.getFlushMode();
//		if (flushNever) {
//			sessionControl.setReturnValue(FlushMode.NEVER, 1);
//			session.setFlushMode(FlushMode.AUTO);
//			sessionControl.setVoidCallable(1);
//		}
//		else {
//			sessionControl.setReturnValue(FlushMode.AUTO, 1);
//		}
//
//		utControl.replay();
//		tmControl.replay();
//		sfControl.replay();
//		sessionControl.replay();
//
//		TransactionSynchronizationManager.bindResource(sf, new SessionHolder(session));
//		try {
//			JtaTransactionManager ptm = new JtaTransactionManager(ut);
//			TransactionTemplate tt = new TransactionTemplate(ptm);
//			final List l = new ArrayList();
//			l.add("test");
//			assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//
//			Object result = tt.execute(new TransactionCallback() {
//				public Object doInTransaction(TransactionStatus status) {
//					try {
//						assertTrue("JTA synchronizations active", TransactionSynchronizationManager.isSynchronizationActive());
//						assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//						HibernateTemplate ht = new HibernateTemplate(sf);
//						ht.setExposeNativeSession(true);
//						List htl = null;
//						for (int i = 0; i < 5; i++) {
//							htl = ht.executeFind(new HibernateCallback() {
//								public Object doInHibernate(Session sess) {
//									assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//									assertEquals(session, sess);
//									return l;
//								}
//							});
//							assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//						}
//						sessionControl.verify();
//						sessionControl.reset();
//						try {
//							session.getFlushMode();
//							sessionControl.setReturnValue(FlushMode.AUTO, 1);
//							session.flush();
//							sessionControl.setVoidCallable(1);
//							if (flushNever) {
//								session.setFlushMode(FlushMode.NEVER);
//								sessionControl.setVoidCallable(1);
//							}
//							session.afterTransactionCompletion(true);
//							sessionControl.setVoidCallable(1);
//						}
//						catch (HibernateException e) {
//						}
//						sessionControl.replay();
//						return htl;
//					}
//					catch (Error err) {
//						err.printStackTrace();
//						throw err;
//					}
//				}
//			});
//
//			assertTrue("Correct result list", result == l);
//			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//			assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//		}
//		finally {
//			TransactionSynchronizationManager.unbindResource(sf);
//		}
//
//		utControl.verify();
//		tmControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//	}
//
//	public void testJtaTransactionRollbackWithPreBound() throws Exception {
//		MockControl utControl = MockControl.createControl(UserTransaction.class);
//		UserTransaction ut = (UserTransaction) utControl.getMock();
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_NO_TRANSACTION, 1);
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_ACTIVE, 1);
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_MARKED_ROLLBACK, 1);
//		ut.begin();
//		utControl.setVoidCallable(1);
//		ut.setRollbackOnly();
//		utControl.setVoidCallable(1);
//		ut.rollback();
//		utControl.setVoidCallable(1);
//		utControl.replay();
//
//		MockControl sfControl = MockControl.createControl(SessionFactory.class);
//		final SessionFactory sf = (SessionFactory) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//		session.getSessionFactory();
//		sessionControl.setReturnValue(sf, 1);
//		session.getFlushMode();
//		sessionControl.setReturnValue(FlushMode.AUTO, 1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -