2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2019-2021, 2023 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 jakarta.ws.rs.core.Response;
34 import java.util.Optional;
35 import org.junit.jupiter.api.BeforeEach;
36 import org.junit.jupiter.api.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.PfModelRuntimeException;
48 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
49 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
52 * This class performs unit test of Policy CRUD operations as implemented in {@link ToscaServiceTemplateService}.
54 * @author Chenfei Gao (cgao@research.att.com)
56 @RunWith(MockitoJUnitRunner.class)
57 class TestToscaServiceTemplateServiceForPolicyCrud extends TestCommonToscaServiceTemplateService {
59 private static final StandardCoder standardCoder = new StandardCoder();
60 private static final StandardYamlCoder standardYamlCoder = new StandardYamlCoder();
62 private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json";
63 private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.tcagen2.yaml";
64 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID = "policies/vCPE.policy.bad.policytypeid.json";
65 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION =
66 "policies/vCPE.policy.bad.policytypeversion.json";
67 private static final String POLICY_RESOURCE_WITH_NO_POLICY_VERSION = "policies/vCPE.policy.no.policyversion.json";
68 private static final String POLICY_RESOURCE_WITH_DIFFERENT_FIELDS =
69 "policies/vCPE.policy.different.policy.fields.json";
70 private static final String MULTIPLE_POLICIES_RESOURCE = "policies/vCPE.policies.optimization.input.tosca.json";
72 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON =
73 "policytypes/onap.policies.controlloop.operational.Common.yaml";
74 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS =
75 "policytypes/onap.policies.controlloop.operational.common.Drools.yaml";
76 private static final String POLICY_RESOURCE_OPERATIONAL = "policies/vCPE.policy.operational.input.tosca.json";
77 private static final String POLICY_TYPE_OPERATIONAL_DROOLS = "onap.policies.controlloop.operational.common.Drools";
80 private PdpGroupService pdpGroupService;
83 private ToscaServiceTemplateService toscaServiceTemplateService;
91 void testFetchPolicies() {
92 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
93 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
95 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", null, null, null))
96 .hasMessage("service template not found in database");
98 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", null, null))
99 .hasMessage("service template not found in database");
101 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", "1.0.0", null))
102 .hasMessage("service template not found in database");
104 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies(null, null, "dummy", "1.0.0", null))
105 .hasMessage("service template not found in database");
109 void testFetchLatestPolicies() {
110 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
111 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
113 assertThatThrownBy(() -> toscaServiceTemplateService.fetchLatestPolicies("dummy", "dummy", "dummy", null))
114 .hasMessage("service template not found in database");
118 void testCreatePolicy() throws Exception {
119 assertThatThrownBy(() -> toscaServiceTemplateService
120 .createPolicy("dummy", "1.0.0", new ToscaServiceTemplate()))
121 .hasMessage("topology template not specified on service template");
123 var policyTypeServiceTemplate = standardYamlCoder
124 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
125 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
126 mockDbServiceTemplate(serviceTemplate, null, null);
128 assertThatCode(() -> toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate))
129 .doesNotThrowAnyException();
131 assertThatThrownBy(() -> {
132 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID);
133 var badPolicyServiceTemplate =
134 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
135 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
136 badPolicyServiceTemplate);
138 "Version not specified, the version of this TOSCA entity must be specified in "
139 + "the type_version field");
141 assertThatThrownBy(() -> {
142 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION);
143 var badPolicyServiceTemplate =
144 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
145 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
146 badPolicyServiceTemplate);
147 }).hasMessageContaining(
148 "item \"policy type\" value \"onap.policies.monitoring.cdap.tca.hi.lo.app:2.0.0\" INVALID, not found");
150 assertThatThrownBy(() -> {
151 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_NO_POLICY_VERSION);
152 var badPolicyServiceTemplate =
153 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
154 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
155 badPolicyServiceTemplate);
156 }).hasMessageContaining("item \"version\" value \"0.0.0\" INVALID, is null");
158 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
159 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
160 var createPolicyResponseFragment = toscaServiceTemplateService
161 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
162 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
163 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
165 assertThatThrownBy(() -> {
166 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_DIFFERENT_FIELDS);
167 var badPolicyServiceTemplate =
168 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
169 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
170 badPolicyServiceTemplate);
171 }).hasMessageContaining(
172 "item \"entity\" value \"onap.restart.tca:1.0.0\" INVALID, " + "does not equal existing entity");
176 void testCreateOperationalDroolsPolicy() throws CoderException {
177 var policyTypeServiceTemplate = standardYamlCoder.decode(
178 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON), ToscaServiceTemplate.class);
180 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
181 mockDbServiceTemplate(serviceTemplate, null, null);
183 policyTypeServiceTemplate = standardYamlCoder.decode(
184 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS), ToscaServiceTemplate.class);
185 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
186 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
188 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_OPERATIONAL);
189 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
191 toscaServiceTemplateService.createPolicy(POLICY_TYPE_OPERATIONAL_DROOLS, "1.0.0", policyServiceTemplate);
192 assertFalse(serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
196 void testSimpleCreatePolicy() throws Exception {
198 assertThatThrownBy(() -> {
199 String multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
200 ToscaServiceTemplate multiPoliciesServiceTemplate =
201 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
202 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
203 }).hasMessageContaining(
204 "no policy types are defined on the service template for the policies in the topology template");
206 // Create required policy types
207 var policyTypeServiceTemplate = standardYamlCoder.decode(
208 ResourceUtils.getResourceAsString("policytypes/onap.policies.Optimization.yaml"),
209 ToscaServiceTemplate.class);
210 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
211 mockDbServiceTemplate(serviceTemplate, null, null);
213 policyTypeServiceTemplate = standardYamlCoder.decode(
214 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.Resource.yaml"),
215 ToscaServiceTemplate.class);
216 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
217 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
219 policyTypeServiceTemplate = standardYamlCoder.decode(
221 .getResourceAsString("policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml"),
222 ToscaServiceTemplate.class);
223 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
224 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
226 policyTypeServiceTemplate = standardYamlCoder.decode(
228 .getResourceAsString("policytypes/onap.policies.optimization.resource.DistancePolicy.yaml"),
229 ToscaServiceTemplate.class);
230 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
231 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
233 policyTypeServiceTemplate = standardYamlCoder.decode(
234 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.Vim_fit.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.HpaPolicy.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.VnfPolicy.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.Service.yaml"),
253 ToscaServiceTemplate.class);
254 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
255 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
257 policyTypeServiceTemplate = standardYamlCoder.decode(
259 .getResourceAsString("policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml"),
260 ToscaServiceTemplate.class);
261 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
262 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
264 policyTypeServiceTemplate = standardYamlCoder.decode(
265 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.service.QueryPolicy.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.monitoring.tcagen2.yaml"),
272 ToscaServiceTemplate.class);
273 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
274 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
276 // Create multiple policies in one call
277 var multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
278 var multiPoliciesServiceTemplate =
279 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
281 assertThatCode(() -> {
282 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
283 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
284 }).doesNotThrowAnyException();
288 void testDeletePolicy() throws CoderException {
290 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy("dummy", "1.0.0", "dummy", "1.0.0"))
291 .hasMessage("no policies found");
293 var policyTypeServiceTemplate = standardYamlCoder
294 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
295 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
296 mockDbServiceTemplate(serviceTemplate, null, null);
298 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
299 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
300 var createPolicyResponseFragment = toscaServiceTemplateService
301 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
302 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
303 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
305 var exceptionMessage = "policy is in use, it is deployed in PDP group dummy subgroup dummy";
306 Mockito.doThrow(new PfModelRuntimeException(Response.Status.NOT_ACCEPTABLE, exceptionMessage))
307 .when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
308 assertThatThrownBy(() -> toscaServiceTemplateService
309 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0"))
310 .hasMessage(exceptionMessage);
312 Mockito.doNothing().when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
314 var deletePolicyResponseFragment = toscaServiceTemplateService
315 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0");
316 assertFalse(deletePolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
318 mockDbServiceTemplate(serviceTemplate, deletePolicyResponseFragment, Operation.DELETE_POLICY);
319 assertThatThrownBy(() -> toscaServiceTemplateService
320 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0"))
321 .hasMessageContaining("no policies found");
325 void testFetchAllPolicies() throws Exception {
326 // Create Policy Type
327 var policyTypeServiceTemplate = standardYamlCoder
328 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
329 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
330 mockDbServiceTemplate(serviceTemplate, null, null);
333 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
334 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
335 var createPolicyResponseFragment = toscaServiceTemplateService
336 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
337 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
339 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
341 // Test fetch all policies
342 serviceTemplate = toscaServiceTemplateService.fetchPolicies(null, null, null, null, null);
344 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
348 void testFetchSpecificPolicy_availablePolicy() throws Exception {
349 // Create Policy Type
350 var policyTypeServiceTemplate = standardYamlCoder
351 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
352 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
353 mockDbServiceTemplate(serviceTemplate, null, null);
356 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
357 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
358 var createPolicyResponseFragment = toscaServiceTemplateService
359 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
360 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
362 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
364 // Test fetch specific policy
365 assertThat(toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca", "1.0.0", null)
366 .getToscaTopologyTemplate().getPolicies()).hasSize(1);
370 void testFetchSpecificPolicy_unavailablePolicy() throws Exception {
371 // Create Policy Type
372 var policyTypeServiceTemplate = standardYamlCoder
373 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
374 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
375 mockDbServiceTemplate(serviceTemplate, null, null);
378 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
379 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
380 var createPolicyResponseFragment = toscaServiceTemplateService
381 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
382 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
383 assertNotNull(serviceTemplate.getToscaTopologyTemplate().getPolicies());
384 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
386 // Test fetch specific policy
387 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca",
388 "2.0.0", null)).hasMessageContaining("policies for onap.restart.tca:2.0.0 do not exist");
392 void testDeleteSpecificPolicy_availablePolicy() throws Exception {
393 var policyTypeServiceTemplate = standardYamlCoder
394 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
395 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
396 mockDbServiceTemplate(serviceTemplate, null, null);
398 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
399 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
400 var createPolicyResponseFragment = toscaServiceTemplateService
401 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
402 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
403 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
405 serviceTemplate = toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "1.0.0");
406 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
410 void testDeleteSpecificPolicy_unavailablePolicy() throws Exception {
411 var policyTypeServiceTemplate = standardYamlCoder
412 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
413 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
414 mockDbServiceTemplate(serviceTemplate, null, null);
416 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
417 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
418 var createPolicyResponseFragment = toscaServiceTemplateService
419 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
420 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
421 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
423 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "2.0.0"))
424 .hasMessageContaining("not found");
426 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null,
427 "onap.restart.tca.unavailable", "1.0.0")).hasMessageContaining("not found");