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