94b5e15b2c24449a5c78473c79c86cfda864fb1d
[cli.git] / framework / src / test / java / org / onap / cli / cmd / sample / OnapCommandSampleTest.java
1 /*
2  * Copyright 2017 Huawei Technologies Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onap.cli.cmd.sample;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.fail;
21
22 import java.util.HashSet;
23 import java.util.Set;
24 import java.util.UUID;
25
26 import org.junit.Test;
27 import org.onap.cli.fw.cmd.OnapCommand;
28 import org.onap.cli.fw.conf.OnapCommandConstants;
29 import org.onap.cli.fw.error.OnapCommandException;
30 import org.onap.cli.fw.error.OnapCommandExecutionFailed;
31 import org.onap.cli.fw.error.OnapCommandNotInitialized;
32 import org.onap.cli.fw.input.OnapCommandParameter;
33 import org.onap.cli.fw.input.OnapCommandParameterType;
34 import org.onap.cli.fw.output.OnapCommandResultAttribute;
35 import org.onap.cli.fw.registrar.OnapCommandRegistrar;
36
37 import org.onap.cli.fw.output.OnapCommandResult;
38 import static org.junit.Assert.assertNotNull;
39
40 public class OnapCommandSampleTest {
41     @Test
42     public void sampleTestVersion() {
43
44         try {
45             Set<OnapCommandParameter> parameters = new HashSet();
46             OnapCommandParameter version = new OnapCommandParameter();
47             version.setName(OnapCommandConstants.DEFAULT_PARAMETER_VERSION);
48             version.setValue(true);
49             parameters.add(version);
50             OnapCommandParameter hlp = new OnapCommandParameter();
51             hlp.setName(OnapCommandConstants.DEFAULT_PARAMETER_HELP);
52             hlp.setValue(false);
53             parameters.add(hlp);
54
55             OnapCommand sample = OnapCommandRegistrar.getRegistrar().get("sample-test");
56             sample.setParameters(parameters);
57             sample.execute();
58             OnapCommandResult onapCommandResult = sample.execute();
59             assertEquals("open-cli::test",onapCommandResult.getOutput());
60         } catch (OnapCommandException e) {
61         }
62     }
63
64     @Test
65     public void sampleTestHelp() {
66         try {
67             OnapCommandParameter ver = new OnapCommandParameter();
68             ver.setName(OnapCommandConstants.DEFAULT_PARAMETER_HELP);
69             ver.setValue(true);
70             ver.setParameterType(OnapCommandParameterType.BOOL);
71
72             Set<OnapCommandParameter> parameters = new HashSet();
73             parameters.add(ver);
74
75             OnapCommandSample sample = new OnapCommandSample();
76             sample.setParameters(parameters);
77             sample.execute();
78             OnapCommandResult onapCommandResult = sample.execute();
79             assertNotNull(onapCommandResult);
80         } catch (OnapCommandException e) {
81         }
82     }
83
84     @Test
85     public void sampleTest() {
86
87         try {
88             Set<OnapCommandParameter> parameters = new HashSet();
89             OnapCommandParameter ver = new OnapCommandParameter();
90             ver.setName(OnapCommandConstants.DEFAULT_PARAMETER_VERSION);
91             ver.setValue(false);
92             parameters.add(ver);
93             OnapCommandParameter hlp = new OnapCommandParameter();
94             hlp.setName(OnapCommandConstants.DEFAULT_PARAMETER_HELP);
95             hlp.setValue(false);
96             parameters.add(hlp);
97             OnapCommandParameter fmt = new OnapCommandParameter();
98             fmt.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_FORMAT);
99             fmt.setValue("table");
100             parameters.add(fmt);
101             OnapCommandParameter lng = new OnapCommandParameter();
102             lng.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_ATTR_LONG);
103             lng.setValue(true);
104             parameters.add(lng);
105             OnapCommandParameter title = new OnapCommandParameter();
106             title.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_NO_TITLE);
107             title.setValue(true);
108             parameters.add(title);
109             OnapCommandParameter denug = new OnapCommandParameter();
110             denug.setName(OnapCommandConstants.DEFAULT_PARAMETER_DEBUG);
111             denug.setValue(true);
112             parameters.add(denug);
113
114             OnapCommand sample = OnapCommandRegistrar.getRegistrar().get("sample-test");
115             sample.setParameters(parameters);
116             sample.execute();
117
118             //validate whether output attributes default value got initialized as part of execute()
119             OnapCommandResultAttribute attr = sample.getResult().getRecordsMap().get("output-1");
120             String attrValue = attr.getValues().get(0);
121             UUID.fromString(attrValue.substring(4));
122             attr = sample.getResult().getRecordsMap().get("output-2");
123             attrValue = attr.getValues().get(0);
124             assertEquals("test", attrValue);
125         } catch (IllegalArgumentException e) {
126             fail("Failed to replace the output default value on output-1");
127         } catch (OnapCommandException e) {
128         }
129     }
130
131     @Test(expected = OnapCommandExecutionFailed.class)
132     public void sampleTestFailure() throws OnapCommandException {
133         OnapCommandSample sample = new OnapCommandSample();
134         sample.failCase = true;
135
136         Set<OnapCommandParameter> parameters = new HashSet();
137         OnapCommandParameter ver = new OnapCommandParameter();
138         ver.setName(OnapCommandConstants.DEFAULT_PARAMETER_VERSION);
139         ver.setValue(false);
140         parameters.add(ver);
141         OnapCommandParameter hlp = new OnapCommandParameter();
142         hlp.setName(OnapCommandConstants.DEFAULT_PARAMETER_HELP);
143         hlp.setValue(false);
144         parameters.add(hlp);
145         OnapCommandParameter ffmt = new OnapCommandParameter();
146         ffmt.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_FORMAT);
147         ffmt.setValue("table");
148         parameters.add(ffmt);
149         OnapCommandParameter lng = new OnapCommandParameter();
150         lng.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_ATTR_LONG);
151         lng.setValue(true);
152         parameters.add(lng);
153         OnapCommandParameter titl = new OnapCommandParameter();
154         titl.setName(OnapCommandConstants.DEFAULT_PARAMETER_OUTPUT_NO_TITLE);
155         titl.setValue(true);
156         parameters.add(titl);
157         OnapCommandParameter debug = new OnapCommandParameter();
158         debug.setName(OnapCommandConstants.DEFAULT_PARAMETER_DEBUG);
159         debug.setValue(true);
160         parameters.add(debug);
161         sample.setParameters(parameters);
162         sample.execute();
163     }
164
165     @Test(expected = OnapCommandNotInitialized.class)
166     public void sampleTestIsInitialized() throws OnapCommandException {
167         OnapCommandSample sample = new OnapCommandSample(false);
168         sample.execute();
169     }
170 }