aboutsummaryrefslogtreecommitdiffstats
path: root/profiles/snmp/src/test
diff options
context:
space:
mode:
authorsubhash kumar singh <subhash.kumar.singh@huawei.com>2017-12-21 14:06:08 +0000
committersubhash kumar singh <subhash.kumar.singh@huawei.com>2018-01-31 05:01:22 +0000
commitd701b812258d0e84a5d5cce0296b004e364a1a3b (patch)
tree182240c7531ab3dd8167b3538290171301b8347c /profiles/snmp/src/test
parenta158de7f4f197d65adc7332bd3ad59fb1203a085 (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')
-rw-r--r--profiles/snmp/src/test/java/org/onap/cli/fw/snmp/cmd/OnapSnmpCommandTest.java97
-rw-r--r--profiles/snmp/src/test/resources/META-INF/services/org.onap.cli.fw.cmd.OnapCommand1
-rw-r--r--profiles/snmp/src/test/resources/open-cli.properties31
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