cc5a903ad5eb16634a48571617dc7c2a2f713f67
[policy/drools-applications.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2018 Ericsson. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  * 
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  * 
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.controlloop.policy;
20
21 import static org.junit.Assert.assertEquals;
22 import static org.junit.Assert.assertFalse;
23 import static org.junit.Assert.assertTrue;
24
25 import java.util.ArrayList;
26 import java.util.List;
27
28 import org.junit.Ignore;
29 import org.junit.Test;
30 import org.onap.policy.aai.Pnf;
31 import org.onap.policy.sdc.Resource;
32 import org.onap.policy.sdc.ResourceType;
33 import org.onap.policy.sdc.Service;
34
35 public class ControlLoopTest {
36
37     private String controlLoopName = "control loop 1";
38     private String version = "1.0.1";
39     private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
40     private Integer timeout = 100;
41     private Boolean abatement = false;
42
43     @Test
44     public void testEqualsSameInstance() {
45         ControlLoop controlLoop1 = new ControlLoop();
46         assertTrue(controlLoop1.equals(controlLoop1));
47     }
48
49     @Test
50     public void testEqualsNull() {
51         ControlLoop controlLoop1 = new ControlLoop();
52         assertFalse(controlLoop1.equals(null));
53     }
54
55     @Test
56     public void testEqualsInstanceOfDiffClass() {
57         ControlLoop controlLoop1 = new ControlLoop();
58         assertFalse(controlLoop1.equals(""));
59     }
60
61     @Test
62     public void testEqualsNoServicesAndResourcesOrTimeout() {
63         final Pnf pnf = new Pnf();
64         pnf.setPnfName("pnf 1");
65
66         ControlLoop controlLoop1 = new ControlLoop();
67         controlLoop1.setControlLoopName(controlLoopName);
68         controlLoop1.setVersion(version);
69         controlLoop1.setPnf(pnf);
70         controlLoop1.setTrigger_policy(triggerPolicy);
71         controlLoop1.setAbatement(abatement);
72
73         ControlLoop controlLoop2 = new ControlLoop();
74         controlLoop2.setControlLoopName(controlLoopName);
75         controlLoop2.setVersion(version);
76         controlLoop2.setPnf(pnf);
77         controlLoop2.setTrigger_policy(triggerPolicy);
78         controlLoop2.setAbatement(abatement);
79
80         assertTrue(controlLoop1.equals(controlLoop2));
81     }
82
83     @Test
84     public void testEquals() {
85         final Pnf pnf = new Pnf();
86         pnf.setPnfName("pnf 1");
87
88         ControlLoop controlLoop1 = new ControlLoop();
89         controlLoop1.setControlLoopName(controlLoopName);
90         controlLoop1.setVersion(version);
91         Service service1 = new Service("service1");
92         Service service2 = new Service("service2");
93         List<Service> services = new ArrayList<>();
94         services.add(service1);
95         services.add(service2);
96         controlLoop1.setServices(services);
97         Resource resource1 = new Resource("resource1", ResourceType.VF);
98         Resource resource2 = new Resource("resource2", ResourceType.VFC);
99         List<Resource> resources = new ArrayList<>();
100         resources.add(resource1);
101         resources.add(resource2);
102         controlLoop1.setResources(resources);
103         controlLoop1.setPnf(pnf);
104         controlLoop1.setTrigger_policy(triggerPolicy);
105         controlLoop1.setTimeout(timeout);
106         controlLoop1.setAbatement(abatement);
107
108         ControlLoop controlLoop2 = new ControlLoop();
109         controlLoop2.setControlLoopName(controlLoopName);
110         controlLoop2.setVersion(version);
111         Service controlLoop2_service1 = new Service("service1");
112         Service controlLoop2_service2 = new Service("service2");
113         List<Service> controlLoop2_services = new ArrayList<>();
114         controlLoop2_services.add(controlLoop2_service1);
115         controlLoop2_services.add(controlLoop2_service2);
116         controlLoop2.setServices(controlLoop2_services);
117         Resource controlLoop2_resource1 = new Resource("resource1", ResourceType.VF);
118         Resource controlLoop2_resource2 = new Resource("resource2", ResourceType.VFC);
119         List<Resource> controlLoop2_resources = new ArrayList<>();
120         controlLoop2_resources.add(controlLoop2_resource1);
121         controlLoop2_resources.add(controlLoop2_resource2);
122         controlLoop2.setResources(controlLoop2_resources);
123         controlLoop2.setPnf(pnf);
124         controlLoop2.setTrigger_policy(triggerPolicy);
125         controlLoop2.setTimeout(timeout);
126         controlLoop1.setAbatement(abatement);
127
128         assertTrue(controlLoop1.equals(controlLoop2));
129         assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
130     }
131
132     @Test
133     @Ignore
134     // I'VE MARKED THIS TEST CASE AS IGNORE BECAUSE THE TEST CASE FAILS
135     // This test case fails because the ControlLoop(ControlLoop controlLoop) constructor.
136     // does not copy the value of pnf and version into the newly created object
137     // PLEASE ADVISE IF THE EXISTING BEHAVIOUR IS CORRECT
138     public void testControlLoop() {
139         final Pnf pnf = new Pnf();
140         pnf.setPnfName("pnf 1");
141
142         ControlLoop controlLoop1 = new ControlLoop();
143         controlLoop1.setControlLoopName(controlLoopName);
144         controlLoop1.setVersion(version);
145         Service service1 = new Service("service1");
146         Service service2 = new Service("service2");
147         List<Service> services = new ArrayList<>();
148         services.add(service1);
149         services.add(service2);
150         controlLoop1.setServices(services);
151         Resource resource1 = new Resource("resource1", ResourceType.VF);
152         Resource resource2 = new Resource("resource2", ResourceType.VFC);
153         List<Resource> resources = new ArrayList<>();
154         resources.add(resource1);
155         resources.add(resource2);
156         controlLoop1.setResources(resources);
157         controlLoop1.setPnf(pnf);
158         controlLoop1.setTrigger_policy(triggerPolicy);
159         controlLoop1.setAbatement(abatement);
160
161         ControlLoop controlLoop2 = new ControlLoop(controlLoop1);
162
163         assertEquals(controlLoop1.getControlLoopName(), controlLoop2.getControlLoopName());
164         assertEquals(controlLoop1.getVersion(), controlLoop2.getVersion());
165         assertEquals(controlLoop1.getServices(), controlLoop2.getServices());
166         assertEquals(controlLoop1.getResources(), controlLoop2.getResources());
167         assertEquals(controlLoop1.getPnf(), controlLoop2.getPnf());
168         assertEquals(controlLoop1.getTrigger_policy(), controlLoop2.getTrigger_policy());
169         assertEquals(controlLoop1.getAbatement(), controlLoop2.getAbatement());
170
171         assertTrue(controlLoop1.equals(controlLoop2));
172     }
173
174 }