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 / GrcpOperationResourceVnfPropertiesTest.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.aai.domain.yang.GenericVnf;
29 import org.onap.aai.domain.yang.ServiceInstance;
30 import org.onap.policy.cds.properties.CdsServerProperties;
31 import org.onap.policy.common.utils.time.PseudoExecutor;
32 import org.onap.policy.controlloop.actor.cds.GrpcConfig;
33 import org.onap.policy.controlloop.actor.cds.GrpcOperation;
34 import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
35 import org.onap.policy.controlloop.actorserviceprovider.TargetType;
36 import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
37
38 public class GrcpOperationResourceVnfPropertiesTest {
39
40     @Test
41     public void getPropertyNames() {
42         assertEquals(GrcpOperationResourceVnfProperties.VNF_PROPERTY_NAMES,
43                 new GrcpOperationResourceVnfProperties().getPropertyNames());
44     }
45
46     @Test
47     public void convertToAaiProperties() {
48         ControlLoopOperationParams params =
49                 ControlLoopOperationParams.builder()
50                         .targetType(TargetType.VNF)
51                         .build();
52
53         GrpcOperation operation =
54                 new GrpcOperation(params, new GrpcConfig(new PseudoExecutor(), new CdsServerProperties()));
55
56         GrcpOperationResourceVnfProperties properties = new GrcpOperationResourceVnfProperties();
57         assertThatIllegalStateException()
58                 .isThrownBy(() -> properties.convertToAaiProperties(operation));
59
60         GenericVnf genvnf = new GenericVnf();
61         genvnf.setVnfId("v");
62         operation.setProperty(OperationProperties.AAI_RESOURCE_VNF, genvnf);
63
64         ServiceInstance serviceInstance = new ServiceInstance();
65         serviceInstance.setServiceInstanceId("s");
66         operation.setProperty(OperationProperties.AAI_SERVICE, serviceInstance);
67
68         assertEquals("s",
69                 properties.convertToAaiProperties(operation)
70                         .get(GrcpOperationResourceVnfProperties.AAI_SERVICE_INSTANCE_ID_KEY));
71
72         assertEquals("v",
73                 properties.convertToAaiProperties(operation)
74                         .get(GrcpOperationResourceVnfProperties.AAI_VNF_ID_KEY));
75
76         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES, Collections.emptyMap());
77
78         assertNull(properties.convertToAaiProperties(operation)
79                            .get(GrcpOperationResourceVnfProperties.AAI_SERVICE_INSTANCE_ID_KEY));
80
81         assertNull(properties.convertToAaiProperties(operation)
82                            .get(GrcpOperationResourceVnfProperties.AAI_VNF_ID_KEY));
83
84         operation.setProperty(OperationProperties.OPT_CDS_GRPC_AAI_PROPERTIES,
85                 Map.of("aa", "AA"));
86         assertEquals("AA",
87                 properties.convertToAaiProperties(operation)
88                         .get("aa"));
89     }
90 }