remove dependency of drool-application/yaml in actors
[policy/models.git] / models-interactions / model-yaml / src / test / java / org / onap / policy / controlloop / policy / ControlLoopTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2018 Ericsson. All rights reserved.
4  * Modifications Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
5  * Modifications Copyright (C) 2019 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.onap.policy.controlloop.policy;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
26
27 import java.io.IOException;
28 import java.util.ArrayList;
29 import java.util.List;
30
31 import org.junit.Ignore;
32 import org.junit.Test;
33
34 import org.onap.policy.aai.Pnf;
35 import org.onap.policy.common.utils.io.Serializer;
36 import org.onap.policy.sdc.Resource;
37 import org.onap.policy.sdc.ResourceType;
38 import org.onap.policy.sdc.Service;
39
40 public class ControlLoopTest {
41
42     private String controlLoopName = "control loop 1";
43     private String version = "1.0.1";
44     private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
45     private Integer timeout = 100;
46     private Boolean abatement = false;
47
48     @Test
49     public void testEqualsSameInstance() {
50         ControlLoop controlLoop1 = new ControlLoop();
51         assertTrue(controlLoop1.equals(controlLoop1));
52     }
53
54     @Test
55     public void testEqualsNull() {
56         ControlLoop controlLoop1 = new ControlLoop();
57         assertFalse(controlLoop1.equals(null));
58     }
59
60     @Test
61     public void testEqualsInstanceOfDiffClass() {
62         ControlLoop controlLoop1 = new ControlLoop();
63         assertFalse(controlLoop1.equals(""));
64     }
65
66     @Test
67     public void testEqualsNoServicesAndResourcesOrTimeout() {
68         final Pnf pnf = new Pnf();
69         pnf.setPnfName("pnf 1");
70
71         ControlLoop controlLoop1 = new ControlLoop();
72         controlLoop1.setControlLoopName(controlLoopName);
73         controlLoop1.setVersion(version);
74         controlLoop1.setPnf(pnf);
75         controlLoop1.setTrigger_policy(triggerPolicy);
76         controlLoop1.setAbatement(abatement);
77
78         ControlLoop controlLoop2 = new ControlLoop();
79         controlLoop2.setControlLoopName(controlLoopName);
80         controlLoop2.setVersion(version);
81         controlLoop2.setPnf(pnf);
82         controlLoop2.setTrigger_policy(triggerPolicy);
83         controlLoop2.setAbatement(abatement);
84
85         assertTrue(controlLoop1.equals(controlLoop2));
86     }
87
88     @Test
89     public void testEquals() throws IOException {
90         final Pnf pnf = new Pnf();
91         pnf.setPnfName("pnf 1");
92
93         ControlLoop controlLoop1 = new ControlLoop();
94         controlLoop1.setControlLoopName(controlLoopName);
95         controlLoop1.setVersion(version);
96         Service service1 = new Service("service1");
97         Service service2 = new Service("service2");
98         List<Service> services = new ArrayList<>();
99         services.add(service1);
100         services.add(service2);
101         controlLoop1.setServices(services);
102         Resource resource1 = new Resource("resource1", ResourceType.VF);
103         Resource resource2 = new Resource("resource2", ResourceType.VFC);
104         List<Resource> resources = new ArrayList<>();
105         resources.add(resource1);
106         resources.add(resource2);
107         controlLoop1.setResources(resources);
108         controlLoop1.setPnf(pnf);
109         controlLoop1.setTrigger_policy(triggerPolicy);
110         controlLoop1.setTimeout(timeout);
111         controlLoop1.setAbatement(abatement);
112
113         ControlLoop controlLoop2 = new ControlLoop();
114         controlLoop2.setControlLoopName(controlLoopName);
115         controlLoop2.setVersion(version);
116         Service controlLoop2Service1 = new Service("service1");
117         Service controlLoop2Service2 = new Service("service2");
118         List<Service> controlLoop2Services = new ArrayList<>();
119         controlLoop2Services.add(controlLoop2Service1);
120         controlLoop2Services.add(controlLoop2Service2);
121         controlLoop2.setServices(controlLoop2Services);
122         Resource controlLoop2Resource1 = new Resource("resource1", ResourceType.VF);
123         Resource controlLoop2Resource2 = new Resource("resource2", ResourceType.VFC);
124         List<Resource> controlLoop2Resources = new ArrayList<>();
125         controlLoop2Resources.add(controlLoop2Resource1);
126         controlLoop2Resources.add(controlLoop2Resource2);
127         controlLoop2.setResources(controlLoop2Resources);
128         controlLoop2.setPnf(pnf);
129         controlLoop2.setTrigger_policy(triggerPolicy);
130         controlLoop2.setTimeout(timeout);
131         controlLoop1.setAbatement(abatement);
132
133         assertTrue(controlLoop1.equals(controlLoop2));
134         assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
135
136         controlLoop2 = Serializer.roundTrip(controlLoop1);
137         assertTrue(controlLoop1.equals(controlLoop2));
138         assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
139     }
140
141     @Test
142     @Ignore
143     // I'VE MARKED THIS TEST CASE AS IGNORE BECAUSE THE TEST CASE FAILS
144     // This test case fails because the ControlLoop(ControlLoop controlLoop) constructor.
145     // does not copy the value of pnf and version into the newly created object
146     // PLEASE ADVISE IF THE EXISTING BEHAVIOUR IS CORRECT
147     public void testControlLoop() {
148         final Pnf pnf = new Pnf();
149         pnf.setPnfName("pnf 1");
150
151         ControlLoop controlLoop1 = new ControlLoop();
152         controlLoop1.setControlLoopName(controlLoopName);
153         controlLoop1.setVersion(version);
154         Service service1 = new Service("service1");
155         Service service2 = new Service("service2");
156         List<Service> services = new ArrayList<>();
157         services.add(service1);
158         services.add(service2);
159         controlLoop1.setServices(services);
160         Resource resource1 = new Resource("resource1", ResourceType.VF);
161         Resource resource2 = new Resource("resource2", ResourceType.VFC);
162         List<Resource> resources = new ArrayList<>();
163         resources.add(resource1);
164         resources.add(resource2);
165         controlLoop1.setResources(resources);
166         controlLoop1.setPnf(pnf);
167         controlLoop1.setTrigger_policy(triggerPolicy);
168         controlLoop1.setAbatement(abatement);
169
170         ControlLoop controlLoop2 = new ControlLoop(controlLoop1);
171
172         assertEquals(controlLoop1.getControlLoopName(), controlLoop2.getControlLoopName());
173         assertEquals(controlLoop1.getVersion(), controlLoop2.getVersion());
174         assertEquals(controlLoop1.getServices(), controlLoop2.getServices());
175         assertEquals(controlLoop1.getResources(), controlLoop2.getResources());
176         assertEquals(controlLoop1.getPnf(), controlLoop2.getPnf());
177         assertEquals(controlLoop1.getTrigger_policy(), controlLoop2.getTrigger_policy());
178         assertEquals(controlLoop1.getAbatement(), controlLoop2.getAbatement());
179
180         assertTrue(controlLoop1.equals(controlLoop2));
181     }
182
183 }