diff options
Diffstat (limited to 'utils/src/test')
4 files changed, 210 insertions, 53 deletions
diff --git a/utils/src/test/java/org/onap/policy/common/utils/resources/ResourceUtilsTest.java b/utils/src/test/java/org/onap/policy/common/utils/resources/ResourceUtilsTest.java index eb918d35..e5a79bc3 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/resources/ResourceUtilsTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/resources/ResourceUtilsTest.java @@ -250,7 +250,9 @@ public class ResourceUtilsTest { assertNull(theString); theString = ResourceUtils.getResourceAsString(""); - assertEquals("logback-test.xml\norg\ntestdir\n", theString); + + assertEquals("logback-test.xml\nMETA-INF\norg\ntestdir\n", theString); + } @Test diff --git a/utils/src/test/java/org/onap/policy/common/utils/services/OrderedServiceImplTest.java b/utils/src/test/java/org/onap/policy/common/utils/services/OrderedServiceImplTest.java new file mode 100644 index 00000000..39c8a2be --- /dev/null +++ b/utils/src/test/java/org/onap/policy/common/utils/services/OrderedServiceImplTest.java @@ -0,0 +1,205 @@ +/* + * ============LICENSE_START======================================================= + * utils + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.common.utils.services; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class OrderedServiceImplTest { + + private static final int HIGH_PRIORITY_NUM = -1000; + private static final int LOW_PRIORITY_NUM = 1000; + + private static GenericService highPrioService; + private static GenericService lowPrioService; + + /** + * Saves the original state of the ordered service list to restore after each test. + */ + @BeforeClass + public static void setup() { + List<GenericService> implementers = GenericService.providers.getList(); + highPrioService = implementers.get(0); + lowPrioService = implementers.get(1); + } + + /** + * Restores original state after each test. + */ + @Before + public void resetOrder() { + highPrioService.setSequenceNumber(HIGH_PRIORITY_NUM); + lowPrioService.setSequenceNumber(LOW_PRIORITY_NUM); + } + + /** + * Tests obtaining a list of service implementers. + */ + @Test + public void getListTest() { + List<GenericService> implementers = GenericService.providers.getList(); + assertEquals(2, implementers.size()); + + assertEquals(highPrioService, implementers.get(0)); + assertEquals(HIGH_PRIORITY_NUM, highPrioService.getSequenceNumber()); + + assertEquals(lowPrioService, implementers.get(1)); + assertEquals(LOW_PRIORITY_NUM, lowPrioService.getSequenceNumber()); + } + + /** + * Tests inverting the priority of two services to ensure the list is rebuilt + * with the new order. + */ + @Test + public void rebuildListInvertedPriorityTest() { + + List<GenericService> implementers = GenericService.providers.getList(); + assertEquals(2, implementers.size()); + + assertEquals(highPrioService, implementers.get(0)); + assertEquals(HIGH_PRIORITY_NUM, highPrioService.getSequenceNumber()); + + assertEquals(lowPrioService, implementers.get(1)); + assertEquals(LOW_PRIORITY_NUM, lowPrioService.getSequenceNumber()); + + highPrioService.setSequenceNumber(LOW_PRIORITY_NUM); + lowPrioService.setSequenceNumber(HIGH_PRIORITY_NUM); + + implementers = GenericService.providers.rebuildList(); + assertEquals(2, implementers.size()); + + assertEquals(lowPrioService, implementers.get(0)); + assertEquals(HIGH_PRIORITY_NUM, lowPrioService.getSequenceNumber()); + + assertEquals(highPrioService, implementers.get(1)); + assertEquals(LOW_PRIORITY_NUM, highPrioService.getSequenceNumber()); + + } + + /** + * Tests that the service list is ordered alphabetically by class names + * if the priorities are equivalent. + */ + @Test + public void rebuildListEqualPriorityTest() { + + List<GenericService> implementers = GenericService.providers.getList(); + assertEquals(2, implementers.size()); + + assertEquals(highPrioService, implementers.get(0)); + assertEquals(HIGH_PRIORITY_NUM, highPrioService.getSequenceNumber()); + + assertEquals(lowPrioService, implementers.get(1)); + assertEquals(LOW_PRIORITY_NUM, lowPrioService.getSequenceNumber()); + + highPrioService.setSequenceNumber(LOW_PRIORITY_NUM); + lowPrioService.setSequenceNumber(LOW_PRIORITY_NUM); + + implementers = GenericService.providers.rebuildList(); + assertEquals(2, implementers.size()); + + assertEquals(highPrioService, implementers.get(0)); + assertEquals(LOW_PRIORITY_NUM, highPrioService.getSequenceNumber()); + + assertEquals(lowPrioService, implementers.get(1)); + assertEquals(LOW_PRIORITY_NUM, lowPrioService.getSequenceNumber()); + + } + + /** + * Test interface that extends OrderedService to allow changing the sequence number. + */ + public static interface GenericService extends OrderedService { + + /** + * Providers of the GenericService interface. + */ + OrderedServiceImpl<GenericService> providers = new OrderedServiceImpl<>(GenericService.class); + + /** + * Sets the sequence number of the service. + */ + public void setSequenceNumber(int seqNum); + + } + + /** + * A high priority service class. + */ + public static class HighPriorityService implements GenericService { + + /** + * Defaults to a high priority. + */ + private int seqNum = HIGH_PRIORITY_NUM; + + /** + * {@inheritDoc}. + */ + @Override + public int getSequenceNumber() { + return this.seqNum; + } + + /** + * {@inheritDoc}. + */ + @Override + public void setSequenceNumber(int seqNum) { + this.seqNum = seqNum; + } + + } + + /** + * A low priority service class. + */ + public static class LowPriorityService implements GenericService { + + /** + * Defaults to a low priority. + */ + private int seqNum = LOW_PRIORITY_NUM; + + /** + * {@inheritDoc}. + */ + @Override + public int getSequenceNumber() { + return this.seqNum; + } + + /** + * {@inheritDoc}. + */ + @Override + public void setSequenceNumber(int seqNum) { + this.seqNum = seqNum; + } + + } + +}
\ No newline at end of file diff --git a/utils/src/test/java/org/onap/policy/common/utils/slf4j/LoggerFactoryWrapperTest.java b/utils/src/test/java/org/onap/policy/common/utils/slf4j/LoggerFactoryWrapperTest.java deleted file mode 100644 index 4bf8db30..00000000 --- a/utils/src/test/java/org/onap/policy/common/utils/slf4j/LoggerFactoryWrapperTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Engine - Common Modules - * ================================================================================ - * Copyright (C) 2019 Samsung Electronics. All rights reserved. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - - -package org.onap.policy.common.utils.slf4j; - -import static org.junit.Assert.assertSame; -import static org.mockito.Mockito.mock; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -@RunWith(PowerMockRunner.class) -@PrepareForTest(LoggerFactory.class) -public class LoggerFactoryWrapperTest { - @Test - public void test_get_network_logger() { - String netLoggerName = "network"; - Logger mockLogger = mock(Logger.class); - - PowerMockito.mockStatic(LoggerFactory.class); - - PowerMockito.when(LoggerFactory.getLogger(netLoggerName)).thenReturn(mockLogger); - assertSame(mockLogger, LoggerFactoryWrapper.getNetworkLogger()); - } -} diff --git a/utils/src/test/resources/META-INF/services/org.onap.policy.common.utils.services.OrderedServiceImplTest$GenericService b/utils/src/test/resources/META-INF/services/org.onap.policy.common.utils.services.OrderedServiceImplTest$GenericService new file mode 100644 index 00000000..1e920f46 --- /dev/null +++ b/utils/src/test/resources/META-INF/services/org.onap.policy.common.utils.services.OrderedServiceImplTest$GenericService @@ -0,0 +1,2 @@ +org.onap.policy.common.utils.services.OrderedServiceImplTest$HighPriorityService +org.onap.policy.common.utils.services.OrderedServiceImplTest$LowPriorityService
\ No newline at end of file |