X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Ftasks%2FRicSynchronizationTaskTest.java;h=6667029a059f998a95e7025db25e2c2214459e47;hb=6a39814272307d0207222c9229b0d765ac062bf0;hp=b05349fc3ea97030457c70132d552ca9ee0f9c8b;hpb=842b9d220588fba7fc17df0cf9c094f91005118b;p=nonrtric.git diff --git a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java index b05349fc..6667029a 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java @@ -35,9 +35,11 @@ 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.util.Arrays; import java.util.Collections; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -58,11 +60,12 @@ import org.oransc.policyagent.repository.Ric.RicState; import org.oransc.policyagent.repository.Service; import org.oransc.policyagent.repository.Services; import org.oransc.policyagent.utils.LoggingUtils; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @ExtendWith(MockitoExtension.class) -public class RicSynchronizationTaskTest { +class RicSynchronizationTaskTest { private static final String POLICY_TYPE_1_NAME = "type1"; private static final PolicyType POLICY_TYPE_1 = ImmutablePolicyType.builder() // .name(POLICY_TYPE_1_NAME) // @@ -74,16 +77,22 @@ public class RicSynchronizationTaskTest { .name(RIC_1_NAME) // .baseUrl("baseUrl1") // .managedElementIds(Collections.emptyList()) // + .controllerName("controllerName") // .build()); - private static final Policy POLICY_1 = ImmutablePolicy.builder() // - .id("policyId1") // - .json("") // - .ownerServiceName("service") // - .ric(RIC_1) // - .type(POLICY_TYPE_1) // - .lastModified("now") // - .build(); + private static Policy createPolicy(String policyId, boolean isTransient) { + return ImmutablePolicy.builder() // + .id(policyId) // + .json("") // + .ownerServiceName("service") // + .ric(RIC_1) // + .type(POLICY_TYPE_1) // + .lastModified("now") // + .isTransient(isTransient) // + .build(); + } + + private static final Policy POLICY_1 = createPolicy("policyId1", false); private static final String SERVICE_1_NAME = "service1"; private static final String SERVICE_1_CALLBACK_URL = "callbackUrl"; @@ -100,16 +109,16 @@ public class RicSynchronizationTaskTest { private Services services; @BeforeEach - public void init() { + void init() { policyTypes = new PolicyTypes(); policies = new Policies(); services = new Services(); - RIC_1.setState(RicState.UNDEFINED); + RIC_1.setState(RicState.UNAVAILABLE); RIC_1.clearSupportedPolicyTypes(); } @Test - public void ricAlreadySynchronizing_thenNoSynchronization() { + void ricAlreadySynchronizing_thenNoSynchronization() { RIC_1.setState(RicState.SYNCHRONIZING); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); @@ -126,12 +135,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(1); assertThat(policies.size()).isEqualTo(1); assertThat(RIC_1.getState()).isEqualTo(RicState.SYNCHRONIZING); - assertThat(RIC_1.getSupportedPolicyTypeNames().size()).isEqualTo(1); + assertThat(RIC_1.getSupportedPolicyTypeNames()).hasSize(1); } @Test - public void ricIdlePolicyTypeInRepo_thenSynchronizationWithReuseOfTypeFromRepoAndCorrectServiceNotified() { - RIC_1.setState(RicState.IDLE); + void ricIdlePolicyTypeInRepo_thenSynchronizationWithReuseOfTypeFromRepoAndCorrectServiceNotified() { + RIC_1.setState(RicState.AVAILABLE); policyTypes.put(POLICY_TYPE_1); @@ -150,7 +159,7 @@ public class RicSynchronizationTaskTest { synchronizerUnderTest.run(RIC_1); - verify(a1ClientMock).getPolicyTypeIdentities(); + verify(a1ClientMock, times(1)).getPolicyTypeIdentities(); verifyNoMoreInteractions(a1ClientMock); verify(synchronizerUnderTest).run(RIC_1); @@ -161,13 +170,13 @@ public class RicSynchronizationTaskTest { verifyNoMoreInteractions(restClientMock); assertThat(policyTypes.size()).isEqualTo(1); - assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(policies.size()).isZero(); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test - public void ricIdlePolicyTypeNotInRepo_thenSynchronizationWithTypeFromRic() throws Exception { - RIC_1.setState(RicState.IDLE); + void ricIdlePolicyTypeNotInRepo_thenSynchronizationWithTypeFromRic() throws Exception { + RIC_1.setState(RicState.AVAILABLE); setUpCreationOfA1Client(); simulateRicWithOnePolicyType(); @@ -184,14 +193,17 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(1); assertThat(policyTypes.getType(POLICY_TYPE_1_NAME).schema()).isEqualTo(typeSchema); - assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(policies.size()).isZero(); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test - public void ricIdleAndHavePolicies_thenSynchronizationWithRecreationOfPolicies() { - RIC_1.setState(RicState.IDLE); + void ricIdleAndHavePolicies_thenSynchronizationWithRecreationOfPolicies() { + RIC_1.setState(RicState.AVAILABLE); + + Policy transientPolicy = createPolicy("transientPolicyId", true); + policies.put(transientPolicy); policies.put(POLICY_1); setUpCreationOfA1Client(); @@ -209,14 +221,14 @@ public class RicSynchronizationTaskTest { verify(a1ClientMock).putPolicy(POLICY_1); verifyNoMoreInteractions(a1ClientMock); - assertThat(policyTypes.size()).isEqualTo(0); - assertThat(policies.size()).isEqualTo(1); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(policyTypes.size()).isZero(); + assertThat(policies.size()).isEqualTo(1); // The transient policy shall be deleted + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test - public void ricIdleAndErrorDeletingPoliciesFirstTime_thenSynchronizationWithDeletionOfPolicies() { - RIC_1.setState(RicState.IDLE); + void ricIdleAndErrorDeletingPoliciesFirstTime_thenSynchronizationWithDeletionOfPolicies() { + RIC_1.setState(RicState.AVAILABLE); policies.put(POLICY_1); @@ -235,14 +247,14 @@ public class RicSynchronizationTaskTest { verify(a1ClientMock, times(2)).deleteAllPolicies(); verifyNoMoreInteractions(a1ClientMock); - assertThat(policyTypes.size()).isEqualTo(0); - assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(policyTypes.size()).isZero(); + assertThat(policies.size()).isZero(); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test - public void ricIdleAndErrorDeletingPoliciesAllTheTime_thenSynchronizationWithFailedRecovery() { - RIC_1.setState(RicState.IDLE); + void ricIdleAndErrorDeletingPoliciesAllTheTime_thenSynchronizationWithFailedRecovery() { + RIC_1.setState(RicState.AVAILABLE); policies.put(POLICY_1); @@ -261,21 +273,19 @@ public class RicSynchronizationTaskTest { synchronizerUnderTest.run(RIC_1); verifyCorrectLogMessage(0, logAppender, - "Synchronization failed for ric: " + RIC_1_NAME + ", reason: " + originalErrorMessage); - verifyCorrectLogMessage(1, logAppender, - "Synchronization failure recovery failed for ric: " + RIC_1_NAME + ", reason: " + originalErrorMessage); + "Synchronization failure for ric: " + RIC_1_NAME + ", reason: " + originalErrorMessage); verify(a1ClientMock, times(2)).deleteAllPolicies(); verifyNoMoreInteractions(a1ClientMock); - assertThat(policyTypes.size()).isEqualTo(0); - assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.UNDEFINED); + assertThat(policyTypes.size()).isZero(); + assertThat(policies.size()).isZero(); + assertThat(RIC_1.getState()).isEqualTo(RicState.UNAVAILABLE); } @Test - public void ricIdlePolicyTypeInRepo_thenSynchronizationWithErrorOnServiceNotificationErrorLogged() { - RIC_1.setState(RicState.IDLE); + void ricIdlePolicyTypeInRepo_thenSynchronizationWithErrorOnServiceNotificationErrorLogged() { + RIC_1.setState(RicState.AVAILABLE); policyTypes.put(POLICY_TYPE_1); @@ -297,12 +307,14 @@ public class RicSynchronizationTaskTest { synchronizerUnderTest.run(RIC_1); ILoggingEvent loggingEvent = logAppender.list.get(0); - assertThat(loggingEvent.getThrowableProxy().getMessage()).isEqualTo(originalErrorMessage); - verifyCorrectLogMessage(0, logAppender, "Service notification failed for service: " + SERVICE_1_NAME); + assertThat(loggingEvent.getLevel()).isEqualTo(WARN); + verifyCorrectLogMessage(0, logAppender, + "Service notification failed for service: " + SERVICE_1_NAME + ". Cause: " + originalErrorMessage); } private void setUpCreationOfA1Client() { when(a1ClientFactoryMock.createA1Client(any(Ric.class))).thenReturn(Mono.just(a1ClientMock)); + doReturn(Flux.empty()).when(a1ClientMock).deleteAllPolicies(); } private AsyncRestClient setUpCreationOfAsyncRestClient(RicSynchronizationTask synchronizerUnderTest) { @@ -322,6 +334,6 @@ public class RicSynchronizationTaskTest { private void verifyCorrectLogMessage(int messageIndex, ListAppender logAppender, String expectedMessage) { ILoggingEvent loggingEvent = logAppender.list.get(messageIndex); - assertThat(loggingEvent.toString().contains(expectedMessage)).isTrue(); + assertThat(loggingEvent.getFormattedMessage()).isEqualTo(expectedMessage); } }