Merge "Supports new aai changes."
[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.assertNull;
26 import static org.junit.Assert.assertTrue;
27 import static org.junit.Assert.fail;
28
29 import java.util.ArrayList;
30
31 import org.junit.Test;
32 import org.onap.policy.models.pdp.concepts.Pdp;
33 import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
34 import org.onap.policy.models.pdp.concepts.PdpStatistics;
35 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
36 import org.onap.policy.models.provider.PolicyModelsProvider;
37 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
38 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
39 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
40 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
41 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
42 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
43 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
44
45 /**
46  * Test the dummy models provider implementation.
47  *
48  * @author Liam Fallon (liam.fallon@est.tech)
49  */
50 public class DummyPolicyModelsProviderTest {
51
52     @Test
53     public void testProvider() throws Exception {
54         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
55         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
56         parameters.setDatabaseUrl("jdbc:dummy");
57         parameters.setPersistenceUnit("dummy");
58
59         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
60
61         dummyProvider.init();
62
63         ToscaServiceTemplate serviceTemplate = dummyProvider.getPolicies("onap.vcpe.tca", "1.0.0");
64         assertNotNull(serviceTemplate);
65         assertEquals("onap.policies.monitoring.cdap.tca.hi.lo.app",
66                 serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get("onap.vcpe.tca").getType());
67
68         dummyProvider.close();
69     }
70
71     @Test
72     public void testProviderMethods() throws Exception {
73         PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters();
74         parameters.setImplementation(DummyPolicyModelsProviderImpl.class.getCanonicalName());
75         parameters.setDatabaseUrl("jdbc:dummy");
76         parameters.setPersistenceUnit("dummy");
77
78         PolicyModelsProvider dummyProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
79         dummyProvider.init();
80
81         assertNotNull(dummyProvider.getPolicyTypes("name", "version"));
82         assertNotNull(dummyProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build()));
83         assertNotNull(dummyProvider.getPolicyTypeList("name", "version"));
84         assertNotNull(dummyProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()));
85         assertNotNull(dummyProvider.createPolicyTypes(new ToscaServiceTemplate()));
86         assertNotNull(dummyProvider.updatePolicyTypes(new ToscaServiceTemplate()));
87         assertNotNull(dummyProvider.deletePolicyType("name", "version"));
88
89         assertNotNull(dummyProvider.getPolicies("name", "version"));
90         assertNotNull(dummyProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build()));
91         assertNotNull(dummyProvider.getPolicyList("name", "version"));
92         assertNotNull(dummyProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()));
93         assertNotNull(dummyProvider.createPolicies(new ToscaServiceTemplate()));
94         assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate()));
95         assertNotNull(dummyProvider.deletePolicy("name", "version"));
96
97         assertNotNull(dummyProvider.getOperationalPolicy("policy_id"));
98         assertNotNull(dummyProvider.createOperationalPolicy(new LegacyOperationalPolicy()));
99         assertNotNull(dummyProvider.updateOperationalPolicy(new LegacyOperationalPolicy()));
100         assertNotNull(dummyProvider.deleteOperationalPolicy("policy_id"));
101
102         assertNotNull(dummyProvider.getGuardPolicy("policy_id"));
103         assertNotNull(dummyProvider.createGuardPolicy(new LegacyGuardPolicyInput()));
104         assertNotNull(dummyProvider.updateGuardPolicy(new LegacyGuardPolicyInput()));
105         assertNotNull(dummyProvider.deleteGuardPolicy("policy_id"));
106
107         assertTrue(dummyProvider.getPdpGroups("name").isEmpty());
108         assertTrue(dummyProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).isEmpty());
109         assertTrue(dummyProvider.createPdpGroups(new ArrayList<>()).isEmpty());
110         assertTrue(dummyProvider.updatePdpGroups(new ArrayList<>()).isEmpty());
111         assertNull(dummyProvider.deletePdpGroup("name"));
112
113         dummyProvider.updatePdpSubGroup("name", new PdpSubGroup());
114         dummyProvider.updatePdp("name", "type", new Pdp());
115         dummyProvider.updatePdpStatistics("name", "type", "type-0", new PdpStatistics());
116         assertTrue(dummyProvider.getPdpStatistics("name").isEmpty());
117
118         dummyProvider.close();
119     }
120
121     @Test
122     public void testDummyResponse() {
123         DummyPolicyModelsProviderSubImpl resp = null;
124
125         try {
126             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
127             resp.getBadDummyResponse1();
128             fail("test should throw an exception");
129         } catch (Exception npe) {
130             assertEquals("error serializing object", npe.getMessage());
131         } finally {
132             if (resp != null) {
133                 resp.close();
134             }
135         }
136
137         try {
138             resp = new DummyPolicyModelsProviderSubImpl(new PolicyModelsProviderParameters());
139             resp.getBadDummyResponse2();
140             fail("test should throw an exception");
141         } catch (Exception npe) {
142             assertEquals("error serializing object", npe.getMessage());
143         } finally {
144             if (resp != null) {
145                 resp.close();
146             }
147         }
148     }
149 }