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

📄 toplinkjtatransactiontests.java

📁 struts+spring 源码 希望能给大家带来帮助
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
//		MockJtaTransaction transaction = new MockJtaTransaction();
//		tm.getStatus();
//		tmControl.setReturnValue(Status.STATUS_ACTIVE, 6);
//		tm.getTransaction();
//		tmControl.setReturnValue(transaction, 6);
//
//		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();
//		MockControl sfiControl = MockControl.createControl(SessionFactoryImplementor.class);
//		final SessionFactoryImplementor sfi = (SessionFactoryImplementor) sfiControl.getMock();
//		sf.openSession();
//		sfControl.setReturnValue(session, 1);
//		session.getSessionFactory();
//		sessionControl.setReturnValue(sfi, 6);
//		sfi.getTransactionManager();
//		sfiControl.setReturnValue(tm, 6);
//		session.getFlushMode();
//		sessionControl.setReturnValue(FlushMode.AUTO, 1);
//		session.flush();
//		sessionControl.setVoidCallable(1);
//		session.close();
//		sessionControl.setReturnValue(null, 1);
//
//		tmControl.replay();
//		sfControl.replay();
//		sessionControl.replay();
//		sfiControl.replay();
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		HibernateTemplate ht = new HibernateTemplate(sf);
//		ht.setExposeNativeSession(true);
//		for (int i = 0; i < 5; i++) {
//			ht.executeFind(new HibernateCallback() {
//				public Object doInHibernate(Session sess) {
//					assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//					assertEquals(session, sess);
//					return null;
//				}
//			});
//		}
//
//		Synchronization synchronization = transaction.getSynchronization();
//		assertTrue("JTA Synchronization registered", synchronization != null);
//		synchronization.beforeCompletion();
//		synchronization.afterCompletion(Status.STATUS_COMMITTED);
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//
//		tmControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//		sfiControl.verify();
//	}
//
//	public void testJtaSessionSynchronizationWithSpringTransactionLaterOn() throws Exception {
//		MockControl utControl = MockControl.createControl(UserTransaction.class);
//		UserTransaction ut = (UserTransaction) utControl.getMock();
//		MockControl tmControl = MockControl.createControl(TransactionManager.class);
//		TransactionManager tm = (TransactionManager) tmControl.getMock();
//		MockJtaTransaction transaction = new MockJtaTransaction();
//		ut.getStatus();
//		utControl.setReturnValue(Status.STATUS_ACTIVE, 2);
//		tm.getStatus();
//		tmControl.setReturnValue(Status.STATUS_ACTIVE, 6);
//		tm.getTransaction();
//		tmControl.setReturnValue(transaction, 6);
//
//		MockControl sfControl = MockControl.createControl(SessionFactoryImplementor.class);
//		final SessionFactoryImplementor sf = (SessionFactoryImplementor) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//		sf.getConnectionProvider();
//		sfControl.setReturnValue(null, 1);
//		sf.openSession();
//		sfControl.setReturnValue(session, 1);
//		sf.getTransactionManager();
//		sfControl.setReturnValue(tm, 6);
//		session.getFlushMode();
//		sessionControl.setReturnValue(FlushMode.AUTO, 1);
//		session.flush();
//		sessionControl.setVoidCallable(1);
//		session.close();
//		sessionControl.setReturnValue(null, 1);
//
//		utControl.replay();
//		tmControl.replay();
//		sfControl.replay();
//		sessionControl.replay();
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		final HibernateTemplate ht = new HibernateTemplate(sf);
//		ht.setExposeNativeSession(true);
//		for (int i = 0; i < 2; i++) {
//			ht.executeFind(new HibernateCallback() {
//				public Object doInHibernate(Session sess) {
//					assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//					assertEquals(session, sess);
//					return null;
//				}
//			});
//		}
//
//		TransactionTemplate tt = new TransactionTemplate(new JtaTransactionManager(ut));
//		tt.execute(new TransactionCallbackWithoutResult() {
//			protected void doInTransactionWithoutResult(TransactionStatus status) {
//				for (int i = 2; i < 5; i++) {
//					ht.executeFind(new HibernateCallback() {
//						public Object doInHibernate(Session sess) {
//							assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//							assertEquals(session, sess);
//							return null;
//						}
//					});
//				}
//			}
//		});
//
//		Synchronization synchronization = transaction.getSynchronization();
//		assertTrue("JTA synchronization registered", synchronization != null);
//		synchronization.beforeCompletion();
//		synchronization.afterCompletion(Status.STATUS_COMMITTED);
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//
//		utControl.verify();
//		tmControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//	}
//
//	public void testJtaSessionSynchronizationWithPreBound() throws Exception {
//		doTestJtaSessionSynchronizationWithPreBound(false);
//	}
//
//	public void testJtaJtaSessionSynchronizationWithPreBoundAndFlushNever() throws Exception {
//		doTestJtaSessionSynchronizationWithPreBound(true);
//	}
//
//	private void doTestJtaSessionSynchronizationWithPreBound(boolean flushNever) throws Exception {
//		MockControl tmControl = MockControl.createControl(TransactionManager.class);
//		TransactionManager tm = (TransactionManager) tmControl.getMock();
//		MockJtaTransaction transaction = new MockJtaTransaction();
//		tm.getStatus();
//		tmControl.setReturnValue(Status.STATUS_ACTIVE, 6);
//		tm.getTransaction();
//		tmControl.setReturnValue(transaction, 6);
//
//		MockControl sfControl = MockControl.createControl(SessionFactoryImplementor.class);
//		final SessionFactoryImplementor sf = (SessionFactoryImplementor) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//		sf.getConnectionProvider();
//		sfControl.setReturnValue(null, 1);
//		sf.getTransactionManager();
//		sfControl.setReturnValue(tm, 6);
//		session.getFlushMode();
//		if (flushNever) {
//			sessionControl.setReturnValue(FlushMode.NEVER, 1);
//			session.setFlushMode(FlushMode.AUTO);
//			sessionControl.setVoidCallable(1);
//		}
//		else {
//			sessionControl.setReturnValue(FlushMode.AUTO, 1);
//		}
//
//		tmControl.replay();
//		sfControl.replay();
//		sessionControl.replay();
//
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//		TransactionSynchronizationManager.bindResource(sf, new SessionHolder(session));
//		try {
//			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//			HibernateTemplate ht = new HibernateTemplate(sf);
//			ht.setExposeNativeSession(true);
//			for (int i = 0; i < 5; i++) {
//				ht.executeFind(new HibernateCallback() {
//					public Object doInHibernate(Session sess) {
//						assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//						assertEquals(session, sess);
//						return null;
//					}
//				});
//			}
//
//			sessionControl.verify();
//			sessionControl.reset();
//			session.getFlushMode();
//			sessionControl.setReturnValue(FlushMode.AUTO, 1);
//			session.flush();
//			sessionControl.setVoidCallable(1);
//			if (flushNever) {
//				session.setFlushMode(FlushMode.NEVER);
//				sessionControl.setVoidCallable(1);
//			}
//			sessionControl.replay();
//
//			Synchronization synchronization = transaction.getSynchronization();
//			assertTrue("JTA synchronization registered", synchronization != null);
//			synchronization.beforeCompletion();
//			synchronization.afterCompletion(Status.STATUS_COMMITTED);
//			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//		}
//		finally {
//			TransactionSynchronizationManager.unbindResource(sf);
//		}
//		assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//
//		tmControl.verify();
//		sfControl.verify();
//		sessionControl.verify();
//	}
//
//	public void testJtaSessionSynchronizationWithRemoteTransaction() throws Exception {
//		MockControl tmControl = MockControl.createControl(TransactionManager.class);
//		TransactionManager tm = (TransactionManager) tmControl.getMock();
//		MockJtaTransaction transaction = new MockJtaTransaction();
//
//		MockControl sfControl = MockControl.createControl(SessionFactoryImplementor.class);
//		final SessionFactoryImplementor sf = (SessionFactoryImplementor) sfControl.getMock();
//		final MockControl sessionControl = MockControl.createControl(Session.class);
//		final Session session = (Session) sessionControl.getMock();
//
//		for (int j = 0; j < 2; j++) {
//			tmControl.reset();
//			sfControl.reset();
//			sessionControl.reset();
//
//			tm.getStatus();
//			tmControl.setReturnValue(Status.STATUS_ACTIVE, 6);
//			tm.getTransaction();
//			tmControl.setReturnValue(transaction, 6);
//
//			sf.getConnectionProvider();
//			sfControl.setReturnValue(null, 1);
//			sf.openSession();
//			sfControl.setReturnValue(session, 1);
//			sf.getTransactionManager();
//			sfControl.setReturnValue(tm, 6);
//			session.getFlushMode();
//			sessionControl.setReturnValue(FlushMode.AUTO, 1);
//			session.flush();
//			sessionControl.setVoidCallable(1);
//			session.close();
//			sessionControl.setReturnValue(null, 1);
//
//			tmControl.replay();
//			sfControl.replay();
//			sessionControl.replay();
//
//			if (j == 0) {
//				assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
//			}
//			else {
//				assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//			}
//
//			HibernateTemplate ht = new HibernateTemplate(sf);
//			ht.setExposeNativeSession(true);
//			for (int i = 0; i < 5; i++) {
//				ht.executeFind(new HibernateCallback() {
//					public Object doInHibernate(Session sess) {
//						assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//						assertEquals(session, sess);
//						return null;
//					}
//				});
//			}
//
//			final Synchronization synchronization = transaction.getSynchronization();
//			assertTrue("JTA synchronization registered", synchronization != null);
//
//			// Call synchronization in a new thread, to simulate a synchronization
//			// triggered by a new remote call from a remote transaction coordinator.
//			Thread synch = new Thread() {
//				public void run() {
//					synchronization.beforeCompletion();
//					synchronization.afterCompletion(Status.STATUS_COMMITTED);
//				}
//			};
//			synch.start();
//			synch.join();
//
//			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
//			SessionHolder sessionHolder = (SessionHolder) TransactionSynchronizationManager.getResource(sf);
//			assertTrue("Thread session holder empty", sessionHolder.isEmpty());
//			assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
//
//			tmControl.verify();
//			sfControl.verify();
//			sessionControl.verify();
//		}
//
//		TransactionSynchronizationManager.unbindResource(sf);
//	}

	protected void tearDown() {
		assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
		assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
	}

}

⌨️ 快捷键说明

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