Merge "Add models-pdp to models repo"
[policy/models.git] / models-provider / src / test / java / org / onap / policy / models / provider / impl / DummyPolicyModelsProviderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
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  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.models.provider.impl;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.fail;
26
27 import org.junit.Test;
28 import org.onap.policy.models.base.PfConceptKey;
29 import org.onap.policy.models.pap.concepts.PdpGroups;
30 import org.onap.policy.models.provider.PolicyModelsProvider;
31 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
32 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
33 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicy;
34 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
35 import org.onap.policy.models.tosca.simple.concepts.ToscaServiceTemplate;
36
37 /**
38  * Test the dummy models provider implementation.
39  *
40  * @author Liam Fallon (liam.fallon@est.tech)
41  */
42 public class DummyPolicyModelsProviderTest {
43
44     @Test
45     public void testProvider() throws Exception {
46         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
47         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
48         parameters.setDatabaseUrl("jdbc:dummy");
49         parameters.setPersistenceUnit("dummy");
50
51         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
52
53         dummyProvider.init();
54
55         ToscaServiceTemplate serviceTemplate = dummyProvider.getPolicies(new PfConceptKey());
56         assertNotNull(serviceTemplate);
57         assertEquals("onap.vcpe.tca:1.0.0",
58                 serviceTemplate.getTopologyTemplate().getPolicies().get("onap.vcpe.tca").getId());
59
60         dummyProvider.close();
61     }
62
63     @Test
64     public void testProviderMethods() throws Exception {
65         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
66         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
67         parameters.setDatabaseUrl("jdbc:dummy");
68         parameters.setPersistenceUnit("dummy");
69
70         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
71         dummyProvider.init();
72
73         assertNotNull(dummyProvider.getPolicyTypes(new PfConceptKey()));
74         assertNotNull(dummyProvider.createPolicyTypes(new ToscaServiceTemplate()));
75         assertNotNull(dummyProvider.updatePolicyTypes(new ToscaServiceTemplate()));
76         assertNotNull(dummyProvider.deletePolicyTypes(new PfConceptKey()));
77
78         assertNotNull(dummyProvider.getPolicies(new PfConceptKey()));
79         assertNotNull(dummyProvider.createPolicies(new ToscaServiceTemplate()));
80         assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate()));
81         assertNotNull(dummyProvider.deletePolicies(new PfConceptKey()));
82
83         assertNotNull(dummyProvider.getOperationalPolicy("policy_id"));
84         assertNotNull(dummyProvider.createOperationalPolicy(new LegacyOperationalPolicy()));
85         assertNotNull(dummyProvider.updateOperationalPolicy(new LegacyOperationalPolicy()));
86         assertNotNull(dummyProvider.deleteOperationalPolicy("policy_id"));
87
88         assertNotNull(dummyProvider.getGuardPolicy("policy_id"));
89         assertNotNull(dummyProvider.createGuardPolicy(new LegacyGuardPolicy()));
90         assertNotNull(dummyProvider.updateGuardPolicy(new LegacyGuardPolicy()));
91         assertNotNull(dummyProvider.deleteGuardPolicy("policy_id"));
92
93         assertNotNull(dummyProvider.getPdpGroups("filter"));
94         assertNotNull(dummyProvider.createPdpGroups(new PdpGroups()));
95         assertNotNull(dummyProvider.updatePdpGroups(new PdpGroups()));
96         assertNotNull(dummyProvider.deletePdpGroups("filter"));
97
98         try {
99             dummyProvider.getPolicyTypes(null);
100             fail("test should throw an exception");
101         } catch (Exception npe) {
102             assertEquals("policyTypeKey is marked @NonNull but is null", npe.getMessage());
103         }
104         try {
105             dummyProvider.createPolicyTypes(null);
106             fail("test should throw an exception");
107         } catch (Exception npe) {
108             assertEquals("serviceTemplate is marked @NonNull but is null", npe.getMessage());
109         }
110         try {
111             dummyProvider.updatePolicyTypes(null);
112             fail("test should throw an exception");
113         } catch (Exception npe) {
114             assertEquals("serviceTemplate is marked @NonNull but is null", npe.getMessage());
115         }
116         try {
117             dummyProvider.deletePolicyTypes(null);
118             fail("test should throw an exception");
119         } catch (Exception npe) {
120             assertEquals("policyTypeKey is marked @NonNull but is null", npe.getMessage());
121         }
122
123         try {
124             dummyProvider.getPolicies(null);
125             fail("test should throw an exception");
126         } catch (Exception npe) {
127             assertEquals("policyKey is marked @NonNull but is null", npe.getMessage());
128         }
129         try {
130             dummyProvider.createPolicies(null);
131             fail("test should throw an exception");
132         } catch (Exception npe) {
133             assertEquals("serviceTemplate is marked @NonNull but is null", npe.getMessage());
134         }
135         try {
136             dummyProvider.updatePolicies(null);
137             fail("test should throw an exception");
138         } catch (Exception npe) {
139             assertEquals("serviceTemplate is marked @NonNull but is null", npe.getMessage());
140         }
141         try {
142             dummyProvider.deletePolicies(null);
143             fail("test should throw an exception");
144         } catch (Exception npe) {
145             assertEquals("policyKey is marked @NonNull but is null", npe.getMessage());
146         }
147
148         try {
149             dummyProvider.getOperationalPolicy(null);
150
151
152             fail("test should throw an exception");
153         } catch (Exception npe) {
154             assertEquals("policyId is marked @NonNull but is null", npe.getMessage());
155         }
156         try {
157             dummyProvider.createOperationalPolicy(null);
158             fail("test should throw an exception");
159         } catch (Exception npe) {
160             assertEquals("legacyOperationalPolicy is marked @NonNull but is null", npe.getMessage());
161         }
162         try {
163             dummyProvider.updateOperationalPolicy(null);
164             fail("test should throw an exception");
165         } catch (Exception npe) {
166             assertEquals("legacyOperationalPolicy is marked @NonNull but is null", npe.getMessage());
167         }
168         try {
169             dummyProvider.deleteOperationalPolicy(null);
170             fail("test should throw an exception");
171         } catch (Exception npe) {
172             assertEquals("policyId is marked @NonNull but is null", npe.getMessage());
173         }
174
175         try {
176             dummyProvider.getGuardPolicy(null);
177             fail("test should throw an exception");
178         } catch (Exception npe) {
179             assertEquals("policyId is marked @NonNull but is null", npe.getMessage());
180         }
181         try {
182             dummyProvider.createGuardPolicy(null);
183             fail("test should throw an exception");
184         } catch (Exception npe) {
185             assertEquals("legacyGuardPolicy is marked @NonNull but is null", npe.getMessage());
186         }
187         try {
188             dummyProvider.updateGuardPolicy(null);
189             fail("test should throw an exception");
190         } catch (Exception npe) {
191             assertEquals("legacyGuardPolicy is marked @NonNull but is null", npe.getMessage());
192         }
193         try {
194             dummyProvider.deleteGuardPolicy(null);
195             fail("test should throw an exception");
196         } catch (Exception npe) {
197             assertEquals("policyId is marked @NonNull but is null", npe.getMessage());
198         }
199
200         try {
201
202
203             dummyProvider.getPdpGroups(null);
204             fail("test should throw an exception");
205         } catch (Exception npe) {
206             assertEquals("pdpGroupFilter is marked @NonNull but is null", npe.getMessage());
207         }
208         try {
209             dummyProvider.createPdpGroups(null);
210             fail("test should throw an exception");
211         } catch (Exception npe) {
212             assertEquals("pdpGroups is marked @NonNull but is null", npe.getMessage());
213         }
214         try {
215             dummyProvider.updatePdpGroups(null);
216             fail("test should throw an exception");
217         } catch (Exception npe) {
218             assertEquals("pdpGroups is marked @NonNull but is null", npe.getMessage());
219         }
220         try {
221             dummyProvider.deletePdpGroups(null);
222             fail("test should throw an exception");
223         } catch (Exception npe) {
224             assertEquals("pdpGroupFilter is marked @NonNull but is null", npe.getMessage());
225         }
226
227         dummyProvider.close();
228     }
229
230     @Test
231     public void testDummyResponse() {
232         DummyPolicyModelsProviderSubImpl resp = null;
233
234         try {
235             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
236             resp.getBadDummyResponse1();
237             fail("test should throw an exception");
238         } catch (Exception npe) {
239             assertEquals("error serializing object", npe.getMessage());
240         } finally {
241             if (resp != null) {
242                 resp.close();
243             }
244         }
245
246         try {
247             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
248             resp.getBadDummyResponse2();
249             fail("test should throw an exception");
250         } catch (Exception npe) {
251             assertEquals("fileName is marked @NonNull but is null", npe.getMessage());
252         } finally {
253             if (resp != null) {
254                 resp.close();
255             }
256         }
257     }
258 }