0b2f62defb01f48e78d12ece93c236552770ca2e
[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 package org.onap.policy.controlloop.policy;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertFalse;
22 import static org.junit.Assert.assertTrue;
23
24 import java.util.ArrayList;
25 import java.util.List;
26 import org.junit.Ignore;
27 import org.junit.Test;
28 import org.onap.policy.aai.PNF;
29 import org.onap.policy.sdc.Resource;
30 import org.onap.policy.sdc.ResourceType;
31 import org.onap.policy.sdc.Service;
32
33 public class ControlLoopTest {
34         
35     private String controlLoopName = "control loop 1";
36     private String version = "1.0.1";
37     private String triggerPolicy = FinalResult.FINAL_OPENLOOP.toString();
38     private Integer timeout = 100;
39     private Boolean abatement = false;
40     
41         @Test
42         public void testEqualsSameInstance() {
43                 ControlLoop controlLoop1 = new ControlLoop();
44                 assertTrue(controlLoop1.equals(controlLoop1));
45         }
46         
47         @Test
48         public void testEqualsNull() {
49                 ControlLoop controlLoop1 = new ControlLoop();
50                 assertFalse(controlLoop1.equals(null));
51         }
52         @Test
53         public void testEqualsInstanceOfDiffClass() {
54                 ControlLoop controlLoop1 = new ControlLoop();
55                 assertFalse(controlLoop1.equals(""));
56         }
57         
58         @Test
59         public void testEqualsNoServicesAndResourcesOrTimeout() {
60             final PNF pnf = new PNF();
61             pnf.setPNFName("pnf 1");
62             
63                 ControlLoop controlLoop1 = new ControlLoop();
64                 controlLoop1.setControlLoopName(controlLoopName);
65                 controlLoop1.setVersion(version);
66                 controlLoop1.setPnf(pnf);
67                 controlLoop1.setTrigger_policy(triggerPolicy);
68                 controlLoop1.setAbatement(abatement);
69                 
70                 ControlLoop controlLoop2 = new ControlLoop();
71                 controlLoop2.setControlLoopName(controlLoopName);
72                 controlLoop2.setVersion(version);
73                 controlLoop2.setPnf(pnf);
74                 controlLoop2.setTrigger_policy(triggerPolicy);
75                 controlLoop2.setAbatement(abatement);
76                 
77                 assertTrue(controlLoop1.equals(controlLoop2));
78         }
79         
80         @Test
81         public void testEquals() {
82             final PNF pnf = new PNF();
83             pnf.setPNFName("pnf 1");
84             
85                 ControlLoop controlLoop1 = new ControlLoop();
86                 controlLoop1.setControlLoopName(controlLoopName);
87                 controlLoop1.setVersion(version);
88                 Service service1 = new Service("service1");
89                 Service service2 = new Service("service2");
90                 List<Service> services = new ArrayList<>();
91                 services.add(service1);
92                 services.add(service2);
93                 controlLoop1.setServices(services);
94                 Resource resource1 = new Resource("resource1", ResourceType.VF);
95                 Resource resource2 = new Resource("resource2", ResourceType.VFC);
96                 List<Resource> resources = new ArrayList<>();
97                 resources.add(resource1);
98                 resources.add(resource2);
99                 controlLoop1.setResources(resources);
100                 controlLoop1.setPnf(pnf);
101                 controlLoop1.setTrigger_policy(triggerPolicy);
102                 controlLoop1.setTimeout(timeout);
103                 controlLoop1.setAbatement(abatement);
104                 
105                 ControlLoop controlLoop2 = new ControlLoop();
106                 controlLoop2.setControlLoopName(controlLoopName);
107                 controlLoop2.setVersion(version);
108                 Service controlLoop2_service1 = new Service("service1");
109                 Service controlLoop2_service2 = new Service("service2");
110                 List<Service> controlLoop2_services = new ArrayList<>();
111                 controlLoop2_services.add(controlLoop2_service1);
112                 controlLoop2_services.add(controlLoop2_service2);
113                 controlLoop2.setServices(controlLoop2_services);
114                 Resource controlLoop2_resource1 = new Resource("resource1", ResourceType.VF);
115                 Resource controlLoop2_resource2 = new Resource("resource2", ResourceType.VFC);
116                 List<Resource> controlLoop2_resources = new ArrayList<>();
117                 controlLoop2_resources.add(controlLoop2_resource1);
118                 controlLoop2_resources.add(controlLoop2_resource2);
119                 controlLoop2.setResources(controlLoop2_resources);
120                 controlLoop2.setPnf(pnf);
121                 controlLoop2.setTrigger_policy(triggerPolicy);
122                 controlLoop2.setTimeout(timeout);
123                 controlLoop1.setAbatement(abatement);
124                 
125                 assertTrue(controlLoop1.equals(controlLoop2));
126                 assertEquals(controlLoop1.hashCode(), controlLoop2.hashCode());
127         }
128         
129         @Test
130     @Ignore
131     // I'VE MARKED THIS TEST CASE AS IGNORE BECAUSE THE TEST CASE FAILS
132     // This test case fails because the ControlLoop(ControlLoop controlLoop) constructor. 
133     // does not copy the value of pnf and version into the newly created object
134     // PLEASE ADVISE IF THE EXISTING BEHAVIOUR IS CORRECT
135         public void testControlLoop() {
136             final PNF pnf = new PNF();
137             pnf.setPNFName("pnf 1");
138             
139                 ControlLoop controlLoop1 = new ControlLoop();
140                 controlLoop1.setControlLoopName(controlLoopName);
141                 controlLoop1.setVersion(version);
142         Service service1 = new Service("service1");
143         Service service2 = new Service("service2");
144         List<Service> services = new ArrayList<>();
145         services.add(service1);
146         services.add(service2);
147         controlLoop1.setServices(services);
148         Resource resource1 = new Resource("resource1", ResourceType.VF);
149         Resource resource2 = new Resource("resource2", ResourceType.VFC);
150         List<Resource> resources = new ArrayList<>();
151         resources.add(resource1);
152         resources.add(resource2);
153         controlLoop1.setResources(resources);
154         controlLoop1.setPnf(pnf);
155                 controlLoop1.setTrigger_policy(triggerPolicy);
156                 controlLoop1.setAbatement(abatement);
157                 
158                 ControlLoop controlLoop2 = new ControlLoop(controlLoop1);
159                 
160                 assertEquals(controlLoop1.getControlLoopName(), controlLoop2.getControlLoopName());
161                 assertEquals(controlLoop1.getVersion(), controlLoop2.getVersion());
162                 assertEquals(controlLoop1.getServices(), controlLoop2.getServices());
163                 assertEquals(controlLoop1.getResources(), controlLoop2.getResources());
164                 assertEquals(controlLoop1.getPnf(), controlLoop2.getPnf());
165                 assertEquals(controlLoop1.getTrigger_policy(), controlLoop2.getTrigger_policy());
166                 assertEquals(controlLoop1.getAbatement(), controlLoop2.getAbatement());
167                 
168                 assertTrue(controlLoop1.equals(controlLoop2));
169         }
170
171 }