2 2 * ============LICENSE_START=======================================================
4 4 * ================================================================================
5 5 * Copyright (C) 2019 AT&T Intellectual Property. All rights
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
12 12 * http://www.apache.org/licenses/LICENSE-2.0
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 * ===================================================================
23 package org.onap.ccsdk.sli.core.sli;
25 import java.util.Enumeration;
26 import java.util.LinkedList;
27 import java.util.List;
28 import java.util.Properties;
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;
47 public class PrintYangToPropTest {
49 private static final Logger LOG = LoggerFactory.getLogger(PrintYangToPropTest.class);
53 Properties props = new Properties();
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");
61 List<SliParameter> pList = new LinkedList<>();
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());
92 egBuilder.setSliParameter(pList);
95 // Generate properties
96 props = PrintYangToProp.toProperties(props, egBuilder);
98 Enumeration propNames = props.propertyNames();
100 while (propNames.hasMoreElements()) {
101 String propName = (String) propNames.nextElement();
102 LOG.info("Property {} = {}", propName, props.getProperty(propName));
105 // Generate builder from properties just generated
106 PrintYangToProp.toBuilder(props, pBuilder);
112 public void testWithList() {
113 TestResultsBuilder resultsBuilder = new TestResultsBuilder();
114 TestResultBuilder resultBuilder = new TestResultBuilder();
116 // Set builder with values
117 List<TestResult> resultList = new LinkedList<>();
118 resultBuilder.setTestIdentifier("test1");
119 List<String> results = new LinkedList<>();
121 resultBuilder.setResults(results);
122 resultList.add(resultBuilder.build());
123 resultsBuilder.setTestResult(resultList);
125 // Generate properties
126 Properties props = new Properties();
127 props = PrintYangToProp.toProperties(props, resultsBuilder);
129 Enumeration propNames = props.propertyNames();
131 while (propNames.hasMoreElements()) {
132 String propName = (String) propNames.nextElement();
133 LOG.info("Property {} = {}", propName, props.getProperty(propName));
136 // Generate builder from properties just generated
137 PrintYangToProp.toBuilder(props, resultsBuilder);