You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ti...@apache.org on 2016/04/21 01:09:10 UTC

svn commit: r1740210 [2/2] - in /aries/trunk/tx-control: tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ tx-control-jpa-itests/ tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/ tx-control-service-common/ tx-co...

Modified: aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionControlStatusTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionControlStatusTest.java?rev=1740210&r1=1740209&r2=1740210&view=diff
==============================================================================
--- aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionControlStatusTest.java (original)
+++ aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionControlStatusTest.java Wed Apr 20 23:09:10 2016
@@ -3,43 +3,31 @@ package org.apache.aries.tx.control.serv
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.osgi.service.transaction.control.TransactionStatus.ACTIVE;
 import static org.osgi.service.transaction.control.TransactionStatus.MARKED_ROLLBACK;
 import static org.osgi.service.transaction.control.TransactionStatus.NO_TRANSACTION;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import javax.transaction.xa.XAException;
 
-import org.apache.aries.tx.control.service.xa.impl.TransactionControlImpl;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
-import org.osgi.service.coordinator.Coordination;
-import org.osgi.service.coordinator.Coordinator;
-import org.osgi.service.coordinator.Participant;
 import org.osgi.service.transaction.control.LocalResource;
 import org.osgi.service.transaction.control.ResourceProvider;
+import org.osgi.service.transaction.control.TransactionContext;
 
 @RunWith(MockitoJUnitRunner.class)
 public class TransactionControlStatusTest {
 
 	@Mock
-	Coordinator coordinator;
-	@Mock
-	Coordination coordination1;
-	@Mock
-	Coordination coordination2;
-
-	@Mock
 	ResourceProvider<Object> testProvider;
 	@Mock
 	LocalResource testResource;
@@ -47,24 +35,17 @@ public class TransactionControlStatusTes
 	TransactionControlImpl txControl;
 
 	Object resource = new Object();
-	Map<Class<?>, Object> variables1;
-	Map<Class<?>, Object> variables2;
 
 	@Before
 	public void setUp() throws XAException {
 
 		resource = new Object();
-		variables1 = new HashMap<>();
-		variables2 = new HashMap<>();
-
-		Mockito.when(coordination1.getVariables()).thenReturn(variables1);
-		Mockito.when(coordination2.getVariables()).thenReturn(variables2);
 		
-		txControl = new TransactionControlImpl(new GeronimoTransactionManager(), coordinator);
+		txControl = new TransactionControlImpl(new GeronimoTransactionManager());
 	}
 
 	@Test
-	public void testGetRollbackOnlyUnscopedNoCoord() {
+	public void testGetRollbackOnlyUnscoped() {
 		try {
 			txControl.getRollbackOnly();
 			fail("Should not be able to get rollback only");
@@ -74,7 +55,7 @@ public class TransactionControlStatusTes
 	}
 
 	@Test
-	public void testSetRollbackOnlyUnscopedNoCoord() {
+	public void testSetRollbackOnlyUnscoped() {
 		try {
 			txControl.setRollbackOnly();
 			fail("Should not be able to set rollback only");
@@ -84,80 +65,15 @@ public class TransactionControlStatusTes
 	}
 
 	@Test
-	public void testTranChecksUnscopedNoCoord() {
+	public void testTranChecksUnscoped() {
 		assertFalse(txControl.activeTransaction());
 		assertFalse(txControl.activeScope());
 		assertNull(txControl.getCurrentContext());
 	}
 
-	private void setupExistingCoordination() {
-		Mockito.when(coordinator.peek()).thenReturn(coordination1);
-		Mockito.when(coordination1.getVariables()).thenReturn(variables1);
-	}
-	
-	@Test
-	public void testGetRollbackOnlyUnscopedWithCoordination() {
-		setupExistingCoordination();
-		
-		try {
-			txControl.getRollbackOnly();
-			fail("Should not be able to get rollback only");
-		} catch (IllegalStateException e) {
-
-		}
-	}
-
-	@Test
-	public void testSetRollbackOnlyUnscopedWithCoordination() {
-		setupExistingCoordination();
-		
-
-		try {
-			txControl.setRollbackOnly();
-			fail("Should not be able to set rollback only");
-		} catch (IllegalStateException e) {
-
-		}
-	}
-	
-	@Test
-	public void testTranChecksUnscopedWithCoordination() {
-		
-		setupExistingCoordination();
-		
-		assertFalse(txControl.activeTransaction());
-		assertFalse(txControl.activeScope());
-		assertNull(txControl.getCurrentContext());
-	}
-
-	private void setupCoordinatorForSingleTransaction() {
-		setupCoordinatorForSingleTransaction(null);
-	}
-	
-	private void setupCoordinatorForSingleTransaction(Coordination existing) {
-		
-		Mockito.when(coordinator.peek()).thenReturn(existing);
-		
-		Mockito.when(coordinator.begin(Mockito.anyString(), Mockito.anyLong()))
-			.then(i -> {
-				Mockito.when(coordinator.peek()).thenReturn(coordination1);
-				return coordination1;
-			});
-		
-		
-		Mockito.doAnswer(i -> Mockito.when(coordinator.peek()).thenReturn(existing))
-			.when(coordination1).end();
-		Mockito.doAnswer(i -> Mockito.when(coordinator.peek()).thenReturn(existing) != null)
-			.when(coordination1).fail(Mockito.any(Throwable.class));
-		
-		Mockito.when(coordination1.getVariables()).thenReturn(variables1);
-	}
-	
 	@Test
 	public void testGetRollbackOnlyScoped() {
-		setupCoordinatorForSingleTransaction();
 		txControl.notSupported(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
 			try {
 				txControl.getRollbackOnly();
 				fail("Should not be able to get or set rollback when there is no transaction");
@@ -169,10 +85,7 @@ public class TransactionControlStatusTes
 
 	@Test
 	public void testSetRollbackOnlyScoped() {
-		setupCoordinatorForSingleTransaction();
-		
 		txControl.notSupported(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
 			try {
 				txControl.setRollbackOnly();
 				fail("Should not be able to get or set rollback when there is no transaction");
@@ -185,7 +98,6 @@ public class TransactionControlStatusTes
 	@Test
 	public void testTranChecksScoped() {
 		
-		setupCoordinatorForSingleTransaction();
 		txControl.notSupported(() -> {
 			assertFalse(txControl.activeTransaction());
 			assertTrue(txControl.activeScope());
@@ -197,53 +109,43 @@ public class TransactionControlStatusTes
 	}
 
 	@Test
-	public void testGetRollbackOnlyScopedExistingCoordination() {
-		setupCoordinatorForSingleTransaction(coordination2);
+	public void testInheritNotSupported() {
 		txControl.notSupported(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
-			try {
-				txControl.getRollbackOnly();
-				fail("Should not be able to get or set rollback when there is no transaction");
-			} catch (IllegalStateException ise) {
-			}
-			return null;
-		});
+				TransactionContext currentContext = txControl.getCurrentContext();
+				return txControl.notSupported(() -> {
+						assertSame(currentContext, txControl.getCurrentContext());
+						return null;
+					});
+			});
 	}
-	
+
 	@Test
-	public void testSetRollbackOnlyScopedExistingCoordination() {
-		setupCoordinatorForSingleTransaction(coordination2);
-		
+	public void testInheritNotSupportedSupports() {
 		txControl.notSupported(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
-			try {
-				txControl.setRollbackOnly();
-				fail("Should not be able to get or set rollback when there is no transaction");
-			} catch (IllegalStateException ise) {
-			}
-			return null;
+			TransactionContext currentContext = txControl.getCurrentContext();
+			return txControl.supports(() -> {
+				assertSame(currentContext, txControl.getCurrentContext());
+				return null;
+			});
 		});
 	}
-	
+
 	@Test
-	public void testTranChecksScopedExistingCoordination() {
-		
-		setupCoordinatorForSingleTransaction(coordination2);
+	public void testInheritNotSupportedRequired() {
 		txControl.notSupported(() -> {
-			assertFalse(txControl.activeTransaction());
-			assertTrue(txControl.activeScope());
-			assertNotNull(txControl.getCurrentContext());
-			assertEquals(NO_TRANSACTION, txControl.getCurrentContext().getTransactionStatus());
-			
+			TransactionContext currentContext = txControl.getCurrentContext();
+			txControl.required(() -> {
+				assertNotSame(currentContext, txControl.getCurrentContext());
+				return null;
+			});
+			assertSame(currentContext, txControl.getCurrentContext());
 			return null;
 		});
 	}
 
 	@Test
 	public void testGetRollbackOnlyActive() {
-		setupCoordinatorForSingleTransaction();
 		txControl.required(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
 			assertFalse(txControl.getRollbackOnly());
 			return null;
 		});
@@ -251,14 +153,10 @@ public class TransactionControlStatusTes
 	
 	@Test
 	public void testSetRollbackOnlyActive() {
-		setupCoordinatorForSingleTransaction();
-		
 		txControl.required(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
 			assertFalse(txControl.getRollbackOnly());
 			txControl.setRollbackOnly();
 			assertTrue(txControl.getRollbackOnly());
-			
 			return null;
 		});
 	}
@@ -266,7 +164,6 @@ public class TransactionControlStatusTes
 	@Test
 	public void testTranChecksActive() {
 		
-		setupCoordinatorForSingleTransaction();
 		txControl.required(() -> {
 			assertTrue(txControl.activeTransaction());
 			assertTrue(txControl.activeScope());
@@ -281,42 +178,36 @@ public class TransactionControlStatusTes
 	}
 	
 	@Test
-	public void testGetRollbackOnlyActiveExistingCoordination() {
-		setupCoordinatorForSingleTransaction(coordination2);
+	public void testInheritSupports() {
 		txControl.required(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
-			assertFalse(txControl.getRollbackOnly());
-			return null;
-		});
+				TransactionContext currentContext = txControl.getCurrentContext();
+				return txControl.supports(() -> {
+						assertSame(currentContext, txControl.getCurrentContext());
+						return null;
+					});
+			});
 	}
-	
+
 	@Test
-	public void testSetRollbackOnlyActiveExistingCoordination() {
-		setupCoordinatorForSingleTransaction(coordination2);
-		
+	public void testInheritRequired() {
 		txControl.required(() -> {
-			Mockito.verify(coordination1).addParticipant(Mockito.any(Participant.class));
-			assertFalse(txControl.getRollbackOnly());
-			txControl.setRollbackOnly();
-			assertTrue(txControl.getRollbackOnly());
-			
-			return null;
+			TransactionContext currentContext = txControl.getCurrentContext();
+			return txControl.required(() -> {
+				assertSame(currentContext, txControl.getCurrentContext());
+				return null;
+			});
 		});
 	}
-	
+
 	@Test
-	public void testTranChecksActiveExistingCoordination() {
-		
-		setupCoordinatorForSingleTransaction(coordination2);
+	public void testInheritRequiredNotSupported() {
 		txControl.required(() -> {
-			assertTrue(txControl.activeTransaction());
-			assertTrue(txControl.activeScope());
-			assertNotNull(txControl.getCurrentContext());
-			assertEquals(ACTIVE, txControl.getCurrentContext().getTransactionStatus());
-
-			txControl.setRollbackOnly();
-			assertEquals(MARKED_ROLLBACK, txControl.getCurrentContext().getTransactionStatus());
-			
+			TransactionContext currentContext = txControl.getCurrentContext();
+			txControl.notSupported(() -> {
+				assertNotSame(currentContext, txControl.getCurrentContext());
+				return null;
+			});
+			assertSame(currentContext, txControl.getCurrentContext());
 			return null;
 		});
 	}

Modified: aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionLifecycleTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionLifecycleTest.java?rev=1740210&r1=1740209&r2=1740210&view=diff
==============================================================================
--- aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionLifecycleTest.java (original)
+++ aries/trunk/tx-control/tx-control-service-xa/src/test/java/org/apache/aries/tx/control/service/xa/impl/TransactionLifecycleTest.java Wed Apr 20 23:09:10 2016
@@ -5,21 +5,14 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import javax.transaction.xa.XAException;
 
-import org.apache.aries.tx.control.service.xa.impl.TransactionControlImpl;
 import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
-import org.osgi.service.coordinator.Coordination;
-import org.osgi.service.coordinator.Coordinator;
 import org.osgi.service.transaction.control.LocalResource;
 import org.osgi.service.transaction.control.ResourceProvider;
 
@@ -27,65 +20,15 @@ import org.osgi.service.transaction.cont
 public class TransactionLifecycleTest {
 
 	@Mock
-	Coordinator coordinator;
-	@Mock
-	Coordination coordination1;
-	@Mock
-	Coordination coordination2;
-
-	@Mock
 	ResourceProvider<Object> testProvider;
 	@Mock
 	LocalResource testResource;
 
 	TransactionControlImpl txControl;
 
-	Map<Class<?>, Object> variables1;
-	Map<Class<?>, Object> variables2;
-
 	@Before
 	public void setUp() throws XAException {
-		variables1 = new HashMap<>();
-		variables2 = new HashMap<>();
-
-		setupCoordinations();
-
-		txControl = new TransactionControlImpl(new GeronimoTransactionManager(), coordinator);
-	}
-
-	/**
-	 * Allow up to two Coordinations to be happening
-	 */
-	private void setupCoordinations() {
-		Mockito.when(coordinator.begin(Mockito.anyString(), Mockito.anyLong())).then(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(coordination1);
-			return coordination1;
-		}).then(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(coordination2);
-			return coordination2;
-		}).thenThrow(new IllegalStateException("Only two coordinations at a time in the test"));
-
-		Mockito.when(coordination1.getVariables()).thenReturn(variables1);
-		Mockito.when(coordination1.getId()).thenReturn(42L);
-		Mockito.doAnswer(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(null);
-			return null;
-		}).when(coordination1).end();
-		Mockito.doAnswer(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(null);
-			return null;
-		}).when(coordination1).fail(Mockito.any(Throwable.class));
-
-		Mockito.when(coordination2.getVariables()).thenReturn(variables2);
-		Mockito.when(coordination2.getId()).thenReturn(43L);
-		Mockito.doAnswer(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(coordination1);
-			return null;
-		}).when(coordination2).end();
-		Mockito.doAnswer(i -> {
-			Mockito.when(coordinator.peek()).thenReturn(coordination1);
-			return null;
-		}).when(coordination2).fail(Mockito.any(Throwable.class));
+		txControl = new TransactionControlImpl(new GeronimoTransactionManager());
 	}
 
 	@Test