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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.policy.controlloop.policy;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
27 import java.io.IOException;
28 import java.util.ArrayList;
29 import java.util.List;
31 import org.junit.Ignore;
32 import org.junit.Test;
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;
40 public class ControlLoopTest {
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;
49 public void testEqualsSameInstance() {
50 ControlLoop controlLoop1 = new ControlLoop();
51 assertTrue(controlLoop1.equals(controlLoop1));
55 public void testEqualsNull() {
56 ControlLoop controlLoop1 = new ControlLoop();
57 assertFalse(controlLoop1.equals(null));
61 public void testEqualsInstanceOfDiffClass() {
62 ControlLoop controlLoop1 = new ControlLoop();
63 assertFalse(controlLoop1.equals(""));
67 public void testEqualsNoServicesAndResourcesOrTimeout() {
68 final Pnf pnf = new Pnf();
69 pnf.setPnfName("pnf 1");
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);
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);
85 assertTrue(controlLoop1.equals(controlLoop2));
89 public void testEquals() throws IOException {
90 final Pnf pnf = new Pnf();
91 pnf.setPnfName("pnf 1");
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);
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);
133 assertTrue(controlLoop1.equals(controlLoop2));
134 assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
136 controlLoop2 = Serializer.roundTrip(controlLoop1);
137 assertTrue(controlLoop1.equals(controlLoop2));
138 assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
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");
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);
170 ControlLoop controlLoop2 = new ControlLoop(controlLoop1);
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());
180 assertTrue(controlLoop1.equals(controlLoop2));