+ Rics rics = new Rics();
+ PolicyTypes policyTypes = new PolicyTypes();
+ StartupService serviceUnderTest = new StartupService(appConfigMock, refreshTaskMock, rics, policyTypes,
+ a1ClientFactory, new Policies(), new Services());
+
+ serviceUnderTest.startup();
+
+ serviceUnderTest.onRicConfigUpdate(getRicConfig(FIRST_RIC_NAME, FIRST_RIC_URL, MANAGED_NODE_A),
+ ApplicationConfig.RicConfigUpdate.ADDED);
+ serviceUnderTest.onRicConfigUpdate(
+ getRicConfig(SECOND_RIC_NAME, SECOND_RIC_URL, MANAGED_NODE_B, MANAGED_NODE_C),
+ ApplicationConfig.RicConfigUpdate.ADDED);
+
+ await().untilAsserted(() -> assertThat(policyTypes.size()).isEqualTo(2));
+
+ verify(a1ClientMock, times(2)).deleteAllPolicies();
+
+ assertTrue(policyTypes.contains(POLICY_TYPE_1_NAME), POLICY_TYPE_1_NAME + " not added to PolicyTypes.");
+ assertTrue(policyTypes.contains(POLICY_TYPE_2_NAME), POLICY_TYPE_2_NAME + " not added to PolicyTypes.");
+ assertEquals(2, rics.size(), "Correct number of Rics not added to Rics");
+
+ Ric firstRic = rics.get(FIRST_RIC_NAME);
+ assertNotNull(firstRic, "Ric " + FIRST_RIC_NAME + " not added to repository");
+ assertEquals(FIRST_RIC_NAME, firstRic.name(), FIRST_RIC_NAME + " not added to Rics");
+ assertEquals(IDLE, firstRic.getState(), "Not correct state for ric " + FIRST_RIC_NAME);
+ assertEquals(1, firstRic.getSupportedPolicyTypes().size(),
+ "Not correct no of types supported for ric " + FIRST_RIC_NAME);
+ assertTrue(firstRic.isSupportingType(POLICY_TYPE_1_NAME),
+ POLICY_TYPE_1_NAME + " not supported by ric " + FIRST_RIC_NAME);
+ assertEquals(1, firstRic.getManagedElementIds().size(),
+ "Not correct no of managed nodes for ric " + FIRST_RIC_NAME);
+ assertTrue(firstRic.isManaging(MANAGED_NODE_A), MANAGED_NODE_A + " not managed by ric " + FIRST_RIC_NAME);
+
+ Ric secondRic = rics.get(SECOND_RIC_NAME);
+ assertNotNull(secondRic, "Ric " + SECOND_RIC_NAME + " not added to repository");
+ assertEquals(SECOND_RIC_NAME, secondRic.name(), SECOND_RIC_NAME + " not added to Rics");
+ assertEquals(IDLE, secondRic.getState(), "Not correct state for " + SECOND_RIC_NAME);
+ assertEquals(2, secondRic.getSupportedPolicyTypes().size(),
+ "Not correct no of types supported for ric " + SECOND_RIC_NAME);
+ assertTrue(secondRic.isSupportingType(POLICY_TYPE_1_NAME),
+ POLICY_TYPE_1_NAME + " not supported by ric " + SECOND_RIC_NAME);
+ assertTrue(secondRic.isSupportingType(POLICY_TYPE_2_NAME),
+ POLICY_TYPE_2_NAME + " not supported by ric " + SECOND_RIC_NAME);
+ assertEquals(2, secondRic.getManagedElementIds().size(),
+ "Not correct no of managed nodes for ric " + SECOND_RIC_NAME);
+ assertTrue(secondRic.isManaging(MANAGED_NODE_B), MANAGED_NODE_B + " not managed by ric " + SECOND_RIC_NAME);
+ assertTrue(secondRic.isManaging(MANAGED_NODE_C), MANAGED_NODE_C + " not managed by ric " + SECOND_RIC_NAME);
+ }