package com.github.dynamicextensionsalfresco.aop; import static org.mockito.Mockito.*; import com.github.dynamicextensionsalfresco.annotations.Transactional; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Integration test for {@link TransactionalAdvice} applied to {@link Transactional}-annotated methods. * * @author Laurens Fridael * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("AdviceTest-context.xml") public class TransactionalAdviceTest { @Autowired private RetryingTransactionHelper retryingTransactionHelper; @Autowired private ExampleBean bean; @Test @SuppressWarnings("unchecked") public void testWithDefaultSettings() { bean.doWithDefaultSettings(); verify(retryingTransactionHelper).doInTransaction(any(RetryingTransactionCallback.class), eq(false), eq(false)); } @Test @SuppressWarnings("unchecked") public void testWithReadOnly() { bean.doWithReadOnly(); verify(retryingTransactionHelper).doInTransaction(any(RetryingTransactionCallback.class), eq(true), eq(false)); } @Test @SuppressWarnings("unchecked") public void testWithReadOnlyAndRequiresNew() { bean.doWithReadOnlyAndRequiresNew(); verify(retryingTransactionHelper).doInTransaction(any(RetryingTransactionCallback.class), eq(true), eq(true)); } }