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 / GrpcOperationTargetVnfPropertiesTest.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.time.PseudoExecutor;
30 import org.onap.policy.controlloop.actor.cds.GrpcConfig;
31 import org.onap.policy.controlloop.actor.cds.GrpcOperation;
32 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
33 import org.onap.policy.controlloop.actorserviceprovider.TargetType;
34 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
35
36 public class GrpcOperationTargetVnfPropertiesTest {
37
38     @Test
39     public void getPropertyNames() {
40         assertEquals(GrpcOperationTargetVnfProperties.VNF_PROPERTY_NAMES,
41                 new GrpcOperationTargetVnfProperties().getPropertyNames());
42     }
43
44     @Test
45     public void convertToAaiProperties() {
46         ControlLoopOperationParams params =
47                 ControlLoopOperationParams.builder()
48                         .targetType(TargetType.VNF)
49                         .build();
50
51         GrpcOperation operation =
52                 new GrpcOperation(params, new GrpcConfig(new PseudoExecutor(), new CdsServerProperties()));
53
54         GrpcOperationTargetVnfProperties properties = new GrpcOperationTargetVnfProperties();
55         assertThatIllegalStateException()
56                 .isThrownBy(() -> properties.convertToAaiProperties(operation));
57
58         operation.setProperty(OperationProperties.AAI_TARGET_ENTITY, "v");
59         assertEquals("v",
60                 properties.convertToAaiProperties(operation)
61                         .get(GrpcOperationTargetVnfProperties.AAI_VNF_ID_KEY));
62
63         assertNull(properties.convertToAaiProperties(operation)
64                          .get(GrcpOperationResourceVnfProperties.AAI_SERVICE_INSTANCE_ID_KEY));
65
66         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES, Collections.emptyMap());
67         assertNull(properties.convertToAaiProperties(operation)
68                            .get(GrpcOperationTargetVnfProperties.AAI_VNF_ID_KEY));
69
70         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES,
71                 Map.of("aa", "AA"));
72         assertEquals("AA",
73                 properties.convertToAaiProperties(operation)
74                         .get("aa"));
75     }
76 }