2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2022 AT&T Intellectual Property. All rights reserved.
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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 * ============LICENSE_END=========================================================
19 package org.onap.policy.controlloop.actor.cds.properties;
21 import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertNull;
25 import java.util.Collections;
27 import org.junit.Test;
28 import org.onap.policy.cds.properties.CdsServerProperties;
29 import org.onap.policy.common.utils.coder.Coder;
30 import org.onap.policy.common.utils.coder.CoderException;
31 import org.onap.policy.common.utils.coder.StandardCoder;
32 import org.onap.policy.common.utils.coder.StandardCoderObject;
33 import org.onap.policy.common.utils.time.PseudoExecutor;
34 import org.onap.policy.controlloop.actor.cds.GrpcConfig;
35 import org.onap.policy.controlloop.actor.cds.GrpcOperation;
36 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
37 import org.onap.policy.controlloop.actorserviceprovider.TargetType;
38 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
40 public class GrpcOperationPnfPropertiesTest {
41 private static final Coder coder = new StandardCoder();
44 public void getPropertyNames() {
45 assertEquals(GrpcOperationPnfProperties.PNF_PROPERTY_NAMES,
46 new GrpcOperationPnfProperties().getPropertyNames());
50 public void convertToAaiProperties() throws CoderException {
51 ControlLoopOperationParams params =
52 ControlLoopOperationParams.builder()
53 .targetType(TargetType.PNF)
56 GrpcOperation operation =
57 new GrpcOperation(params, new GrpcConfig(new PseudoExecutor(), new CdsServerProperties()));
59 GrpcOperationPnfProperties properties = new GrpcOperationPnfProperties();
60 assertThatIllegalStateException()
61 .isThrownBy(() -> properties.convertToAaiProperties(operation));
63 String pnf = "{'dataA': 'valueA', 'dataB': 'valueB'}".replace('\'', '"');
64 StandardCoderObject sco = coder.decode(pnf, StandardCoderObject.class);
65 operation.setProperty(OperationProperties.AAI_PNF, sco);
67 assertEquals("valueA",
68 properties.convertToAaiProperties(operation)
69 .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataA"));
71 assertEquals("valueB",
72 properties.convertToAaiProperties(operation)
73 .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataB"));
75 operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES, Collections.emptyMap());
76 assertNull(properties.convertToAaiProperties(operation)
77 .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataA"));
79 operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES,
80 Map.of("dataC", "valueC"));
81 assertEquals("valueC",
82 properties.convertToAaiProperties(operation)