Merge "Update metric logger"
[ccsdk/sli/core.git] / sli / common / src / test / java / org / onap / ccsdk / sli / core / sli / PrintYangToPropTest.java
1 /*-
2    2  * ============LICENSE_START=======================================================
3    3  * ONAP CCSDK
4    4  * ================================================================================
5    5  * Copyright (C) 2019 AT&T Intellectual Property. All rights
6    6  *                             reserved.
7    7  * ================================================================================
8    8  * Licensed under the Apache License, Version 2.0 (the "License");
9    9  * you may not use this file except in compliance with the License.
10   10  * You may obtain a copy of the License at
11   11  *
12   12  * http://www.apache.org/licenses/LICENSE-2.0
13   13  *
14   14  * Unless required by applicable law or agreed to in writing, software
15   15  * distributed under the License is distributed on an "AS IS" BASIS,
16   16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   17  * See the License for the specific language governing permissions and
18   18  * limitations under the License.
19   19  * ============LICENSE_END============================================
20   20  * ===================================================================
21   21  *
22   22  */
23 package org.onap.ccsdk.sli.core.sli;
24
25 import java.util.Enumeration;
26 import java.util.LinkedList;
27 import java.util.List;
28 import java.util.Properties;
29
30 import org.junit.Test;
31 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput.Mode;
32 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInputBuilder;
33 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.TestResultsBuilder;
34 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter;
35 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameterBuilder;
36 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.test.results.TestResult;
37 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.test.results.TestResultBuilder;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
40 import org.slf4j.Logger;
41 import org.slf4j.LoggerFactory;
42
43 /**
44  * @author dt5972
45  *
46  */
47 public class PrintYangToPropTest {
48
49         private static final Logger LOG = LoggerFactory.getLogger(PrintYangToPropTest.class);
50         @Test
51         public void test() {
52
53                 Properties props = new Properties();
54
55                 // Set up a builder with data
56                 ExecuteGraphInputBuilder egBuilder = new ExecuteGraphInputBuilder();
57                 egBuilder.setMode(Mode.Sync);
58                 egBuilder.setModuleName("my-module");
59                 egBuilder.setRpcName("my-rpc");
60
61                 List<SliParameter> pList = new LinkedList<>();
62
63                 SliParameterBuilder pBuilder = new SliParameterBuilder();
64                 pBuilder.setParameterName("string-param");
65                 pBuilder.setStringValue("hi");
66                 pList.add(pBuilder.build());
67                 pBuilder.setParameterName("int-param");
68                 pBuilder.setIntValue(1);
69                 pBuilder.setStringValue(null);
70                 pList.add(pBuilder.build());
71                 pBuilder.setParameterName("bool-param");
72                 pBuilder.setIntValue(null);
73                 pBuilder.setBooleanValue(true);
74                 pList.add(pBuilder.build());
75                 pBuilder.setParameterName("ipaddress-value1");
76                 pBuilder.setBooleanValue(null);
77                 pBuilder.setIpaddressValue(IpAddressBuilder.getDefaultInstance("127.0.0.1"));
78                 pList.add(pBuilder.build());
79                 pBuilder.setParameterName("ipaddress-value1");
80                 pBuilder.setIpaddressValue(IpAddressBuilder.getDefaultInstance("::1"));
81                 pList.add(pBuilder.build());
82                 pBuilder.setParameterName("ipprefix-value1");
83                 pBuilder.setIpaddressValue(null);
84                 pBuilder.setIpprefixValue(IpPrefixBuilder.getDefaultInstance("192.168.0.0/16"));
85                 pList.add(pBuilder.build());
86                 pBuilder.setParameterName("ipprefix-value2");
87                 pBuilder.setIpprefixValue(IpPrefixBuilder.getDefaultInstance("2001:db8:3c4d::/48"));
88                 pList.add(pBuilder.build());
89
90
91
92                 egBuilder.setSliParameter(pList);
93
94
95                 // Generate properties
96                 props = PrintYangToProp.toProperties(props, egBuilder);
97
98                 Enumeration propNames = props.propertyNames();
99
100                 while (propNames.hasMoreElements()) {
101                         String propName = (String) propNames.nextElement();
102                         LOG.info("Property {} = {}", propName, props.getProperty(propName));
103                 }
104
105                 // Generate builder from properties just generated
106                 PrintYangToProp.toBuilder(props, pBuilder);
107                 
108
109         }
110         
111     @Test
112     public void testWithList() {
113         TestResultsBuilder resultsBuilder = new TestResultsBuilder();
114         TestResultBuilder resultBuilder = new TestResultBuilder();
115
116         // Set builder with values
117         List<TestResult> resultList = new LinkedList<>();
118         resultBuilder.setTestIdentifier("test1");
119         List<String> results = new LinkedList<>();
120         results.add("pass");
121         resultBuilder.setResults(results);
122         resultList.add(resultBuilder.build());
123         resultsBuilder.setTestResult(resultList);
124
125         // Generate properties
126         Properties props = new Properties();
127         props = PrintYangToProp.toProperties(props, resultsBuilder);
128
129         Enumeration propNames = props.propertyNames();
130
131         while (propNames.hasMoreElements()) {
132             String propName = (String) propNames.nextElement();
133             LOG.info("Property {} = {}", propName, props.getProperty(propName));
134         }
135
136         // Generate builder from properties just generated
137         PrintYangToProp.toBuilder(props, resultsBuilder);
138
139     }
140
141 }