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
10 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.policy.controlloop.policy;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertFalse;
24 import static org.junit.Assert.assertTrue;
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.List;
30 import org.junit.Ignore;
31 import org.junit.Test;
32 import org.onap.policy.aai.Pnf;
33 import org.onap.policy.common.utils.io.Serializer;
34 import org.onap.policy.sdc.Resource;
35 import org.onap.policy.sdc.ResourceType;
36 import org.onap.policy.sdc.Service;
38 public class ControlLoopTest {
40 private String controlLoopName = "control loop 1";
41 private String version = "1.0.1";
42 private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
43 private Integer timeout = 100;
44 private Boolean abatement = false;
47 public void testEqualsSameInstance() {
48 ControlLoop controlLoop1 = new ControlLoop();
49 assertTrue(controlLoop1.equals(controlLoop1));
53 public void testEqualsNull() {
54 ControlLoop controlLoop1 = new ControlLoop();
55 assertFalse(controlLoop1.equals(null));
59 public void testEqualsInstanceOfDiffClass() {
60 ControlLoop controlLoop1 = new ControlLoop();
61 assertFalse(controlLoop1.equals(""));
65 public void testEqualsNoServicesAndResourcesOrTimeout() {
66 final Pnf pnf = new Pnf();
67 pnf.setPnfName("pnf 1");
69 ControlLoop controlLoop1 = new ControlLoop();
70 controlLoop1.setControlLoopName(controlLoopName);
71 controlLoop1.setVersion(version);
72 controlLoop1.setPnf(pnf);
73 controlLoop1.setTrigger_policy(triggerPolicy);
74 controlLoop1.setAbatement(abatement);
76 ControlLoop controlLoop2 = new ControlLoop();
77 controlLoop2.setControlLoopName(controlLoopName);
78 controlLoop2.setVersion(version);
79 controlLoop2.setPnf(pnf);
80 controlLoop2.setTrigger_policy(triggerPolicy);
81 controlLoop2.setAbatement(abatement);
83 assertTrue(controlLoop1.equals(controlLoop2));
87 public void testEquals() throws IOException {
88 final Pnf pnf = new Pnf();
89 pnf.setPnfName("pnf 1");
91 ControlLoop controlLoop1 = new ControlLoop();
92 controlLoop1.setControlLoopName(controlLoopName);
93 controlLoop1.setVersion(version);
94 Service service1 = new Service("service1");
95 Service service2 = new Service("service2");
96 List<Service> services = new ArrayList<>();
97 services.add(service1);
98 services.add(service2);
99 controlLoop1.setServices(services);
100 Resource resource1 = new Resource("resource1", ResourceType.VF);
101 Resource resource2 = new Resource("resource2", ResourceType.VFC);
102 List<Resource> resources = new ArrayList<>();
103 resources.add(resource1);
104 resources.add(resource2);
105 controlLoop1.setResources(resources);
106 controlLoop1.setPnf(pnf);
107 controlLoop1.setTrigger_policy(triggerPolicy);
108 controlLoop1.setTimeout(timeout);
109 controlLoop1.setAbatement(abatement);
111 ControlLoop controlLoop2 = new ControlLoop();
112 controlLoop2.setControlLoopName(controlLoopName);
113 controlLoop2.setVersion(version);
114 Service controlLoop2Service1 = new Service("service1");
115 Service controlLoop2Service2 = new Service("service2");
116 List<Service> controlLoop2Services = new ArrayList<>();
117 controlLoop2Services.add(controlLoop2Service1);
118 controlLoop2Services.add(controlLoop2Service2);
119 controlLoop2.setServices(controlLoop2Services);
120 Resource controlLoop2Resource1 = new Resource("resource1", ResourceType.VF);
121 Resource controlLoop2Resource2 = new Resource("resource2", ResourceType.VFC);
122 List<Resource> controlLoop2Resources = new ArrayList<>();
123 controlLoop2Resources.add(controlLoop2Resource1);
124 controlLoop2Resources.add(controlLoop2Resource2);
125 controlLoop2.setResources(controlLoop2Resources);
126 controlLoop2.setPnf(pnf);
127 controlLoop2.setTrigger_policy(triggerPolicy);
128 controlLoop2.setTimeout(timeout);
129 controlLoop1.setAbatement(abatement);
131 assertTrue(controlLoop1.equals(controlLoop2));
132 assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
134 controlLoop2 = Serializer.roundTrip(controlLoop1);
135 assertTrue(controlLoop1.equals(controlLoop2));
136 assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
141 // I'VE MARKED THIS TEST CASE AS IGNORE BECAUSE THE TEST CASE FAILS
142 // This test case fails because the ControlLoop(ControlLoop controlLoop) constructor.
143 // does not copy the value of pnf and version into the newly created object
144 // PLEASE ADVISE IF THE EXISTING BEHAVIOUR IS CORRECT
145 public void testControlLoop() {
146 final Pnf pnf = new Pnf();
147 pnf.setPnfName("pnf 1");
149 ControlLoop controlLoop1 = new ControlLoop();
150 controlLoop1.setControlLoopName(controlLoopName);
151 controlLoop1.setVersion(version);
152 Service service1 = new Service("service1");
153 Service service2 = new Service("service2");
154 List<Service> services = new ArrayList<>();
155 services.add(service1);
156 services.add(service2);
157 controlLoop1.setServices(services);
158 Resource resource1 = new Resource("resource1", ResourceType.VF);
159 Resource resource2 = new Resource("resource2", ResourceType.VFC);
160 List<Resource> resources = new ArrayList<>();
161 resources.add(resource1);
162 resources.add(resource2);
163 controlLoop1.setResources(resources);
164 controlLoop1.setPnf(pnf);
165 controlLoop1.setTrigger_policy(triggerPolicy);
166 controlLoop1.setAbatement(abatement);
168 ControlLoop controlLoop2 = new ControlLoop(controlLoop1);
170 assertEquals(controlLoop1.getControlLoopName(), controlLoop2.getControlLoopName());
171 assertEquals(controlLoop1.getVersion(), controlLoop2.getVersion());
172 assertEquals(controlLoop1.getServices(), controlLoop2.getServices());
173 assertEquals(controlLoop1.getResources(), controlLoop2.getResources());
174 assertEquals(controlLoop1.getPnf(), controlLoop2.getPnf());
175 assertEquals(controlLoop1.getTrigger_policy(), controlLoop2.getTrigger_policy());
176 assertEquals(controlLoop1.getAbatement(), controlLoop2.getAbatement());
178 assertTrue(controlLoop1.equals(controlLoop2));