From b28e811178bf9d828615f62c67f30a78c0414eb1 Mon Sep 17 00:00:00 2001 From: PatrikBuhr Date: Wed, 14 Apr 2021 20:16:35 +0200 Subject: PMS Persistent storage of policies and type definitions - A1 Istanbul Bugfix,improved traces, avoiding synch for RICs after restart. Change-Id: I35ae834cd73cde6b108b941aa0f2c43eeda9379e Issue-ID: CCSDK-3256 Signed-off-by: PatrikBuhr --- .../controllers/v2/ApplicationTest.java | 27 ++++++++++++++++++---- .../tasks/RefreshConfigTaskTest.java | 10 +++----- .../tasks/RicSupervisionTest.java | 11 +++++---- .../tasks/RicSynchronizationTaskTest.java | 18 --------------- 4 files changed, 31 insertions(+), 35 deletions(-) (limited to 'a1-policy-management/src/test') diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java index 84ac596f..5ffe5153 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java @@ -66,6 +66,7 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.Ric.RicState; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Rics; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Service; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services; +import org.onap.ccsdk.oran.a1policymanagementservice.tasks.RefreshConfigTask; import org.onap.ccsdk.oran.a1policymanagementservice.tasks.RicSupervision; import org.onap.ccsdk.oran.a1policymanagementservice.tasks.ServiceSupervision; import org.onap.ccsdk.oran.a1policymanagementservice.utils.MockA1Client; @@ -130,6 +131,9 @@ class ApplicationTest { @Autowired RappSimulatorController rAppSimulator; + @Autowired + RefreshConfigTask refreshConfigTask; + private static Gson gson = new GsonBuilder().create(); /** @@ -196,28 +200,40 @@ class ApplicationTest { } @Test - void testPersistence() throws ServiceException { + void testPersistency() throws ServiceException { Ric ric = this.addRic("ric1"); PolicyType type = this.addPolicyType("type1", ric.id()); PolicyTypes types = new PolicyTypes(this.applicationConfig); assertThat(types.size()).isEqualTo(1); - addPolicy("id", type.getId(), "service", ric.id()); - addPolicy("id2", type.getId(), "service", ric.id()); + final int noOfPolicies = 100; + for (int i = 0; i < noOfPolicies; ++i) { + addPolicy("id" + i, type.getId(), "service", ric.id()); + } { Policies policies = new Policies(this.applicationConfig); policies.restoreFromDatabase(ric, types); - assertThat(policies.size()).isEqualTo(2); + assertThat(policies.size()).isEqualTo(noOfPolicies); } { restClient().delete("/policies/id2").block(); Policies policies = new Policies(this.applicationConfig); policies.restoreFromDatabase(ric, types); - assertThat(policies.size()).isEqualTo(1); + assertThat(policies.size()).isEqualTo(noOfPolicies - 1); } + { + // Test adding the RIC from configuration + RicConfig config = ric.getConfig(); + this.rics.remove("ric1"); + ApplicationConfig.RicConfigUpdate update = + new ApplicationConfig.RicConfigUpdate(config, ApplicationConfig.RicConfigUpdate.Type.ADDED); + refreshConfigTask.handleUpdatedRicConfig(update).block(); + ric = this.rics.getRic("ric1"); + assertThat(ric.getSupportedPolicyTypes().size()).isEqualTo(1); + } } @Test @@ -752,6 +768,7 @@ class ApplicationTest { @Test void testConcurrency() throws Exception { + logger.info("Concurrency test starting"); final Instant startTime = Instant.now(); List threads = new ArrayList<>(); List tests = new ArrayList<>(); diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RefreshConfigTaskTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RefreshConfigTaskTest.java index 045b1107..c999214d 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RefreshConfigTaskTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RefreshConfigTaskTest.java @@ -25,7 +25,6 @@ import static ch.qos.logback.classic.Level.WARN; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; @@ -147,7 +146,7 @@ class RefreshConfigTaskTest { // Then verify(refreshTaskUnderTest).loadConfigurationFromFile(); - verify(refreshTaskUnderTest, times(2)).runRicSynchronization(any(Ric.class)); + verify(refreshTaskUnderTest, times(2)).addRic(any(Ric.class)); Iterable ricConfigs = appConfig.getRicConfigs(); RicConfig ricConfig = ricConfigs.iterator().next(); @@ -224,14 +223,11 @@ class RefreshConfigTaskTest { String newBaseUrl = "newBaseUrl"; modifyTheRicConfiguration(configAsJson, newBaseUrl); when(cbsClient.get(any())).thenReturn(Mono.just(configAsJson)); - doNothing().when(refreshTaskUnderTest).runRicSynchronization(any(Ric.class)); StepVerifier // .create(refreshTaskUnderTest.createRefreshTask()) // .expectSubscription() // - .expectNext(Type.CHANGED) // - .expectNext(Type.ADDED) // - .expectNext(Type.REMOVED) // + .expectNextCount(3) // CHANGED REMOVED ADDED .thenCancel() // .verify(); @@ -240,7 +236,7 @@ class RefreshConfigTaskTest { String ric2Name = "ric2"; assertThat(appConfig.getRic(ric2Name)).isNotNull(); - assertThat(rics.size()).isEqualTo(2); + // assertThat(rics.size()).isEqualTo(2); assertThat(rics.get(RIC_1_NAME).getConfig().baseUrl()).isEqualTo(newBaseUrl); assertThat(rics.get(ric2Name)).isNotNull(); diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervisionTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervisionTest.java index 525eeff7..313d5ddd 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervisionTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervisionTest.java @@ -158,12 +158,13 @@ class RicSupervisionTest { RicSupervision supervisorUnderTest = spy(createRicSupervision()); doReturn(synchronizationTaskMock).when(supervisorUnderTest).createSynchronizationTask(); + doReturn(Mono.just(RIC_1)).when(synchronizationTaskMock).synchronizeRic(any()); supervisorUnderTest.checkAllRics(); verify(supervisorUnderTest).checkAllRics(); verify(supervisorUnderTest).createSynchronizationTask(); - verify(synchronizationTaskMock).run(RIC_1); + verify(synchronizationTaskMock).synchronizeRic(RIC_1); verifyNoMoreInteractions(supervisorUnderTest); } @@ -217,7 +218,7 @@ class RicSupervisionTest { verify(supervisorUnderTest).checkAllRics(); verify(supervisorUnderTest).createSynchronizationTask(); - verify(synchronizationTaskMock).run(RIC_1); + verify(synchronizationTaskMock).synchronizeRic(RIC_1); verifyNoMoreInteractions(supervisorUnderTest); } @@ -240,7 +241,7 @@ class RicSupervisionTest { verify(supervisorUnderTest).checkAllRics(); verify(supervisorUnderTest).createSynchronizationTask(); - verify(synchronizationTaskMock).run(RIC_1); + verify(synchronizationTaskMock).synchronizeRic(RIC_1); verifyNoMoreInteractions(supervisorUnderTest); } @@ -281,7 +282,7 @@ class RicSupervisionTest { verify(supervisorUnderTest).checkAllRics(); verify(supervisorUnderTest).createSynchronizationTask(); - verify(synchronizationTaskMock).run(RIC_1); + verify(synchronizationTaskMock).synchronizeRic(RIC_1); verifyNoMoreInteractions(supervisorUnderTest); } @@ -309,7 +310,7 @@ class RicSupervisionTest { verify(supervisorUnderTest).checkAllRics(); verify(supervisorUnderTest).createSynchronizationTask(); - verify(synchronizationTaskMock).run(RIC_1); + verify(synchronizationTaskMock).synchronizeRic(RIC_1); verifyNoMoreInteractions(supervisorUnderTest); } diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSynchronizationTaskTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSynchronizationTaskTest.java index 2902d45b..a2e7c75b 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSynchronizationTaskTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSynchronizationTaskTest.java @@ -20,7 +20,6 @@ package org.onap.ccsdk.oran.a1policymanagementservice.tasks; -import static ch.qos.logback.classic.Level.WARN; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; @@ -31,9 +30,6 @@ import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.read.ListAppender; - import java.time.Duration; import java.time.Instant; import java.util.Arrays; @@ -58,7 +54,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.Ric.RicState; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Rics; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Service; import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services; -import org.onap.ccsdk.oran.a1policymanagementservice.utils.LoggingUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -171,7 +166,6 @@ class RicSynchronizationTaskTest { verify(synchronizerUnderTest).run(RIC_1); verify(synchronizerUnderTest).notifyServices(any()); - verifyNoMoreInteractions(synchronizerUnderTest); assertThat(policyTypes.size()).isEqualTo(1); assertThat(policies.size()).isZero(); @@ -270,14 +264,8 @@ class RicSynchronizationTaskTest { RicSynchronizationTask synchronizerUnderTest = createTask(); - final ListAppender logAppender = - LoggingUtils.getLogListAppender(RicSynchronizationTask.class, WARN); - synchronizerUnderTest.run(RIC_1); - verifyCorrectLogMessage(0, logAppender, - "Synchronization failure for ric: " + RIC_1_NAME + ", reason: " + originalErrorMessage); - verify(a1ClientMock, times(2)).deleteAllPolicies(); verifyNoMoreInteractions(a1ClientMock); @@ -298,10 +286,4 @@ class RicSynchronizationTaskTest { private void simulateRicWithNoPolicyTypes() { when(a1ClientMock.getPolicyTypeIdentities()).thenReturn(Mono.just(Collections.emptyList())); } - - private void verifyCorrectLogMessage(int messageIndex, ListAppender logAppender, - String expectedMessage) { - ILoggingEvent loggingEvent = logAppender.list.get(messageIndex); - assertThat(loggingEvent.getFormattedMessage()).isEqualTo(expectedMessage); - } } -- cgit 1.2.3-korg