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.provider;
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.onap.ccsdk.sli.core.sli.provider.PrintYangToProp;
32 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInput.Mode;
33 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ExecuteGraphInputBuilder;
34 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.TestResultsBuilder;
35 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter;
36 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameterBuilder;
37 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.test.results.TestResult;
38 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.test.results.TestResultBuilder;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
41 import org.slf4j.Logger;
42 import org.slf4j.LoggerFactory;
48 public class PrintYangToPropTest {
50 private static final Logger LOG = LoggerFactory.getLogger(PrintYangToPropTest.class);
54 Properties props = new Properties();
56 // Set up a builder with data
57 ExecuteGraphInputBuilder egBuilder = new ExecuteGraphInputBuilder();
58 egBuilder.setMode(Mode.Sync);
59 egBuilder.setModuleName("my-module");
60 egBuilder.setRpcName("my-rpc");
62 List<SliParameter> pList = new LinkedList<>();
64 SliParameterBuilder pBuilder = new SliParameterBuilder();
65 pBuilder.setParameterName("string-param");
66 pBuilder.setStringValue("hi");
67 pList.add(pBuilder.build());
68 pBuilder.setParameterName("int-param");
69 pBuilder.setIntValue(1);
70 pBuilder.setStringValue(null);
71 pList.add(pBuilder.build());
72 pBuilder.setParameterName("bool-param");
73 pBuilder.setIntValue(null);
74 pBuilder.setBooleanValue(true);
75 pList.add(pBuilder.build());
76 pBuilder.setParameterName("ipaddress-value1");
77 pBuilder.setBooleanValue(null);
78 pBuilder.setIpaddressValue(IpAddressBuilder.getDefaultInstance("127.0.0.1"));
79 pList.add(pBuilder.build());
80 pBuilder.setParameterName("ipaddress-value1");
81 pBuilder.setIpaddressValue(IpAddressBuilder.getDefaultInstance("::1"));
82 pList.add(pBuilder.build());
83 pBuilder.setParameterName("ipprefix-value1");
84 pBuilder.setIpaddressValue(null);
85 pBuilder.setIpprefixValue(IpPrefixBuilder.getDefaultInstance("192.168.0.0/16"));
86 pList.add(pBuilder.build());
87 pBuilder.setParameterName("ipprefix-value2");
88 pBuilder.setIpprefixValue(IpPrefixBuilder.getDefaultInstance("2001:db8:3c4d::/48"));
89 pList.add(pBuilder.build());
93 egBuilder.setSliParameter(pList);
96 // Generate properties
97 props = PrintYangToProp.toProperties(props, egBuilder);
99 Enumeration propNames = props.propertyNames();
101 while (propNames.hasMoreElements()) {
102 String propName = (String) propNames.nextElement();
103 LOG.info("Property {} = {}", propName, props.getProperty(propName));
106 // Generate builder from properties just generated
107 PrintYangToProp.toBuilder(props, pBuilder);
113 public void testWithList() {
114 TestResultsBuilder resultsBuilder = new TestResultsBuilder();
115 TestResultBuilder resultBuilder = new TestResultBuilder();
117 // Set builder with values
118 List<TestResult> resultList = new LinkedList<>();
119 resultBuilder.setTestIdentifier("test1");
120 List<String> results = new LinkedList<>();
122 resultBuilder.setResults(results);
123 resultList.add(resultBuilder.build());
124 resultsBuilder.setTestResult(resultList);
126 // Generate properties
127 Properties props = new Properties();
128 props = PrintYangToProp.toProperties(props, resultsBuilder);
130 Enumeration propNames = props.propertyNames();
132 while (propNames.hasMoreElements()) {
133 String propName = (String) propNames.nextElement();
134 LOG.info("Property {} = {}", propName, props.getProperty(propName));
137 // Generate builder from properties just generated
138 PrintYangToProp.toBuilder(props, resultsBuilder);