diff options
author | subhash kumar singh <subhash.kumar.singh@huawei.com> | 2017-12-21 14:06:08 +0000 |
---|---|---|
committer | subhash kumar singh <subhash.kumar.singh@huawei.com> | 2018-01-31 05:01:22 +0000 |
commit | d701b812258d0e84a5d5cce0296b004e364a1a3b (patch) | |
tree | 182240c7531ab3dd8167b3538290171301b8347c /profiles/snmp/src/test | |
parent | a158de7f4f197d65adc7332bd3ad59fb1203a085 (diff) |
Add snmp profile for cli
Add snmp profile for cli to support snmp get operation.
Issue-ID: CLI-85
Change-Id: I7bebd38f2b3089df80c71a5581b23c5408c6d3ab
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
Diffstat (limited to 'profiles/snmp/src/test')
3 files changed, 129 insertions, 0 deletions
diff --git a/profiles/snmp/src/test/java/org/onap/cli/fw/snmp/cmd/OnapSnmpCommandTest.java b/profiles/snmp/src/test/java/org/onap/cli/fw/snmp/cmd/OnapSnmpCommandTest.java new file mode 100644 index 00000000..00c985d5 --- /dev/null +++ b/profiles/snmp/src/test/java/org/onap/cli/fw/snmp/cmd/OnapSnmpCommandTest.java @@ -0,0 +1,97 @@ +/* + * Copyright 2017 Huawei Technologies Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.cli.fw.snmp.cmd; + +import mockit.Mock; +import mockit.MockUp; +import org.junit.*; +import org.onap.cli.fw.error.OnapCommandException; +import org.onap.cli.fw.error.OnapCommandInvalidParameterValue; +import org.onap.cli.fw.input.OnapCommandParameter; +import org.onap.cli.fw.input.OnapCommandParameterType; +import org.onap.cli.fw.output.OnapCommandResult; +import org.onap.cli.fw.output.OnapCommandResultAttribute; +import org.snmp4j.PDU; +import org.snmp4j.Snmp; +import org.snmp4j.Target; +import org.snmp4j.TransportMapping; +import org.snmp4j.event.ResponseEvent; +import org.snmp4j.smi.OID; +import org.snmp4j.smi.OctetString; +import org.snmp4j.smi.VariableBinding; + +import java.io.IOException; +import java.util.*; + +import static org.junit.Assert.*; + +public class OnapSnmpCommandTest { + + @Test + public void testSnmpGetCommand() throws OnapCommandException { + + new MockUp<Snmp>() { + @Mock + public ResponseEvent send(PDU pdu, Target target, TransportMapping transport) throws IOException { + PDU pdu1 = new PDU(); + pdu1.setType(-94); + VariableBinding variableBinding = new VariableBinding(new OID("1.3.6.1.2.1.1.1.0")); + variableBinding.setVariable(new OctetString(new byte[] {'s', 'n', 'm', 'p'})); + + pdu1.setVariableBindings(Arrays.asList(variableBinding)); + return new ResponseEvent(new Object(), null, pdu, pdu1, null); + } + }; + + OnapSnmpCommand snmpCmd = new OnapSnmpCommand(); + + HashMap<String, String> resultMapEntry = new HashMap<>(); + resultMapEntry.put("system-desc", "1.3.6.1.2.1.1.1.0"); + + List<Map<String, String>> resultMap = Arrays.asList(resultMapEntry); + snmpCmd.setResultMap(resultMap); + snmpCmd.setSnmpVersion("1"); + snmpCmd.setCommand("get"); + + OnapCommandParameter onapCommandParameter = new OnapCommandParameter(); + onapCommandParameter.setName("agent"); + onapCommandParameter.setParameterType(OnapCommandParameterType.STRING); + onapCommandParameter.setShortOption("x"); + onapCommandParameter.setOptional(false); + onapCommandParameter.setLongOption("agent"); + onapCommandParameter.setValue("udp:0.0.0.0/161"); + + Set<OnapCommandParameter> parameters = new HashSet<>(); + parameters.add(onapCommandParameter); + snmpCmd.setParameters(parameters); + + OnapCommandResultAttribute onapCommandResultAttribute = new OnapCommandResultAttribute(); + onapCommandResultAttribute.setValues(new ArrayList<>()); + onapCommandResultAttribute.setName("system-desc"); + + + OnapCommandResult onapCommandResult = new OnapCommandResult(); + onapCommandResult.setRecords(Arrays.asList(onapCommandResultAttribute)); + snmpCmd.setResult(onapCommandResult); + + snmpCmd.run(); + + OnapCommandResult result = snmpCmd.getResult(); + assertEquals("snmp", result.getRecordsMap().get("system-desc") + .getValues().get(0)); + } +}
\ No newline at end of file diff --git a/profiles/snmp/src/test/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand b/profiles/snmp/src/test/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand new file mode 100644 index 00000000..59d23e1a --- /dev/null +++ b/profiles/snmp/src/test/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand @@ -0,0 +1 @@ +org.onap.cli.fw.snmp.cmd.OnapSnmpCommand
\ No newline at end of file diff --git a/profiles/snmp/src/test/resources/open-cli.properties b/profiles/snmp/src/test/resources/open-cli.properties new file mode 100644 index 00000000..ed406331 --- /dev/null +++ b/profiles/snmp/src/test/resources/open-cli.properties @@ -0,0 +1,31 @@ +cli.product_name=open-cli +cli.version=1.0 + +cli.discover_always=false + +#schema validation +cli.schema.top_level_params_list=open_cli_schema_version,name,description,parameters,results,http,info +cli.schema.top_level_mandatory_list=open_cli_schema_version + +cli.schema.info_params_list=product,service,type,author,ignore +cli.schema.info_params_mandatory_list=product,service + +cli.schema.input_params_list=name,description,type,short_option,long_option, is_optional,default_value,is_secured,is_include +cli.schema.input_params_mandatory_list=name,description,type + +cli.schema.result_params_list=name,description,scope,type,is_secured, default_value +cli.schema.result_params_mandatory_list=name, description, type, scope + +cli.schema.boolean_values=true,false +cli.command.type=cmd,auth,catalog + +# moco properties +cli.sample.gen.enable=false +cli.sample.gen.target=. + +# mrkanag Move this to db, once exteranl command registration is supported in place of discovery +cli.schema.type.supported=snmp + +#other properties to load (it should be hanled when plugins are made as externally register-able +#when command plugin management support is enabled in oclip +cli.plugins-prps=,open-cli-snmp.properties
\ No newline at end of file |