17f099744edb93a5eb51aa05ae783da3381c16a2
[nonrtric.git] / policy-agent / src / test / java / org / oransc / policyagent / configuration / ApplicationConfigTest.java
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2020 Nordix Foundation
6  * %%
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================LICENSE_END===================================
19  */
20
21 package org.oransc.policyagent.configuration;
22
23 import static org.junit.jupiter.api.Assertions.assertEquals;
24 import static org.junit.jupiter.api.Assertions.assertThrows;
25 import static org.junit.jupiter.api.Assertions.assertTrue;
26
27 import java.util.Arrays;
28 import java.util.Vector;
29
30 import org.junit.jupiter.api.Test;
31 import org.junit.jupiter.api.extension.ExtendWith;
32 import org.mockito.junit.jupiter.MockitoExtension;
33 import org.oransc.policyagent.configuration.ApplicationConfig.RicConfigUpdate;
34 import org.oransc.policyagent.exceptions.ServiceException;
35
36 @ExtendWith(MockitoExtension.class)
37 public class ApplicationConfigTest {
38
39     private static final ImmutableRicConfig RIC_CONFIG_1 = ImmutableRicConfig.builder() //
40         .name("ric1") //
41         .baseUrl("ric1_url") //
42         .managedElementIds(new Vector<>()) //
43         .build();
44
45     @Test
46     public void gettingNotAddedRicShouldThrowException() {
47         ApplicationConfig appConfigUnderTest = new ApplicationConfig();
48
49         appConfigUnderTest.setConfiguration(Arrays.asList(RIC_CONFIG_1), null, null);
50
51         Exception exception = assertThrows(ServiceException.class, () -> {
52             appConfigUnderTest.getRic("name");
53         });
54
55         assertEquals("Could not find ric: name", exception.getMessage());
56     }
57
58     @Test
59     public void addRicShouldNotifyAllObserversOfRicAdded() throws Exception {
60         ApplicationConfig appConfigUnderTest = new ApplicationConfig();
61
62         RicConfigUpdate update =
63             appConfigUnderTest.setConfiguration(Arrays.asList(RIC_CONFIG_1), null, null).blockFirst();
64         assertEquals(RicConfigUpdate.Type.ADDED, update.getType());
65         assertTrue(appConfigUnderTest.getRicConfigs().contains(RIC_CONFIG_1), "Ric not added to configuraions.");
66
67         assertEquals(RIC_CONFIG_1, appConfigUnderTest.getRic(RIC_CONFIG_1.name()),
68             "Not correct Ric retrieved from configurations.");
69     }
70
71     @Test
72     public void changedRicShouldNotifyAllObserversOfRicChanged() throws Exception {
73         ApplicationConfig appConfigUnderTest = new ApplicationConfig();
74
75         appConfigUnderTest.setConfiguration(Arrays.asList(RIC_CONFIG_1), null, null);
76
77         ImmutableRicConfig changedRicConfig = ImmutableRicConfig.builder() //
78             .name("ric1") //
79             .baseUrl("changed_ric1_url") //
80             .managedElementIds(new Vector<>()) //
81             .build();
82
83         RicConfigUpdate update =
84             appConfigUnderTest.setConfiguration(Arrays.asList(changedRicConfig), null, null).blockFirst();
85
86         assertEquals(RicConfigUpdate.Type.CHANGED, update.getType());
87         assertEquals(changedRicConfig, appConfigUnderTest.getRic(RIC_CONFIG_1.name()),
88             "Changed Ric not retrieved from configurations.");
89     }
90
91     @Test
92     public void removedRicShouldNotifyAllObserversOfRicRemoved() {
93         ApplicationConfig appConfigUnderTest = new ApplicationConfig();
94
95         ImmutableRicConfig ricConfig2 = ImmutableRicConfig.builder() //
96             .name("ric2") //
97             .baseUrl("ric2_url") //
98             .managedElementIds(new Vector<>()) //
99             .build();
100
101         appConfigUnderTest.setConfiguration(Arrays.asList(RIC_CONFIG_1, ricConfig2), null, null);
102
103         RicConfigUpdate update =
104             appConfigUnderTest.setConfiguration(Arrays.asList(ricConfig2), null, null).blockFirst();
105
106         assertEquals(RicConfigUpdate.Type.REMOVED, update.getType());
107         assertEquals(1, appConfigUnderTest.getRicConfigs().size(), "Ric not deleted from configurations.");
108     }
109
110 }