From f892e8b13ea87c1d7fb1c890f64ff00fc6e2de5f Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 16 Jul 2018 17:04:55 -0400 Subject: Use refresh() instead of lock() in guard This is the second step of separating the lock "refresh" operation from the original "lock" operation. Modified PolicyGuard to use refresh() to extend a lock. Also removed the host name from the owner String, as it will no be longer needed (once the final step is done). Change-Id: I3a498e6f81d9dba1bbdfd6f7388087355192bcf5 Issue-ID: POLICY-872 Signed-off-by: Jim Hahn --- .../org/onap/policy/guard/PolicyGuardTest.java | 38 ++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) (limited to 'controlloop/common/guard/src/test/java') diff --git a/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardTest.java b/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardTest.java index e24706989..dd1ede49c 100644 --- a/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardTest.java +++ b/controlloop/common/guard/src/test/java/org/onap/policy/guard/PolicyGuardTest.java @@ -43,7 +43,6 @@ import org.onap.policy.guard.impl.VMTargetLock; import org.onap.policy.guard.impl.VNFTargetLock; public class PolicyGuardTest { - private static final String HOSTNAME = "my.host"; private static final String INSTANCENAME = "targetInstance"; private static final int LOCK_SEC = 10; @@ -117,7 +116,6 @@ public class PolicyGuardTest { factory = mock(Factory.class); when(factory.getManager()).thenReturn(mgr); - when(factory.getHostname()).thenReturn(HOSTNAME); uuid = UUID.randomUUID(); dlcb = new DummyLockCallback(); @@ -277,42 +275,48 @@ public class PolicyGuardTest { } @Test - public void testManagerLockTarget() throws Exception { + public void testLockTargetTargetTypeStringUUIDLockCallbackInt() throws Exception { TargetType type = TargetType.VM; LockResult result; // acquired result = PolicyGuard.lockTarget(type, INSTANCENAME, uuid, dlcb, LOCK_SEC); - verify(mgr).lock(INSTANCENAME, HOSTNAME+":"+type+":"+uuid, LOCK_SEC); + verify(mgr).lock(INSTANCENAME, type+":"+uuid, LOCK_SEC); assertEquals(GuardResult.LOCK_ACQUIRED, result.getA()); assertEquals(VMTargetLock.class, result.getB().getClass()); - // diff host name - denied - when(factory.getHostname()).thenReturn(HOSTNAME+"x"); - result = PolicyGuard.lockTarget(type, INSTANCENAME, uuid, dlcb, LOCK_SEC+10); - verify(mgr).lock(INSTANCENAME, HOSTNAME+"x:"+type+":"+uuid, LOCK_SEC+10); + // diff owner - denied + UUID uuid2 = UUID.randomUUID(); + result = PolicyGuard.lockTarget(type, INSTANCENAME, uuid2, dlcb, LOCK_SEC+10); + verify(mgr).lock(INSTANCENAME, type+":"+uuid2, LOCK_SEC+10); assertEquals(GuardResult.LOCK_DENIED, result.getA()); assertNull(result.getB()); } @Test - public void testManagerLockTargetTargetLockInt() throws Exception { + public void testLockTargetTargetLockInt() throws Exception { TargetType type = TargetType.VM; - DummyTargetLock lock = new DummyTargetLock(type, uuid); + + LockResult result; // acquired - assertEquals(GuardResult.LOCK_ACQUIRED, PolicyGuard.lockTarget(lock, LOCK_SEC)); - verify(mgr).lock(INSTANCENAME, HOSTNAME+":"+type+":"+uuid, LOCK_SEC); + result = PolicyGuard.lockTarget(type, INSTANCENAME, uuid, dlcb, LOCK_SEC); + verify(mgr).lock(INSTANCENAME, type+":"+uuid, LOCK_SEC); + assertEquals(GuardResult.LOCK_ACQUIRED, result.getA()); + assertEquals(VMTargetLock.class, result.getB().getClass()); - // same host name - re-acquired + TargetLock lock = result.getB(); + + // refresh - re-acquired assertEquals(GuardResult.LOCK_ACQUIRED, PolicyGuard.lockTarget(lock, LOCK_SEC+1)); - verify(mgr).lock(INSTANCENAME, HOSTNAME+":"+type+":"+uuid, LOCK_SEC+1); + verify(mgr).refresh(INSTANCENAME, type+":"+uuid, LOCK_SEC+1); + + // unlock + PolicyGuard.unlockTarget(lock); - // diff host name - denied - when(factory.getHostname()).thenReturn(HOSTNAME+"_"); + // refresh - denied, as we no longer own the lock assertEquals(GuardResult.LOCK_DENIED, PolicyGuard.lockTarget(lock, LOCK_SEC+2)); - verify(mgr).lock(INSTANCENAME, HOSTNAME+"_:"+type+":"+uuid, LOCK_SEC+2); } @Test(expected = IllegalArgumentException.class) -- cgit 1.2.3-korg