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.jupiter.api.Assertions.assertFalse;
31 import static org.junit.jupiter.api.Assertions.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.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.Mockito;
40 import org.onap.policy.common.utils.coder.CoderException;
41 import org.onap.policy.common.utils.coder.StandardCoder;
42 import org.onap.policy.common.utils.coder.StandardYamlCoder;
43 import org.onap.policy.common.utils.resources.ResourceUtils;
44 import org.onap.policy.models.base.PfConceptKey;
45 import org.onap.policy.models.base.PfModelRuntimeException;
46 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
47 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
50 * This class performs unit test of Policy CRUD operations as implemented in {@link ToscaServiceTemplateService}.
52 * @author Chenfei Gao (cgao@research.att.com)
54 class TestToscaServiceTemplateServiceForPolicyCrud extends TestCommonToscaServiceTemplateService {
56 private static final StandardCoder standardCoder = new StandardCoder();
57 private static final StandardYamlCoder standardYamlCoder = new StandardYamlCoder();
59 private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json";
60 private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.tcagen2.yaml";
61 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID = "policies/vCPE.policy.bad.policytypeid.json";
62 private static final String POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION =
63 "policies/vCPE.policy.bad.policytypeversion.json";
64 private static final String POLICY_RESOURCE_WITH_NO_POLICY_VERSION = "policies/vCPE.policy.no.policyversion.json";
65 private static final String POLICY_RESOURCE_WITH_DIFFERENT_FIELDS =
66 "policies/vCPE.policy.different.policy.fields.json";
67 private static final String MULTIPLE_POLICIES_RESOURCE = "policies/vCPE.policies.optimization.input.tosca.json";
69 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON =
70 "policytypes/onap.policies.controlloop.operational.Common.yaml";
71 private static final String POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS =
72 "policytypes/onap.policies.controlloop.operational.common.Drools.yaml";
73 private static final String POLICY_RESOURCE_OPERATIONAL = "policies/vCPE.policy.operational.input.tosca.json";
74 private static final String POLICY_TYPE_OPERATIONAL_DROOLS = "onap.policies.controlloop.operational.common.Drools";
77 private PdpGroupService pdpGroupService;
80 private ToscaServiceTemplateService toscaServiceTemplateService;
88 void testFetchPolicies() {
89 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
90 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
92 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", null, null, null))
93 .hasMessage("service template not found in database");
95 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", null, null))
96 .hasMessage("service template not found in database");
98 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies("dummy", "1.0.0", "dummy", "1.0.0", null))
99 .hasMessage("service template not found in database");
101 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies(null, null, "dummy", "1.0.0", null))
102 .hasMessage("service template not found in database");
106 void testFetchLatestPolicies() {
107 Mockito.when(toscaServiceTemplateRepository.findById(new PfConceptKey(JpaToscaServiceTemplate.DEFAULT_NAME,
108 JpaToscaServiceTemplate.DEFAULT_VERSION))).thenReturn(Optional.empty());
110 assertThatThrownBy(() -> toscaServiceTemplateService.fetchLatestPolicies("dummy", "dummy", "dummy", null))
111 .hasMessage("service template not found in database");
115 void testCreatePolicy() throws Exception {
116 assertThatThrownBy(() -> toscaServiceTemplateService
117 .createPolicy("dummy", "1.0.0", new ToscaServiceTemplate()))
118 .hasMessage("topology template not specified on service template");
120 var policyTypeServiceTemplate = standardYamlCoder
121 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
122 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
123 mockDbServiceTemplate(serviceTemplate, null, null);
125 assertThatCode(() -> toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate))
126 .doesNotThrowAnyException();
128 assertThatThrownBy(() -> {
129 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_ID);
130 var badPolicyServiceTemplate =
131 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
132 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
133 badPolicyServiceTemplate);
135 "Version not specified, the version of this TOSCA entity must be specified in "
136 + "the type_version field");
138 assertThatThrownBy(() -> {
139 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_BAD_POLICYTYPE_VERSION);
140 var badPolicyServiceTemplate =
141 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
142 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
143 badPolicyServiceTemplate);
144 }).hasMessageContaining(
145 "item \"policy type\" value \"onap.policies.monitoring.cdap.tca.hi.lo.app:2.0.0\" INVALID, not found");
147 assertThatThrownBy(() -> {
148 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_NO_POLICY_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("item \"version\" value \"0.0.0\" INVALID, is null");
155 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
156 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
157 var createPolicyResponseFragment = toscaServiceTemplateService
158 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
159 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
160 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
162 assertThatThrownBy(() -> {
163 var badPolicyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_WITH_DIFFERENT_FIELDS);
164 var badPolicyServiceTemplate =
165 standardCoder.decode(badPolicyString, ToscaServiceTemplate.class);
166 toscaServiceTemplateService.createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0",
167 badPolicyServiceTemplate);
168 }).hasMessageContaining(
169 "item \"entity\" value \"onap.restart.tca:1.0.0\" INVALID, " + "does not equal existing entity");
173 void testCreateOperationalDroolsPolicy() throws CoderException {
174 var policyTypeServiceTemplate = standardYamlCoder.decode(
175 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_COMMON), ToscaServiceTemplate.class);
177 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
178 mockDbServiceTemplate(serviceTemplate, null, null);
180 policyTypeServiceTemplate = standardYamlCoder.decode(
181 ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE_OPERATIONAL_DROOLS), ToscaServiceTemplate.class);
182 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
183 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
185 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE_OPERATIONAL);
186 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
188 toscaServiceTemplateService.createPolicy(POLICY_TYPE_OPERATIONAL_DROOLS, "1.0.0", policyServiceTemplate);
189 assertFalse(serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
193 void testSimpleCreatePolicy() throws Exception {
195 assertThatThrownBy(() -> {
196 String multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
197 ToscaServiceTemplate multiPoliciesServiceTemplate =
198 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
199 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
200 }).hasMessageContaining(
201 "no policy types are defined on the service template for the policies in the topology template");
203 // Create required policy types
204 var policyTypeServiceTemplate = standardYamlCoder.decode(
205 ResourceUtils.getResourceAsString("policytypes/onap.policies.Optimization.yaml"),
206 ToscaServiceTemplate.class);
207 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
208 mockDbServiceTemplate(serviceTemplate, null, null);
210 policyTypeServiceTemplate = standardYamlCoder.decode(
211 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.Resource.yaml"),
212 ToscaServiceTemplate.class);
213 var createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
214 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
216 policyTypeServiceTemplate = standardYamlCoder.decode(
218 .getResourceAsString("policytypes/onap.policies.optimization.resource.AffinityPolicy.yaml"),
219 ToscaServiceTemplate.class);
220 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
221 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
223 policyTypeServiceTemplate = standardYamlCoder.decode(
225 .getResourceAsString("policytypes/onap.policies.optimization.resource.DistancePolicy.yaml"),
226 ToscaServiceTemplate.class);
227 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
228 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
230 policyTypeServiceTemplate = standardYamlCoder.decode(
231 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.Vim_fit.yaml"),
232 ToscaServiceTemplate.class);
233 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
234 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
236 policyTypeServiceTemplate = standardYamlCoder.decode(
237 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.HpaPolicy.yaml"),
238 ToscaServiceTemplate.class);
239 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
240 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
242 policyTypeServiceTemplate = standardYamlCoder.decode(
243 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.resource.VnfPolicy.yaml"),
244 ToscaServiceTemplate.class);
245 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
246 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
248 policyTypeServiceTemplate = standardYamlCoder.decode(
249 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.Service.yaml"),
250 ToscaServiceTemplate.class);
251 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
252 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
254 policyTypeServiceTemplate = standardYamlCoder.decode(
256 .getResourceAsString("policytypes/onap.policies.optimization.service.SubscriberPolicy.yaml"),
257 ToscaServiceTemplate.class);
258 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
259 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
261 policyTypeServiceTemplate = standardYamlCoder.decode(
262 ResourceUtils.getResourceAsString("policytypes/onap.policies.optimization.service.QueryPolicy.yaml"),
263 ToscaServiceTemplate.class);
264 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
265 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
267 policyTypeServiceTemplate = standardYamlCoder.decode(
268 ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml"),
269 ToscaServiceTemplate.class);
270 createPolicyTypeResponseFragment = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
271 mockDbServiceTemplate(serviceTemplate, createPolicyTypeResponseFragment, Operation.CREATE_POLICY_TYPE);
273 // Create multiple policies in one call
274 var multiPoliciesString = ResourceUtils.getResourceAsString(MULTIPLE_POLICIES_RESOURCE);
275 var multiPoliciesServiceTemplate =
276 standardCoder.decode(multiPoliciesString, ToscaServiceTemplate.class);
278 assertThatCode(() -> {
279 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
280 toscaServiceTemplateService.createPolicies(multiPoliciesServiceTemplate);
281 }).doesNotThrowAnyException();
285 void testDeletePolicy() throws CoderException {
287 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy("dummy", "1.0.0", "dummy", "1.0.0"))
288 .hasMessage("no policies found");
290 var policyTypeServiceTemplate = standardYamlCoder
291 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
292 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
293 mockDbServiceTemplate(serviceTemplate, null, null);
295 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
296 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
297 var createPolicyResponseFragment = toscaServiceTemplateService
298 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
299 assertFalse(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
300 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
302 var exceptionMessage = "policy is in use, it is deployed in PDP group dummy subgroup dummy";
303 Mockito.doThrow(new PfModelRuntimeException(Response.Status.NOT_ACCEPTABLE, exceptionMessage))
304 .when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
305 assertThatThrownBy(() -> toscaServiceTemplateService
306 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0"))
307 .hasMessage(exceptionMessage);
309 Mockito.doNothing().when(pdpGroupService).assertPolicyNotDeployedInPdpGroup("onap.restart.tca", "1.0.0");
311 var deletePolicyResponseFragment = toscaServiceTemplateService
312 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0");
313 assertFalse(deletePolicyResponseFragment.getToscaTopologyTemplate().getPolicies().get(0).isEmpty());
315 mockDbServiceTemplate(serviceTemplate, deletePolicyResponseFragment, Operation.DELETE_POLICY);
316 assertThatThrownBy(() -> toscaServiceTemplateService
317 .deletePolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", "onap.restart.tca", "1.0.0"))
318 .hasMessageContaining("no policies found");
322 void testFetchAllPolicies() throws Exception {
323 // Create Policy Type
324 var policyTypeServiceTemplate = standardYamlCoder
325 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
326 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
327 mockDbServiceTemplate(serviceTemplate, null, null);
330 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
331 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
332 var createPolicyResponseFragment = toscaServiceTemplateService
333 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
334 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
336 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
338 // Test fetch all policies
339 serviceTemplate = toscaServiceTemplateService.fetchPolicies(null, null, null, null, null);
341 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
345 void testFetchSpecificPolicy_availablePolicy() throws Exception {
346 // Create Policy Type
347 var policyTypeServiceTemplate = standardYamlCoder
348 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
349 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
350 mockDbServiceTemplate(serviceTemplate, null, null);
353 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
354 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
355 var createPolicyResponseFragment = toscaServiceTemplateService
356 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
357 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
359 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
361 // Test fetch specific policy
362 assertThat(toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca", "1.0.0", null)
363 .getToscaTopologyTemplate().getPolicies()).hasSize(1);
367 void testFetchSpecificPolicy_unavailablePolicy() throws Exception {
368 // Create Policy Type
369 var policyTypeServiceTemplate = standardYamlCoder
370 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
371 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
372 mockDbServiceTemplate(serviceTemplate, null, null);
375 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
376 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
377 var createPolicyResponseFragment = toscaServiceTemplateService
378 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
379 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
380 assertNotNull(serviceTemplate.getToscaTopologyTemplate().getPolicies());
381 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
383 // Test fetch specific policy
384 assertThatThrownBy(() -> toscaServiceTemplateService.fetchPolicies(null, null, "onap.restart.tca",
385 "2.0.0", null)).hasMessageContaining("policies for onap.restart.tca:2.0.0 do not exist");
389 void testDeleteSpecificPolicy_availablePolicy() throws Exception {
390 var policyTypeServiceTemplate = standardYamlCoder
391 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
392 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
393 mockDbServiceTemplate(serviceTemplate, null, null);
395 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
396 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
397 var createPolicyResponseFragment = toscaServiceTemplateService
398 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
399 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
400 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
402 serviceTemplate = toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "1.0.0");
403 assertThat(serviceTemplate.getToscaTopologyTemplate().getPolicies()).hasSize(1);
407 void testDeleteSpecificPolicy_unavailablePolicy() throws Exception {
408 var policyTypeServiceTemplate = standardYamlCoder
409 .decode(ResourceUtils.getResourceAsString(POLICY_TYPE_RESOURCE), ToscaServiceTemplate.class);
410 var serviceTemplate = toscaServiceTemplateService.createPolicyType(policyTypeServiceTemplate);
411 mockDbServiceTemplate(serviceTemplate, null, null);
413 var policyString = ResourceUtils.getResourceAsString(POLICY_RESOURCE);
414 var policyServiceTemplate = standardCoder.decode(policyString, ToscaServiceTemplate.class);
415 var createPolicyResponseFragment = toscaServiceTemplateService
416 .createPolicy("onap.policies.monitoring.cdap.tca.hi.lo.app", "1.0.0", policyServiceTemplate);
417 assertThat(createPolicyResponseFragment.getToscaTopologyTemplate().getPolicies()).hasSize(1);
418 mockDbServiceTemplate(serviceTemplate, createPolicyResponseFragment, Operation.CREATE_POLICY);
420 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null, "onap.restart.tca", "2.0.0"))
421 .hasMessageContaining("not found");
423 assertThatThrownBy(() -> toscaServiceTemplateService.deletePolicy(null, null,
424 "onap.restart.tca.unavailable", "1.0.0")).hasMessageContaining("not found");