extend vnf properties model for cds actors
[policy/models.git] / models-interactions / model-actors / actor.cds / src / test / java / org / onap / policy / controlloop / actor / cds / properties / GrpcOperationPnfPropertiesTest.java
1 /*-
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
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  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.controlloop.actor.cds.properties;
20
21 import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertNull;
24
25 import java.util.Collections;
26 import java.util.Map;
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;
39
40 public class GrpcOperationPnfPropertiesTest {
41     private static final Coder coder = new StandardCoder();
42
43     @Test
44     public void getPropertyNames() {
45         assertEquals(GrpcOperationPnfProperties.PNF_PROPERTY_NAMES,
46                 new GrpcOperationPnfProperties().getPropertyNames());
47     }
48
49     @Test
50     public void convertToAaiProperties() throws CoderException {
51         ControlLoopOperationParams params =
52                 ControlLoopOperationParams.builder()
53                         .targetType(TargetType.PNF)
54                         .build();
55
56         GrpcOperation operation =
57                 new GrpcOperation(params, new GrpcConfig(new PseudoExecutor(), new CdsServerProperties()));
58
59         GrpcOperationPnfProperties properties = new GrpcOperationPnfProperties();
60         assertThatIllegalStateException()
61                 .isThrownBy(() -> properties.convertToAaiProperties(operation));
62
63         String pnf = "{'dataA': 'valueA', 'dataB': 'valueB'}".replace('\'', '"');
64         StandardCoderObject sco = coder.decode(pnf, StandardCoderObject.class);
65         operation.setProperty(OperationProperties.AAI_PNF, sco);
66
67         assertEquals("valueA",
68                 properties.convertToAaiProperties(operation)
69                         .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataA"));
70
71         assertEquals("valueB",
72                 properties.convertToAaiProperties(operation)
73                         .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataB"));
74
75         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES, Collections.emptyMap());
76         assertNull(properties.convertToAaiProperties(operation)
77                         .get(GrpcOperationPnfProperties.AAI_PNF_PREFIX + "dataA"));
78
79         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES,
80                 Map.of("dataC", "valueC"));
81         assertEquals("valueC",
82                 properties.convertToAaiProperties(operation)
83                         .get("dataC"));
84     }
85 }