aboutsummaryrefslogtreecommitdiffstats
path: root/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java')
-rw-r--r--policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java105
1 files changed, 47 insertions, 58 deletions
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
index 26732e42..92e60268 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
@@ -24,8 +24,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
@@ -36,17 +36,17 @@ import static org.onap.policy.drools.core.lock.TestUtils.expectException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
-import java.util.concurrent.Future;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.onap.policy.drools.core.lock.PolicyResourceLockFeatureAPI.Callback;
import org.onap.policy.drools.core.lock.PolicyResourceLockFeatureAPI.OperResult;
import org.onap.policy.drools.core.lock.PolicyResourceLockManager.Factory;
public class PolicyResourceLockManagerTest {
+ private static final int MAX_AGE_SEC = 4 * 60;
+
private static final String NULL_RESOURCE_ID = "null resourceId";
private static final String NULL_OWNER = "null owner";
@@ -63,13 +63,10 @@ public class PolicyResourceLockManagerTest {
*/
private static Factory saveFactory;
- private Callback callback1;
private PolicyResourceLockFeatureAPI impl1;
private PolicyResourceLockFeatureAPI impl2;
private List<PolicyResourceLockFeatureAPI> implList;
- private Future<Boolean> fut;
-
private PolicyResourceLockManager mgr;
@BeforeClass
@@ -84,7 +81,6 @@ public class PolicyResourceLockManagerTest {
@Before
public void setUp() {
- callback1 = mock(Callback.class);
impl1 = mock(PolicyResourceLockFeatureAPI.class);
impl2 = mock(PolicyResourceLockFeatureAPI.class);
@@ -111,7 +107,7 @@ public class PolicyResourceLockManagerTest {
* @param impl
*/
private void initImplementer(PolicyResourceLockFeatureAPI impl) {
- when(impl.beforeLock(anyString(), anyString(), any(Callback.class))).thenReturn(null);
+ when(impl.beforeLock(anyString(), anyString(), anyInt())).thenReturn(OperResult.OPER_UNHANDLED);
when(impl.beforeUnlock(anyString(), anyString())).thenReturn(OperResult.OPER_UNHANDLED);
when(impl.beforeIsLocked(anyString())).thenReturn(OperResult.OPER_UNHANDLED);
when(impl.beforeIsLockedBy(anyString(), anyString())).thenReturn(OperResult.OPER_UNHANDLED);
@@ -119,13 +115,10 @@ public class PolicyResourceLockManagerTest {
@Test
public void testLock() throws Exception {
- fut = mgr.lock(RESOURCE_A, OWNER1, callback1);
+ assertTrue(mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC));
- assertTrue(fut.isDone());
- assertTrue(fut.get());
-
- verify(impl1).beforeLock(RESOURCE_A, OWNER1, callback1);
- verify(impl2).beforeLock(RESOURCE_A, OWNER1, callback1);
+ verify(impl1).beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
+ verify(impl2).beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
verify(impl1).afterLock(RESOURCE_A, OWNER1, true);
verify(impl2).afterLock(RESOURCE_A, OWNER1, true);
@@ -135,43 +128,48 @@ public class PolicyResourceLockManagerTest {
assertFalse(mgr.isLockedBy(RESOURCE_A, OWNER2));
// null callback - not locked yet
- fut = mgr.lock(RESOURCE_C, OWNER3, null);
- assertTrue(fut.isDone());
- assertTrue(fut.get());
+ assertTrue(mgr.lock(RESOURCE_C, OWNER3, MAX_AGE_SEC));
// null callback - already locked
- fut = mgr.lock(RESOURCE_A, OWNER3, null);
- assertTrue(fut.isDone());
- assertFalse(fut.get());
+ assertFalse(mgr.lock(RESOURCE_A, OWNER3, MAX_AGE_SEC));
}
@Test
public void testLock_ArgEx() {
IllegalArgumentException ex =
- expectException(IllegalArgumentException.class, () -> mgr.lock(null, OWNER1, callback1));
+ expectException(IllegalArgumentException.class, () -> mgr.lock(null, OWNER1, MAX_AGE_SEC));
assertEquals(NULL_RESOURCE_ID, ex.getMessage());
- ex = expectException(IllegalArgumentException.class, () -> mgr.lock(RESOURCE_A, null, callback1));
+ ex = expectException(IllegalArgumentException.class, () -> mgr.lock(RESOURCE_A, null, MAX_AGE_SEC));
assertEquals(NULL_OWNER, ex.getMessage());
// this should not throw an exception
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
}
@Test
- public void testLock_BeforeIntercepted() {
- fut = mock(LockRequestFuture.class);
+ public void testLock_Acquired_BeforeIntercepted() {
+ // have impl1 intercept
+ when(impl1.beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC)).thenReturn(OperResult.OPER_ACCEPTED);
- // NOT async
- when(fut.isDone()).thenReturn(true);
+ assertTrue(mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC));
+ verify(impl1).beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
+ verify(impl2, never()).beforeLock(anyString(), anyString(), anyInt());
+
+ verify(impl1, never()).afterLock(anyString(), anyString(), anyBoolean());
+ verify(impl2, never()).afterLock(anyString(), anyString(), anyBoolean());
+ }
+
+ @Test
+ public void testLock_Denied_BeforeIntercepted() {
// have impl1 intercept
- when(impl1.beforeLock(RESOURCE_A, OWNER1, callback1)).thenReturn(fut);
+ when(impl1.beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC)).thenReturn(OperResult.OPER_DENIED);
- assertEquals(fut, mgr.lock(RESOURCE_A, OWNER1, callback1));
+ assertFalse(mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC));
- verify(impl1).beforeLock(RESOURCE_A, OWNER1, callback1);
- verify(impl2, never()).beforeLock(anyString(), anyString(), any(Callback.class));
+ verify(impl1).beforeLock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
+ verify(impl2, never()).beforeLock(anyString(), anyString(), anyInt());
verify(impl1, never()).afterLock(anyString(), anyString(), anyBoolean());
verify(impl2, never()).afterLock(anyString(), anyString(), anyBoolean());
@@ -183,10 +181,7 @@ public class PolicyResourceLockManagerTest {
// impl1 intercepts during afterLock()
when(impl1.afterLock(RESOURCE_A, OWNER1, true)).thenReturn(true);
- fut = mgr.lock(RESOURCE_A, OWNER1, callback1);
-
- assertTrue(fut.isDone());
- assertTrue(fut.get());
+ assertTrue(mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC));
// impl1 sees it, but impl2 does not
verify(impl1).afterLock(RESOURCE_A, OWNER1, true);
@@ -195,10 +190,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testLock_Acquired() throws Exception {
- fut = mgr.lock(RESOURCE_A, OWNER1, callback1);
-
- assertTrue(fut.isDone());
- assertTrue(fut.get());
+ assertTrue(mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC));
verify(impl1).afterLock(RESOURCE_A, OWNER1, true);
verify(impl2).afterLock(RESOURCE_A, OWNER1, true);
@@ -207,16 +199,13 @@ public class PolicyResourceLockManagerTest {
@Test
public void testLock_Denied_AfterIntercepted() throws Exception {
- mgr.lock(RESOURCE_A, OWNER1, callback1);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// impl1 intercepts during afterLock()
when(impl1.afterLock(RESOURCE_A, OWNER2, false)).thenReturn(true);
// owner2 tries to lock
- fut = mgr.lock(RESOURCE_A, OWNER2, null);
-
- assertTrue(fut.isDone());
- assertFalse(fut.get());
+ assertFalse(mgr.lock(RESOURCE_A, OWNER2, MAX_AGE_SEC));
// impl1 sees it, but impl2 does not
verify(impl1).afterLock(RESOURCE_A, OWNER2, false);
@@ -226,10 +215,10 @@ public class PolicyResourceLockManagerTest {
@Test
public void testLock_Denied() {
- mgr.lock(RESOURCE_A, OWNER1, callback1);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// owner2 tries to lock
- fut = mgr.lock(RESOURCE_A, OWNER2, null);
+ mgr.lock(RESOURCE_A, OWNER2, MAX_AGE_SEC);
verify(impl1).afterLock(RESOURCE_A, OWNER2, false);
verify(impl2).afterLock(RESOURCE_A, OWNER2, false);
@@ -237,8 +226,8 @@ public class PolicyResourceLockManagerTest {
@Test
public void testUnlock() throws Exception {
- mgr.lock(RESOURCE_A, OWNER1, null);
- mgr.lock(RESOURCE_B, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
+ mgr.lock(RESOURCE_B, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.unlock(RESOURCE_A, OWNER1));
@@ -261,7 +250,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testUnlock_BeforeInterceptedTrue() {
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// have impl1 intercept
when(impl1.beforeUnlock(RESOURCE_A, OWNER1)).thenReturn(OperResult.OPER_ACCEPTED);
@@ -278,7 +267,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testUnlock_BeforeInterceptedFalse() {
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// have impl1 intercept
when(impl1.beforeUnlock(RESOURCE_A, OWNER1)).thenReturn(OperResult.OPER_DENIED);
@@ -294,7 +283,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testUnlock_Unlocked() {
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.unlock(RESOURCE_A, OWNER1));
@@ -310,7 +299,7 @@ public class PolicyResourceLockManagerTest {
// have impl1 intercept
when(impl1.afterUnlock(RESOURCE_A, OWNER1, true)).thenReturn(true);
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.unlock(RESOURCE_A, OWNER1));
@@ -348,7 +337,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testIsLocked_True() {
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.isLocked(RESOURCE_A));
@@ -386,7 +375,7 @@ public class PolicyResourceLockManagerTest {
public void testIsLocked_BeforeIntercepted_False() {
// lock it so we can verify that impl1 overrides the superclass isLocker()
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// have impl1 intercept
when(impl1.beforeIsLocked(RESOURCE_A)).thenReturn(OperResult.OPER_DENIED);
@@ -399,7 +388,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testIsLockedBy_True() {
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.isLockedBy(RESOURCE_A, OWNER1));
@@ -410,7 +399,7 @@ public class PolicyResourceLockManagerTest {
@Test
public void testIsLockedBy_False() {
// different owner
- mgr.lock(RESOURCE_A, OWNER2, null);
+ mgr.lock(RESOURCE_A, OWNER2, MAX_AGE_SEC);
assertFalse(mgr.isLockedBy(RESOURCE_A, OWNER1));
@@ -444,7 +433,7 @@ public class PolicyResourceLockManagerTest {
public void testIsLockedBy_BeforeIntercepted_False() {
// lock it so we can verify that impl1 overrides the superclass isLocker()
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
// have impl1 intercept
when(impl1.beforeIsLockedBy(RESOURCE_A, OWNER1)).thenReturn(OperResult.OPER_DENIED);
@@ -470,7 +459,7 @@ public class PolicyResourceLockManagerTest {
// clear the implementer list
implList.clear();
- mgr.lock(RESOURCE_A, OWNER1, null);
+ mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
assertTrue(mgr.isLocked(RESOURCE_A));
assertFalse(mgr.isLocked(RESOURCE_B));