Package org.springframework.tests.transaction

Examples of org.springframework.tests.transaction.MockJtaTransaction


  @Test
  @SuppressWarnings("rawtypes")
  public void testJtaSessionSynchronizationWithNonSessionFactoryImplementor() throws Exception {

    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getTransaction()).willReturn(transaction);
    final SessionFactory sf = mock(SessionFactory.class);
    final Session session = mock(Session.class);
    final SessionFactoryImplementor sfi = mock(SessionFactoryImplementor.class);
    given(sf.openSession()).willReturn(session);
    given(session.getSessionFactory()).willReturn(sfi);
    given(sfi.getTransactionManager()).willReturn(tm);
    given(session.isOpen()).willReturn(true);
    given(session.getFlushMode()).willReturn(FlushMode.AUTO);

    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() {

        @Override
        public Object doInHibernate(org.hibernate.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));
View Full Code Here


  @SuppressWarnings("rawtypes")
  public void testJtaSessionSynchronizationWithSpringTransactionLaterOn() throws Exception {
    UserTransaction ut = mock(UserTransaction.class);

    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(ut.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);
    final SessionFactoryImplementor sf = mock(SessionFactoryImplementor.class);
    final Session session = mock(Session.class);
    given(sf.openSession()).willReturn(session);
    given(sf.getTransactionManager()).willReturn(tm);
    given(session.isOpen()).willReturn(true);
    given(session.getFlushMode()).willReturn(FlushMode.AUTO);

    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() {

        @Override
        public Object doInHibernate(org.hibernate.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() {

      @Override
      protected void doInTransactionWithoutResult(TransactionStatus status) {
        for (int i = 2; i < 5; i++) {
          ht.executeFind(new HibernateCallback() {

            @Override
            public Object doInHibernate(org.hibernate.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));
View Full Code Here

  @SuppressWarnings("rawtypes")
  private void doTestJtaSessionSynchronizationWithPreBound(boolean flushNever) throws Exception {

    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getTransaction()).willReturn(transaction);
    final SessionFactoryImplementor sf = mock(SessionFactoryImplementor.class);
    final Session session = mock(Session.class);
    given(sf.getTransactionManager()).willReturn(tm);
    given(session.isOpen()).willReturn(true);
    if (flushNever) {
      given(session.getFlushMode()).willReturn(FlushMode.MANUAL, FlushMode.AUTO, FlushMode.MANUAL);
    }
    else {
      given(session.getFlushMode()).willReturn(FlushMode.AUTO);
    }

    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() {

          @Override
          public Object doInHibernate(org.hibernate.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("Has thread session", TransactionSynchronizationManager.hasResource(sf));
    }
View Full Code Here

  @Test
  @SuppressWarnings("rawtypes")
  public void testJtaSessionSynchronizationWithRemoteTransaction() throws Exception {

    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    final SessionFactoryImplementor sf = mock(SessionFactoryImplementor.class);
    final Session session = mock(Session.class);
    given(tm.getTransaction()).willReturn(transaction);
    given(sf.openSession()).willReturn(session);
    given(sf.getTransactionManager()).willReturn(tm);
    given(session.isOpen()).willReturn(true);
    given(session.getFlushMode()).willReturn(FlushMode.AUTO);

    for (int j = 0; j < 2; j++) {

      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() {

          @Override
          public Object doInHibernate(org.hibernate.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
View Full Code Here

  }

  @Test
  public void testClobStringTypeWithJtaSynchronization() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);

    given(lobHandler.getClobAsString(rs, "column")).willReturn("content");

    ClobStringType type = new ClobStringType(lobHandler, tm);
    assertEquals("content", type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, "content", 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.beforeCompletion();
    synch.afterCompletion(Status.STATUS_COMMITTED);
    verify(lobCreator).setClobAsString(ps, 1, "content");
  }
View Full Code Here

  }

  @Test
  public void testClobStringTypeWithJtaSynchronizationAndRollback() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);
    given(lobHandler.getClobAsString(rs, "column")).willReturn("content");

    ClobStringType type = new ClobStringType(lobHandler, tm);
    assertEquals("content", type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, "content", 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.afterCompletion(Status.STATUS_ROLLEDBACK);

    verify(lobCreator).setClobAsString(ps, 1, "content");
  }
View Full Code Here

  }

  @Test
  public void testBlobStringTypeWithJtaSynchronization() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);

    String content = "content";
    byte[] contentBytes = content.getBytes();
    given(lobHandler.getBlobAsBytes(rs, "column")).willReturn(contentBytes);

    BlobStringType type = new BlobStringType(lobHandler, tm);
    assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, content, 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.beforeCompletion();
    synch.afterCompletion(Status.STATUS_COMMITTED);

    verify(lobCreator).setBlobAsBytes(ps, 1, contentBytes);
View Full Code Here

  }

  @Test
  public void testBlobStringTypeWithJtaSynchronizationAndRollback() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);

    String content = "content";
    byte[] contentBytes = content.getBytes();
    given(lobHandler.getBlobAsBytes(rs, "column")).willReturn(contentBytes);

    BlobStringType type = new BlobStringType(lobHandler, tm);
    assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, content, 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.afterCompletion(Status.STATUS_ROLLEDBACK);
    verify(lobCreator).setBlobAsBytes(ps, 1, contentBytes);
  }
View Full Code Here

  }

  @Test
  public void testBlobByteArrayTypeWithJtaSynchronization() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);

    byte[] content = "content".getBytes();
    given(lobHandler.getBlobAsBytes(rs, "column")).willReturn(content);

    BlobByteArrayType type = new BlobByteArrayType(lobHandler, tm);
    assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, content, 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.beforeCompletion();
    synch.afterCompletion(Status.STATUS_COMMITTED);
    verify(lobCreator).setBlobAsBytes(ps, 1, content);
  }
View Full Code Here

  }

  @Test
  public void testBlobByteArrayTypeWithJtaSynchronizationAndRollback() throws Exception {
    TransactionManager tm = mock(TransactionManager.class);
    MockJtaTransaction transaction = new MockJtaTransaction();
    given(tm.getStatus()).willReturn(Status.STATUS_ACTIVE);
    given(tm.getTransaction()).willReturn(transaction);

    byte[] content = "content".getBytes();
    given(lobHandler.getBlobAsBytes(rs, "column")).willReturn(content);

    BlobByteArrayType type = new BlobByteArrayType(lobHandler, tm);
    assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
    type.nullSafeSet(ps, content, 1);
    Synchronization synch = transaction.getSynchronization();
    assertNotNull(synch);
    synch.afterCompletion(Status.STATUS_ROLLEDBACK);
    verify(lobCreator).setBlobAsBytes(ps, 1, content);
  }
View Full Code Here

TOP

Related Classes of org.springframework.tests.transaction.MockJtaTransaction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.