Merge "Add @NonNull to PolicyIdent"
[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.base.PfConceptKey;
30 import org.onap.policy.models.pdp.concepts.PdpGroups;
31 import org.onap.policy.models.provider.PolicyModelsProvider;
32 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
33 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
34 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
35 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
36 import org.onap.policy.models.tosca.simple.concepts.ToscaServiceTemplate;
37
38 /**
39  * Test the dummy models provider implementation.
40  *
41  * @author Liam Fallon (liam.fallon@est.tech)
42  */
43 public class DummyPolicyModelsProviderTest {
44
45     @Test
46     public void testProvider() throws Exception {
47         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
48         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
49         parameters.setDatabaseUrl("jdbc:dummy");
50         parameters.setPersistenceUnit("dummy");
51
52         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
53
54         dummyProvider.init();
55
56         ToscaServiceTemplate serviceTemplate = dummyProvider.getPolicies(new PfConceptKey());
57         assertNotNull(serviceTemplate);
58         assertEquals("onap.vcpe.tca:1.0.0",
59                 serviceTemplate.getTopologyTemplate().getPolicies().get("onap.vcpe.tca").getId());
60
61         dummyProvider.close();
62     }
63
64     @Test
65     public void testProviderMethods() throws Exception {
66         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
67         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
68         parameters.setDatabaseUrl("jdbc:dummy");
69         parameters.setPersistenceUnit("dummy");
70
71         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
72         dummyProvider.init();
73
74         assertNotNull(dummyProvider.getPolicyTypes(new PfConceptKey()));
75         assertNotNull(dummyProvider.createPolicyTypes(new ToscaServiceTemplate()));
76         assertNotNull(dummyProvider.updatePolicyTypes(new ToscaServiceTemplate()));
77         assertNotNull(dummyProvider.deletePolicyTypes(new PfConceptKey()));
78
79         assertNotNull(dummyProvider.getPolicies(new PfConceptKey()));
80         assertNotNull(dummyProvider.createPolicies(new ToscaServiceTemplate()));
81         assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate()));
82         assertNotNull(dummyProvider.deletePolicies(new PfConceptKey()));
83
84         assertNotNull(dummyProvider.getOperationalPolicy("policy_id"));
85         assertNotNull(dummyProvider.createOperationalPolicy(new LegacyOperationalPolicy()));
86         assertNotNull(dummyProvider.updateOperationalPolicy(new LegacyOperationalPolicy()));
87         assertNotNull(dummyProvider.deleteOperationalPolicy("policy_id"));
88
89         assertNotNull(dummyProvider.getGuardPolicy("policy_id"));
90         assertNotNull(dummyProvider.createGuardPolicy(new LegacyGuardPolicyInput()));
91         assertNotNull(dummyProvider.updateGuardPolicy(new LegacyGuardPolicyInput()));
92         assertNotNull(dummyProvider.deleteGuardPolicy("policy_id"));
93
94         assertNotNull(dummyProvider.getPdpGroups("filter"));
95         assertNotNull(dummyProvider.createPdpGroups(new PdpGroups()));
96         assertNotNull(dummyProvider.updatePdpGroups(new PdpGroups()));
97         assertNotNull(dummyProvider.deletePdpGroups("filter"));
98
99         assertThatThrownBy(() -> {
100             dummyProvider.getPolicyTypes(null);
101         }).hasMessage("policyTypeKey is marked @NonNull but is null");
102         assertThatThrownBy(() -> {
103             dummyProvider.createPolicyTypes(null);
104         }).hasMessage("serviceTemplate is marked @NonNull but is null");
105         assertThatThrownBy(() -> {
106             dummyProvider.updatePolicyTypes(null);
107         }).hasMessage("serviceTemplate is marked @NonNull but is null");
108         assertThatThrownBy(() -> {
109             dummyProvider.deletePolicyTypes(null);
110         }).hasMessage("policyTypeKey is marked @NonNull but is null");
111
112         assertThatThrownBy(() -> {
113             dummyProvider.getPolicies(null);
114         }).hasMessage("policyKey is marked @NonNull but is null");
115         assertThatThrownBy(() -> {
116             dummyProvider.createPolicies(null);
117         }).hasMessage("serviceTemplate is marked @NonNull but is null");
118         assertThatThrownBy(() -> {
119             dummyProvider.updatePolicies(null);
120         }).hasMessage("serviceTemplate is marked @NonNull but is null");
121         assertThatThrownBy(() -> {
122             dummyProvider.deletePolicies(null);
123         }).hasMessage("policyKey is marked @NonNull but is null");
124
125         assertThatThrownBy(() -> {
126             dummyProvider.getOperationalPolicy(null);
127         }).hasMessage("policyId is marked @NonNull but is null");
128         assertThatThrownBy(() -> {
129             dummyProvider.createOperationalPolicy(null);
130         }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
131         assertThatThrownBy(() -> {
132             dummyProvider.updateOperationalPolicy(null);
133         }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
134         assertThatThrownBy(() -> {
135             dummyProvider.deleteOperationalPolicy(null);
136         }).hasMessage("policyId is marked @NonNull but is null");
137
138         assertThatThrownBy(() -> {
139             dummyProvider.getGuardPolicy(null);
140         }).hasMessage("policyId is marked @NonNull but is null");
141         assertThatThrownBy(() -> {
142             dummyProvider.createGuardPolicy(null);
143         }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
144         assertThatThrownBy(() -> {
145             dummyProvider.updateGuardPolicy(null);
146         }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
147         assertThatThrownBy(() -> {
148             dummyProvider.deleteGuardPolicy(null);
149         }).hasMessage("policyId is marked @NonNull but is null");
150
151         assertThatThrownBy(() -> {
152             dummyProvider.getPdpGroups(null);
153         }).hasMessage("pdpGroupFilter is marked @NonNull but is null");
154         assertThatThrownBy(() -> {
155             dummyProvider.createPdpGroups(null);
156         }).hasMessage("pdpGroups is marked @NonNull but is null");
157         assertThatThrownBy(() -> {
158             dummyProvider.updatePdpGroups(null);
159         }).hasMessage("pdpGroups is marked @NonNull but is null");
160         assertThatThrownBy(() -> {
161             dummyProvider.deletePdpGroups(null);
162         }).hasMessage("pdpGroupFilter is marked @NonNull but is null");
163
164         dummyProvider.close();
165     }
166
167     @Test
168     public void testDummyResponse() {
169         DummyPolicyModelsProviderSubImpl resp = null;
170
171         try {
172             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
173             resp.getBadDummyResponse1();
174             fail("test should throw an exception");
175         } catch (Exception npe) {
176             assertEquals("error serializing object", npe.getMessage());
177         } finally {
178             if (resp != null) {
179                 resp.close();
180             }
181         }
182
183         try {
184             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
185             resp.getBadDummyResponse2();
186             fail("test should throw an exception");
187         } catch (Exception npe) {
188             assertEquals("fileName is marked @NonNull but is null", npe.getMessage());
189         } finally {
190             if (resp != null) {
191                 resp.close();
192             }
193         }
194     }
195 }