+ @Test
+ public void startup_unableToConnectToGetTypes() {
+ Vector<RicConfig> ricConfigs = new Vector<>(2);
+ ricConfigs.add(getRicConfig(FIRST_RIC_NAME, FIRST_RIC_URL, MANAGED_NODE_A));
+ ricConfigs.add(getRicConfig(SECOND_RIC_NAME, SECOND_RIC_URL, MANAGED_NODE_B, MANAGED_NODE_C));
+ when(appConfigMock.getRicConfigs()).thenReturn(ricConfigs);
+
+ Flux<String> fluxType1 = Flux.just(POLICY_TYPE_1_NAME);
+ doReturn(Flux.error(new Exception("Unable to contact ric.")), fluxType1).when(a1ClientMock)
+ .getPolicyTypeIdentities(anyString());
+
+ Flux<String> policies = Flux.just(new String[] {POLICY_ID_1, POLICY_ID_2});
+ doReturn(policies).when(a1ClientMock).getPolicyIdentities(anyString());
+ when(a1ClientMock.deletePolicy(anyString(), anyString())).thenReturn(Mono.empty());
+
+ Rics rics = new Rics();
+ PolicyTypes policyTypes = new PolicyTypes();
+ StartupService serviceUnderTest = new StartupService(appConfigMock, rics, policyTypes, a1ClientMock);
+
+ serviceUnderTest.startup();
+
+ verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_1);
+ verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_2);
+
+ assertEquals(NOT_REACHABLE, rics.get(FIRST_RIC_NAME).state(), "Not correct state for " + FIRST_RIC_NAME);
+
+ assertEquals(ACTIVE, rics.get(SECOND_RIC_NAME).state(), "Not correct state for " + SECOND_RIC_NAME);
+ }
+
+ @Test
+ public void startup_unableToConnectToGetPolicies() {
+ Vector<RicConfig> ricConfigs = new Vector<>(2);
+ ricConfigs.add(getRicConfig(FIRST_RIC_NAME, FIRST_RIC_URL, MANAGED_NODE_A));
+ ricConfigs.add(getRicConfig(SECOND_RIC_NAME, SECOND_RIC_URL, MANAGED_NODE_B, MANAGED_NODE_C));
+ when(appConfigMock.getRicConfigs()).thenReturn(ricConfigs);
+
+ Flux<String> fluxType1 = Flux.just(POLICY_TYPE_1_NAME);
+ Flux<String> fluxType2 = Flux.just(POLICY_TYPE_2_NAME);
+ when(a1ClientMock.getPolicyTypeIdentities(anyString())).thenReturn(fluxType1)
+ .thenReturn(fluxType1.concatWith(fluxType2));
+ Flux<String> policies = Flux.just(new String[] {POLICY_ID_1, POLICY_ID_2});
+ doReturn(Flux.error(new Exception("Unable to contact ric.")), policies).when(a1ClientMock)
+ .getPolicyIdentities(anyString());
+ when(a1ClientMock.deletePolicy(anyString(), anyString())).thenReturn(Mono.empty());
+
+ Rics rics = new Rics();
+ PolicyTypes policyTypes = new PolicyTypes();
+ StartupService serviceUnderTest = new StartupService(appConfigMock, rics, policyTypes, a1ClientMock);
+
+ serviceUnderTest.startup();
+
+ verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_1);
+ verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_2);
+
+ assertEquals(NOT_REACHABLE, rics.get(FIRST_RIC_NAME).state(), "Not correct state for " + FIRST_RIC_NAME);
+
+ assertEquals(ACTIVE, rics.get(SECOND_RIC_NAME).state(), "Not correct state for " + SECOND_RIC_NAME);
+ }
+