Refactor to authorative TOSCA serializtion
[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.assertj.core.api.Assertions.assertThatThrownBy;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.fail;
27
28 import org.junit.Test;
29 import org.onap.policy.models.pdp.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.authorative.concepts.ToscaServiceTemplate;
34 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
35 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
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("onap.vcpe.tca", "1.0.0");
56         assertNotNull(serviceTemplate);
57         assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app",
58                 serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get("onap.vcpe.tca").getType());
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("name", "version"));
74         assertNotNull(dummyProvider.createPolicyTypes(new ToscaServiceTemplate()));
75         assertNotNull(dummyProvider.updatePolicyTypes(new ToscaServiceTemplate()));
76         assertNotNull(dummyProvider.deletePolicyTypes("name", "version"));
77
78         assertNotNull(dummyProvider.getPolicies("name", "version"));
79         assertNotNull(dummyProvider.createPolicies(new ToscaServiceTemplate()));
80         assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate()));
81         assertNotNull(dummyProvider.deletePolicies("name", "version"));
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 LegacyGuardPolicyInput()));
90         assertNotNull(dummyProvider.updateGuardPolicy(new LegacyGuardPolicyInput()));
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         assertThatThrownBy(() -> {
99             dummyProvider.getPolicyTypes(null, null);
100         }).hasMessage("name is marked @NonNull but is null");
101         assertThatThrownBy(() -> {
102             dummyProvider.createPolicyTypes(null);
103         }).hasMessage("serviceTemplate is marked @NonNull but is null");
104         assertThatThrownBy(() -> {
105             dummyProvider.updatePolicyTypes(null);
106         }).hasMessage("serviceTemplate is marked @NonNull but is null");
107         assertThatThrownBy(() -> {
108             dummyProvider.deletePolicyTypes(null, null);
109         }).hasMessage("name is marked @NonNull but is null");
110
111         assertThatThrownBy(() -> {
112             dummyProvider.getPolicies(null, null);
113         }).hasMessage("name is marked @NonNull but is null");
114         assertThatThrownBy(() -> {
115             dummyProvider.createPolicies(null);
116         }).hasMessage("serviceTemplate is marked @NonNull but is null");
117         assertThatThrownBy(() -> {
118             dummyProvider.updatePolicies(null);
119         }).hasMessage("serviceTemplate is marked @NonNull but is null");
120         assertThatThrownBy(() -> {
121             dummyProvider.deletePolicies(null, null);
122         }).hasMessage("name is marked @NonNull but is null");
123
124         assertThatThrownBy(() -> {
125             dummyProvider.getOperationalPolicy(null);
126         }).hasMessage("policyId is marked @NonNull but is null");
127         assertThatThrownBy(() -> {
128             dummyProvider.createOperationalPolicy(null);
129         }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
130         assertThatThrownBy(() -> {
131             dummyProvider.updateOperationalPolicy(null);
132         }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
133         assertThatThrownBy(() -> {
134             dummyProvider.deleteOperationalPolicy(null);
135         }).hasMessage("policyId is marked @NonNull but is null");
136
137         assertThatThrownBy(() -> {
138             dummyProvider.getGuardPolicy(null);
139         }).hasMessage("policyId is marked @NonNull but is null");
140         assertThatThrownBy(() -> {
141             dummyProvider.createGuardPolicy(null);
142         }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
143         assertThatThrownBy(() -> {
144             dummyProvider.updateGuardPolicy(null);
145         }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
146         assertThatThrownBy(() -> {
147             dummyProvider.deleteGuardPolicy(null);
148         }).hasMessage("policyId is marked @NonNull but is null");
149
150         assertThatThrownBy(() -> {
151             dummyProvider.getPdpGroups(null);
152         }).hasMessage("pdpGroupFilter is marked @NonNull but is null");
153         assertThatThrownBy(() -> {
154             dummyProvider.createPdpGroups(null);
155         }).hasMessage("pdpGroups is marked @NonNull but is null");
156         assertThatThrownBy(() -> {
157             dummyProvider.updatePdpGroups(null);
158         }).hasMessage("pdpGroups is marked @NonNull but is null");
159         assertThatThrownBy(() -> {
160             dummyProvider.deletePdpGroups(null);
161         }).hasMessage("pdpGroupFilter is marked @NonNull but is null");
162
163         dummyProvider.close();
164     }
165
166     @Test
167     public void testDummyResponse() {
168         DummyPolicyModelsProviderSubImpl resp = null;
169
170         try {
171             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
172             resp.getBadDummyResponse1();
173             fail("test should throw an exception");
174         } catch (Exception npe) {
175             assertEquals("error serializing object", npe.getMessage());
176         } finally {
177             if (resp != null) {
178                 resp.close();
179             }
180         }
181
182         try {
183             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
184             resp.getBadDummyResponse2();
185             fail("test should throw an exception");
186         } catch (Exception npe) {
187             assertEquals("fileName is marked @NonNull but is null", npe.getMessage());
188         } finally {
189             if (resp != null) {
190                 resp.close();
191             }
192         }
193     }
194 }