2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2019-2021 Nordix Foundation.
7 * Modifications Copyright (C) 2020,2022 Bell Canada.
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
21 * SPDX-License-Identifier: Apache-2.0
22 * ============LICENSE_END=========================================================
25 package org.onap.policy.api.main.service;
27 import static org.assertj.core.api.Assertions.assertThat;
28 import static org.assertj.core.api.Assertions.assertThatCode;
29 import static org.assertj.core.api.Assertions.assertThatThrownBy;
30 import static org.junit.Assert.assertFalse;
31 import static org.junit.Assert.assertNotNull;
33 import java.util.Optional;
34 import javax.ws.rs.core.Response;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.mockito.InjectMocks;
39 import org.mockito.Mock;
40 import org.mockito.Mockito;
41 import org.mockito.junit.MockitoJUnitRunner;
42 import org.onap.policy.common.utils.coder.CoderException;
43 import org.onap.policy.common.utils.coder.StandardCoder;
44 import org.onap.policy.common.utils.coder.StandardYamlCoder;
45 import org.onap.policy.common.utils.resources.ResourceUtils;
46 import org.onap.policy.models.base.PfConceptKey;
47 import org.onap.policy.models.base.PfModelException;
48 import org.onap.policy.models.base.PfModelRuntimeException;
49 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
50 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
53 * This class performs unit test of Policy CRUD operations as implemented in {@link ToscaServiceTemplateService}.
55 * @author Chenfei Gao (cgao@research.att.com)
57 @RunWith(MockitoJUnitRunner.class)
58 public class TestToscaServiceTemplateServiceForPolicyCrud extends TestCommonToscaServiceTemplateService {
60 private static StandardCoder standardCoder = new StandardCoder();
61 private static StandardYamlCoder standardYamlCoder = new StandardYamlCoder();
63 private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json";
64 private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.tcagen2.yaml";
65 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID = "policies/vCPE.policy.bad.policytypeid.json";
66 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION =
67 "policies/vCPE.policy.bad.policytypeversion.json";
68 private static final String POLICY_RESOURCE_WITH_NO_POLICY_VERSION = "policies/vCPE.policy.no.policyversion.json";
69 private static final String POLICY_RESOURCE_WITH_DIFFERENT_FIELDS =
70 "policies/vCPE.policy.different.policy.fields.json";
71 private static final String MULTIPLE_POLICIES_RESOURCE = "policies/vCPE.policies.optimization.input.tosca.json";
73 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON =
74 "policytypes/onap.policies.controlloop.operational.Common.yaml";
75 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS =
76 "policytypes/onap.policies.controlloop.operational.common.Drools.yaml";
77 private static final String POLICY_RESOURCE_OPERATIONAL = "policies/vCPE.policy.operational.input.tosca.json";
78 private static final String POLICY_TYPE_OPERATIONAL_DROOLS = "onap.policies.controlloop.operational.common.Drools";
81 private PdpGroupService pdpGroupService;
84 private ToscaServiceTemplateService toscaServiceTemplateService;
92 public void testFetchPolicies() {
93 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
94 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
96 assertThatThrownBy(() -> {
97 toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", null, null, null);
98 }).hasMessage("service template not found in database");
100 assertThatThrownBy(() -> {
101 toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", null, null);
102 }).hasMessage("service template not found in database");
104 assertThatThrownBy(() -> {
105 toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", "1.0.0", null);
106 }).hasMessage("service template not found in database");
108 assertThatThrownBy(() -> {
109 toscaServiceTemplateService.fetchPolicies(null, null, "dummy", "1.0.0", null);
110 }).hasMessage("service template not found in database");
114 public void testFetchLatestPolicies() {
115 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
116 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
118 assertThatThrownBy(() -> {
119 toscaServiceTemplateService.fetchLatestPolicies("dummy", "dummy", "dummy", null);
120 }).hasMessage("service template not found in database");
124 public void testCreatePolicy() throws Exception {
125 assertThatThrownBy(() -> {
126 toscaServiceTemplateService.createPolicy("dummy", "1.0.0", new ToscaServiceTemplate());
127 }).hasMessage("topology template not specified on service template");
129 var policyTypeServiceTemplate = standardYamlCoder
130 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
131 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
132 mockDbServiceTemplate(serviceTemplate, null, null);
134 assertThatCode(() -> toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate))
135 .doesNotThrowAnyException();
137 assertThatThrownBy(() -> {
138 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID);
139 var badPolicyServiceTemplate =
140 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
141 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
142 badPolicyServiceTemplate);
144 "Version not specified, the version of this TOSCA entity must be specified in "
145 + "the type_version field");
147 assertThatThrownBy(() -> {
148 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION);
149 var badPolicyServiceTemplate =
150 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
151 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
152 badPolicyServiceTemplate);
153 }).hasMessageContaining(
154 "item \"policy type\" value \"onap.policies.monitoring.cdap.tca.hi.lo.app:2.0.0\" INVALID, not found");
156 assertThatThrownBy(() -> {
157 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_NO_POLICY_VERSION);
158 var badPolicyServiceTemplate =
159 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
160 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
161 badPolicyServiceTemplate);
162 }).hasMessageContaining("item \"version\" value \"0.0.0\" INVALID, is null");
164 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
165 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
166 var createPolicyResponseFragment = toscaServiceTemplateService
167 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
168 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
169 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
171 assertThatThrownBy(() -> {
172 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_DIFFERENT_FIELDS);
173 var badPolicyServiceTemplate =
174 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
175 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
176 badPolicyServiceTemplate);
177 }).hasMessageContaining(
178 "item \"entity\" value \"onap.restart.tca:1.0.0\" INVALID, " + "does not equal existing entity");
182 public void testCreateOperationalDroolsPolicy() throws CoderException {
183 var policyTypeServiceTemplate = standardYamlCoder.decode(
184 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON), ToscaServiceTemplate.class);
186 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
187 mockDbServiceTemplate(serviceTemplate, null, null);
189 policyTypeServiceTemplate = standardYamlCoder.decode(
190 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS), ToscaServiceTemplate.class);
191 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
192 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
194 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_OPERATIONAL);
195 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
197 toscaServiceTemplateService.createPolicy(POLICY_TYPE_OPERATIONAL_DROOLS, "1.0.0", policyServiceTemplate);
198 assertFalse(serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
202 public void testSimpleCreatePolicy() throws Exception {
204 assertThatThrownBy(() -> {
205 String multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
206 ToscaServiceTemplate multiPoliciesServiceTemplate =
207 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
208 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
209 }).hasMessageContaining(
210 "no policy types are defined on the service template for the policies in the topology template");
212 // Create required policy types
213 var policyTypeServiceTemplate = standardYamlCoder.decode(
214 ResourceUtils.getResourceAsString("policytypes/onap.policies.Optimization.yaml"),
215 ToscaServiceTemplate.class);
216 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
217 mockDbServiceTemplate(serviceTemplate, null, null);
219 policyTypeServiceTemplate = standardYamlCoder.decode(
220 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.Resource.yaml"),
221 ToscaServiceTemplate.class);
222 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
223 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
225 policyTypeServiceTemplate = standardYamlCoder.decode(
227 .getResourceAsString("policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml"),
228 ToscaServiceTemplate.class);
229 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
230 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
232 policyTypeServiceTemplate = standardYamlCoder.decode(
234 .getResourceAsString("policytypes/onap.policies.optimization.resource.DistancePolicy.yaml"),
235 ToscaServiceTemplate.class);
236 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
237 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
239 policyTypeServiceTemplate = standardYamlCoder.decode(
240 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.Vim_fit.yaml"),
241 ToscaServiceTemplate.class);
242 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
243 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
245 policyTypeServiceTemplate = standardYamlCoder.decode(
246 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.HpaPolicy.yaml"),
247 ToscaServiceTemplate.class);
248 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
249 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
251 policyTypeServiceTemplate = standardYamlCoder.decode(
252 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.VnfPolicy.yaml"),
253 ToscaServiceTemplate.class);
254 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
255 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
257 policyTypeServiceTemplate = standardYamlCoder.decode(
258 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.Service.yaml"),
259 ToscaServiceTemplate.class);
260 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
261 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
263 policyTypeServiceTemplate = standardYamlCoder.decode(
265 .getResourceAsString("policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml"),
266 ToscaServiceTemplate.class);
267 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
268 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
270 policyTypeServiceTemplate = standardYamlCoder.decode(
271 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.service.QueryPolicy.yaml"),
272 ToscaServiceTemplate.class);
273 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
274 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
276 policyTypeServiceTemplate = standardYamlCoder.decode(
277 ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml"),
278 ToscaServiceTemplate.class);
279 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
280 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
282 // Create multiple policies in one call
283 var multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
284 var multiPoliciesServiceTemplate =
285 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
287 assertThatCode(() -> {
288 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
289 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
290 }).doesNotThrowAnyException();
294 public void testDeletePolicy() throws CoderException, PfModelException {
296 assertThatThrownBy(() -> {
297 toscaServiceTemplateService.deletePolicy("dummy", "1.0.0", "dummy", "1.0.0");
298 }).hasMessage("no policies found");
300 var policyTypeServiceTemplate = standardYamlCoder
301 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
302 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
303 mockDbServiceTemplate(serviceTemplate, null, null);
305 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
306 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
307 var createPolicyResponseFragment = toscaServiceTemplateService
308 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
309 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
310 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
312 var exceptionMessage = "policy is in use, it is deployed in PDP group dummy subgroup dummy";
313 Mockito.doThrow(new PfModelRuntimeException(Response.Status.NOT_ACCEPTABLE, exceptionMessage))
314 .when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
315 assertThatThrownBy(() -> {
316 toscaServiceTemplateService.deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
317 "onap.restart.tca", "1.0.0");
318 }).hasMessage(exceptionMessage);
319 Mockito.doNothing().when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
321 var deletePolicyResponseFragment = toscaServiceTemplateService
322 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0");
323 assertFalse(deletePolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
325 mockDbServiceTemplate(serviceTemplate, deletePolicyResponseFragment, Operation.DELETE_POLICY);
326 assertThatThrownBy(() -> {
327 toscaServiceTemplateService.deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
328 "onap.restart.tca", "1.0.0");
329 }).hasMessageContaining("no policies found");
333 public void testFetchAllPolicies() throws Exception {
334 // Create Policy Type
335 var policyTypeServiceTemplate = standardYamlCoder
336 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
337 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
338 mockDbServiceTemplate(serviceTemplate, null, null);
341 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
342 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
343 var createPolicyResponseFragment = toscaServiceTemplateService
344 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
345 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
347 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
349 // Test fetch all policies
350 serviceTemplate = toscaServiceTemplateService.fetchPolicies(null, null, null, null, null);
352 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
356 public void testFetchSpecificPolicy_availablePolicy() throws Exception {
357 // Create Policy Type
358 var policyTypeServiceTemplate = standardYamlCoder
359 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
360 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
361 mockDbServiceTemplate(serviceTemplate, null, null);
364 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
365 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
366 var createPolicyResponseFragment = toscaServiceTemplateService
367 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
368 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
370 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
372 // Test fetch specific policy
373 assertThat(toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca", "1.0.0", null)
374 .getToscaTopologyTemplate().getPolicies()).hasSize(1);
378 public void testFetchSpecificPolicy_unavailablePolicy() throws Exception {
379 // Create Policy Type
380 var policyTypeServiceTemplate = standardYamlCoder
381 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
382 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
383 mockDbServiceTemplate(serviceTemplate, null, null);
386 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
387 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
388 var createPolicyResponseFragment = toscaServiceTemplateService
389 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
390 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
391 assertNotNull(serviceTemplate.getToscaTopologyTemplate().getPolicies());
392 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
394 // Test fetch specific policy
395 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca",
396 "2.0.0", null)).hasMessageContaining("policies for onap.restart.tca:2.0.0 do not exist");
400 public void testDeleteSpecificPolicy_availablePolicy() throws Exception {
401 var policyTypeServiceTemplate = standardYamlCoder
402 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
403 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
404 mockDbServiceTemplate(serviceTemplate, null, null);
406 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
407 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
408 var createPolicyResponseFragment = toscaServiceTemplateService
409 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
410 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
411 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
413 serviceTemplate = toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "1.0.0");
414 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
418 public void testDeleteSpecificPolicy_unavailablePolicy() throws Exception {
419 var policyTypeServiceTemplate = standardYamlCoder
420 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
421 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
422 mockDbServiceTemplate(serviceTemplate, null, null);
424 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
425 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
426 var createPolicyResponseFragment = toscaServiceTemplateService
427 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
428 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
429 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
431 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "2.0.0"))
432 .hasMessageContaining("not found");
434 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null,
435 "onap.restart.tca.unavailable", "1.0.0")).hasMessageContaining("not found");