diff options
Diffstat (limited to 'policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java')
-rw-r--r-- | policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java | 115 |
1 files changed, 63 insertions, 52 deletions
diff --git a/policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java b/policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java index 2ba7cde9..23511abd 100644 --- a/policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java +++ b/policy-management/src/test/java/org/onap/policy/drools/system/internal/FeatureLockImplTest.java @@ -3,7 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2023 Nordix Foundation. + * Modifications Copyright (C) 2023-2024 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,12 +24,12 @@ package org.onap.policy.drools.system.internal; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -40,15 +40,18 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.io.Serial; import java.util.concurrent.ScheduledExecutorService; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import org.onap.policy.drools.core.DroolsRunnable; import org.onap.policy.drools.core.PolicySession; import org.onap.policy.drools.core.lock.LockCallback; @@ -56,8 +59,8 @@ import org.onap.policy.drools.core.lock.LockState; import org.onap.policy.drools.system.PolicyEngineConstants; import org.springframework.test.util.ReflectionTestUtils; -@RunWith(MockitoJUnitRunner.class) -public class FeatureLockImplTest { +@ExtendWith(MockitoExtension.class) +class FeatureLockImplTest { private static final String POLICY_ENGINE_EXECUTOR_FIELD = "executorService"; private static final String OWNER_KEY = "my key"; private static final String RESOURCE = "my resource"; @@ -72,11 +75,13 @@ public class FeatureLockImplTest { @Mock private LockCallback callback; + AutoCloseable closeable; + /** * Saves static fields and configures the location of the property files. */ - @BeforeClass - public static void setUpBeforeClass() { + @BeforeAll + static void setUpBeforeClass() { saveExec = (ScheduledExecutorService) ReflectionTestUtils.getField(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD); } @@ -84,8 +89,8 @@ public class FeatureLockImplTest { /** * Restores static fields. */ - @AfterClass - public static void tearDownAfterClass() { + @AfterAll + static void tearDownAfterClass() { ReflectionTestUtils.setField(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD, saveExec); } @@ -93,13 +98,19 @@ public class FeatureLockImplTest { * Initializes the mocks and creates a feature that uses {@link #exsvc} to execute * tasks. */ - @Before - public void setUp() { + @BeforeEach + void setUp() { + closeable = MockitoAnnotations.openMocks(this); ReflectionTestUtils.setField(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD, exsvc); } + @AfterEach + void closeMocks() throws Exception { + closeable.close(); + } + @Test - public void testNoArgs() { + void testNoArgs() { MyLock lock = new MyLock(); assertNull(lock.getResourceId()); assertNull(lock.getOwnerKey()); @@ -108,7 +119,7 @@ public class FeatureLockImplTest { } @Test - public void testFeatureLockImpl() { + void testFeatureLockImpl() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); assertTrue(lock.isWaiting()); assertEquals(RESOURCE, lock.getResourceId()); @@ -118,7 +129,7 @@ public class FeatureLockImplTest { } @Test - public void testSerializable() throws Exception { + void testSerializable() throws Exception { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock = roundTrip(lock); @@ -131,14 +142,14 @@ public class FeatureLockImplTest { } @Test - public void testGrant() { + void testGrant() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock.grant(); assertTrue(lock.isActive()); assertEquals(1, lock.nupdates); - invokeCallback(1); + invokeCallback(); verify(callback).lockAvailable(any()); verify(callback, never()).lockUnavailable(any()); } @@ -147,7 +158,7 @@ public class FeatureLockImplTest { * Tests grant() when the lock is already unavailable. */ @Test - public void testGrantUnavailable() { + void testGrantUnavailable() { MyLock lock = new MyLock(LockState.UNAVAILABLE, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock.setState(LockState.UNAVAILABLE); lock.grant(); @@ -159,13 +170,13 @@ public class FeatureLockImplTest { } @Test - public void testDeny() { + void testDeny() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock.deny("my reason"); assertTrue(lock.isUnavailable()); - invokeCallback(1); + invokeCallback(); verify(callback, never()).lockAvailable(any()); verify(callback).lockUnavailable(any()); } @@ -174,10 +185,11 @@ public class FeatureLockImplTest { * Tests doNotify() when a session exists. */ @Test - public void testDoNotifySession() { + void testDoNotifySession() { PolicySession session = mock(PolicySession.class); MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback) { + @Serial private static final long serialVersionUID = 1L; @Override @@ -207,20 +219,20 @@ public class FeatureLockImplTest { * Tests doNotify() when there is no session. */ @Test - public void testDoNotifyNoSession() { + void testDoNotifyNoSession() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock.grant(); assertTrue(lock.isActive()); assertEquals(1, lock.nupdates); - invokeCallback(1); + invokeCallback(); verify(callback).lockAvailable(any()); verify(callback, never()).lockUnavailable(any()); } @Test - public void testFreeAllowed() { + void testFreeAllowed() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); assertTrue(lock.freeAllowed()); } @@ -229,7 +241,7 @@ public class FeatureLockImplTest { * Tests freeAllowed() when the lock is unavailable. */ @Test - public void testFreeAllowedUnavailable() { + void testFreeAllowedUnavailable() { MyLock lock = new MyLock(LockState.UNAVAILABLE, RESOURCE, OWNER_KEY, HOLD_SEC, callback); assertFalse(lock.freeAllowed()); assertTrue(lock.isUnavailable()); @@ -241,7 +253,7 @@ public class FeatureLockImplTest { * @throws Exception if an error occurs */ @Test - public void testFreeAllowedSerialized() throws Exception { + void testFreeAllowedSerialized() throws Exception { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock = roundTrip(lock); @@ -254,7 +266,7 @@ public class FeatureLockImplTest { * @throws Exception if an error occurs */ @Test - public void testFreeAllowedNoFeature() throws Exception { + void testFreeAllowedNoFeature() throws Exception { MyLock lock = new MyLockNoFeature(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock = roundTrip(lock); @@ -263,7 +275,7 @@ public class FeatureLockImplTest { } @Test - public void testExtendAllowed() { + void testExtendAllowed() { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); LockCallback scallback = mock(LockCallback.class); @@ -288,7 +300,7 @@ public class FeatureLockImplTest { * Tests extendAllowed() when the lock is unavailable. */ @Test - public void testExtendAllowedUnavailable() { + void testExtendAllowedUnavailable() { MyLock lock = new MyLock(LockState.UNAVAILABLE, RESOURCE, OWNER_KEY, HOLD_SEC, callback); LockCallback scallback = mock(LockCallback.class); @@ -297,7 +309,7 @@ public class FeatureLockImplTest { assertEquals(HOLD_SEC2, lock.getHoldSec()); assertSame(scallback, lock.getCallback()); - invokeCallback(1); + invokeCallback(); verify(scallback, never()).lockAvailable(lock); verify(scallback).lockUnavailable(lock); } @@ -308,7 +320,7 @@ public class FeatureLockImplTest { * @throws Exception if an error occurs */ @Test - public void testExtendAllowedSerialized() throws Exception { + void testExtendAllowedSerialized() throws Exception { MyLock lock = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock = roundTrip(lock); @@ -328,7 +340,7 @@ public class FeatureLockImplTest { * @throws Exception if an error occurs */ @Test - public void testExtendAllowedNoFeature() throws Exception { + void testExtendAllowedNoFeature() throws Exception { MyLock lock = new MyLockNoFeature(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); lock = roundTrip(lock); @@ -339,21 +351,21 @@ public class FeatureLockImplTest { assertEquals(HOLD_SEC2, lock.getHoldSec()); assertSame(scallback, lock.getCallback()); - invokeCallback(1); + invokeCallback(); verify(scallback, never()).lockAvailable(lock); verify(scallback).lockUnavailable(lock); } @Test - public void testGetSession() { + void testGetSession() { MyLockStdSession lock = new MyLockStdSession(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback); // this should invoke the real policy session without throwing an exception - assertThatCode(() -> lock.grant()).doesNotThrowAnyException(); + assertThatCode(lock::grant).doesNotThrowAnyException(); } @Test - public void testToString() { + void testToString() { String text = new MyLock(LockState.WAITING, RESOURCE, OWNER_KEY, HOLD_SEC, callback).toString(); assertNotNull(text); assertThat(text).contains("LockImpl"); @@ -374,21 +386,18 @@ public class FeatureLockImplTest { /** * Invokes the last call-back in the work queue. * - * @param nexpected number of call-backs expected in the work queue */ - private void invokeCallback(int nexpected) { + private void invokeCallback() { ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class); - verify(exsvc, times(nexpected)).execute(captor.capture()); - - if (nexpected > 0) { - captor.getAllValues().get(nexpected - 1).run(); - } + verify(exsvc, times(1)).execute(captor.capture()); + captor.getAllValues().get(0).run(); } /** * Lock that inherits the normal getSession() method. */ public static class MyLockStdSession extends FeatureLockImpl { + @Serial private static final long serialVersionUID = 1L; protected int nupdates = 0; @@ -424,6 +433,7 @@ public class FeatureLockImplTest { } public static class MyLock extends MyLockStdSession { + @Serial private static final long serialVersionUID = 1L; public MyLock() { @@ -441,6 +451,7 @@ public class FeatureLockImplTest { } public static class MyLockNoFeature extends MyLock { + @Serial private static final long serialVersionUID = 1L; public MyLockNoFeature() { |