import org.onap.cli.fw.schema.OnapCommandSchema;
import org.onap.cli.fw.schema.OnapCommandSchemaLoader;
import org.onap.cli.fw.utils.OnapCommandUtils;
+import java.util.List;
+import org.onap.cli.fw.error.OnapCommandResultMapProcessingFailed;
+import org.onap.cli.fw.error.OnapCommandResultEmpty;
+import static org.junit.Assert.assertFalse;
+import org.onap.cli.fw.http.connect.HttpInput;
+import org.onap.cli.fw.http.connect.HttpInput.Part;
+import static org.junit.Assert.assertNotNull;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class OnapCommandUtilsTest {
@Test
public void oclipCommandUtilsInputStreamNotNullTest() throws OnapCommandException {
Map<String, ?> map = OnapCommandSchemaLoader.validateSchemaVersion("sample-test1-schema-http.yaml", "1.0");
- assertTrue(map != null);
+ assertNotNull(map);
}
@Test
cmd.setName("sample-create-http");
try {
OnapCommandSchemaHttpLoader.loadHttpSchema(cmd, "sample-test-schema-http.yaml", true, true);
- assertTrue(cmd.getSuccessStatusCodes().size() == 2);
+ assertEquals(2, cmd.getSuccessStatusCodes().size());
} catch (OnapCommandParameterNameConflict | OnapCommandParameterOptionConflict
| OnapCommandInvalidParameterType | OnapCommandInvalidPrintDirection
| OnapCommandInvalidResultAttributeScope | OnapCommandSchemaNotFound | OnapCommandInvalidSchema
}
};
OnapCommandSchemaLoader.loadSchema(cmd, "sample-test-schema-auth-required.yaml", true, false);
- assertTrue("sample-test".equals(cmd.getName()));
+ assertEquals("sample-test", cmd.getName());
Map<String, OnapCommandParameter> map = OnapCommandUtils.getInputMap(cmd.getParameters());
- assertTrue(map.size() == 9);
+ assertEquals(9, map.size());
}
@Test(expected = OnapCommandHttpHeaderNotFound.class)
public void populateOutputsTest() throws OnapCommandException {
HttpResult output = new HttpResult();
output.setBody(
- "{\"serviceName\":\"test\",\"version\":\"v1\",\"url\":\"/api/test/v1\",\"protocol\":\"REST\",\"visualRange\":\"1\",\"lb_policy\":\"hash\",\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"8012\",\"ttl\":0,\"nodeId\":\"test_127.0.0.1_8012\",\"expiration\":\"2017-02-10T05:33:25Z\",\"created_at\":\"2017-02-10T05:33:25Z\",\"updated_at\":\"2017-02-10T05:33:25Z\"}],\"status\":\"1\"}");
+ "{\"serviceName\":\"test\",\"version\":\"v1\",\"url\":\"/api/test/v1\",\"protocol\":\"REST\","
+ + "\"visualRange\":\"1\",\"lb_policy\":\"hash\",\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"8012\","
+ + "\"ttl\":0,\"nodeId\":\"test_127.0.0.1_8012\",\"expiration\":\"2017-02-10T05:33:25Z\","
+ + "\"created_at\":\"2017-02-10T05:33:25Z\",\"updated_at\":\"2017-02-10T05:33:25Z\"}],"
+ + "\"status\":\"1\"}");
Map<String, String> mapHead = new HashMap<>();
mapHead.put("head1", "value1");
output.setRespHeaders(mapHead);
params.put("body", "$b{$.serviceName}");
params.put("key", "value");
- Map<String, ArrayList<String>> input1 = OnapCommandHttpUtils.populateOutputs(params, output);
+ Map<String, List<String>> input1 = OnapCommandHttpUtils.populateOutputs(params, output);
assertEquals("{head=[value1], body=[test], key=[value]}", input1.toString());
params.put("body", "$b{{$.serviceName}");
input1 = OnapCommandHttpUtils.populateOutputs(params, output);
} catch (OnapCommandHttpInvalidResponseBody e) {
assertEquals(
- "0x3004::Http response body does not have json entry {$.serviceName, Missing property in path $['{$']",
+ "0x3004::Http response body does not have json entry {$.serviceName, "
+ + "Missing property in path $['{$']",
e.getMessage());
}
output.setBody("{}");
input1 = OnapCommandHttpUtils.populateOutputs(params, output);
}
+ @Test
+ public void replaceLineFromOutputResultsTest() throws OnapCommandHttpHeaderNotFound, OnapCommandHttpInvalidResponseBody, OnapCommandResultMapProcessingFailed, OnapCommandResultEmpty {
+ HttpResult output = new HttpResult();
+
+ Map<String, String> mapHead = new HashMap<>();
+ mapHead.put("head1", "value1");
+ output.setRespHeaders(mapHead);
+ output.setStatus(0);
+ List<String> actualResult = OnapCommandHttpUtils.replaceLineFromOutputResults("", output);
+ assertTrue(actualResult.get(0).isEmpty());
+ output.setBody("");
+ actualResult = OnapCommandHttpUtils.replaceLineFromOutputResults("$h{head1}$b{$.serviceName}", output);
+ assertTrue(actualResult.isEmpty());
+// assertTrue(actualResult.size() > 0);
+ output.setBody(
+ "{\"serviceName\":\"test\",\"version\":\"v1\",\"url\":\"/api/test/v1\",\"protocol\":\"REST\","
+ + "\"visualRange\":\"1\",\"lb_policy\":\"hash\",\"nodes\":[{\"ip\":\"127.0.0.1\",\"port\":\"8012\","
+ + "\"ttl\":0,\"nodeId\":\"test_127.0.0.1_8012\",\"expiration\":\"2017-02-10T05:33:25Z\","
+ + "\"created_at\":\"2017-02-10T05:33:25Z\",\"updated_at\":\"2017-02-10T05:33:25Z\"}],"
+ + "\"status\":\"1\"}");
+ actualResult = OnapCommandHttpUtils.replaceLineFromOutputResults("$h{head1}${$.serviceName}", output);
+ assertTrue(actualResult.size()>0);
+ actualResult = OnapCommandHttpUtils.replaceLineFromOutputResults("$h{head1}$b{$.serviceName}", output);
+ assertFalse(actualResult.get(0).isEmpty());
+ }
@OnapCommandSchema(schema = "sample-test-schema-http.yaml")
class OnapHttpCommandSample extends OnapHttpCommand {
@Test
public void testJsonEmptyCheck() throws OnapCommandHttpInvalidRequestBody {
- String sample = "{\"request\":{\"method\":\"\",\"uri\":\"/onboarding-api/v1.0/vendor-license-models/cf2d907d998e44698ce3b4cded5f66a7/versions/2.0/license-agreements\",\"headers\":{\"Authorization\":\"Basic Y3MwMDA4OmRlbW8xMjM0NTYh\",\"X-FromAppId\":\"onap-cli\",\"Accept\":\"application/json\",\"USER_ID\":\"cs0008\",\"X-TransactionId\":\"req-66a37478-d840-44f8-b436-56f4a3b6f640\",\"Content-Type\":\"application/json\"},\"json\":null},\"response\":{\"status\":200,\"json\":{\"listCount\":2,\"results\":[{\"name\":\"sf\",\"description\":\"sdfgdf\",\"licenseTerm\":{\"choice\":\"Fixed_Term\",\"other\":null},\"id\":\"1e2edfccaca847f896070d0fac26667a\",\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]},{\"name\":\"kanag-cli-la\",\"description\":\"kanag cli la\",\"licenseTerm\":{\"choice\":\"Fixed_Term\",\"other\":\"\"},\"id\":\"77e151d0503b45ecb7e40f5f5f1a887e\",\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]}]}}}";
- String result = "{\"request\":{\"uri\":\"/onboarding-api/v1.0/vendor-license-models/cf2d907d998e44698ce3b4cded5f66a7/versions/2.0/license-agreements\",\"headers\":{\"Authorization\":\"Basic Y3MwMDA4OmRlbW8xMjM0NTYh\",\"X-FromAppId\":\"onap-cli\",\"Accept\":\"application/json\",\"USER_ID\":\"cs0008\",\"X-TransactionId\":\"req-66a37478-d840-44f8-b436-56f4a3b6f640\",\"Content-Type\":\"application/json\"}},\"response\":{\"status\":200,\"json\":{\"listCount\":2,\"results\":[{\"name\":\"sf\",\"description\":\"sdfgdf\",\"licenseTerm\":{\"choice\":\"Fixed_Term\"},\"id\":\"1e2edfccaca847f896070d0fac26667a\",\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]},{\"name\":\"kanag-cli-la\",\"description\":\"kanag cli la\",\"licenseTerm\":{\"choice\":\"Fixed_Term\"},\"id\":\"77e151d0503b45ecb7e40f5f5f1a887e\",\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]}]}}}";
+ String sample = "{\"request\":{\"method\":\"\",\"uri\":\"/onboarding-api/v1.0/"
+ + "vendor-license-models/cf2d907d998e44698ce3b4cded5f66a7/versions/2.0/license-agreements\","
+ + "\"headers\":{\"Authorization\":\"Basic Y3MwMDA4OmRlbW8xMjM0NTYh\",\"X-FromAppId\":\"onap-cli\","
+ + "\"Accept\":\"application/json\",\"USER_ID\":\"cs0008\","
+ + "\"X-TransactionId\":\"req-66a37478-d840-44f8-b436-56f4a3b6f640\","
+ + "\"Content-Type\":\"application/json\"},\"json\":null},"
+ + "\"response\":{\"status\":200,\"json\":{\"listCount\":2,"
+ + "\"results\":[{\"name\":\"sf\",\"description\":\"sdfgdf\","
+ + "\"licenseTerm\":{\"choice\":\"Fixed_Term\",\"other\":null},"
+ + "\"id\":\"1e2edfccaca847f896070d0fac26667a\","
+ + "\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]},"
+ + "{\"name\":\"kanag-cli-la\",\"description\":\"kanag cli la\","
+ + "\"licenseTerm\":{\"choice\":\"Fixed_Term\",\"other\":\"\"},"
+ + "\"id\":\"77e151d0503b45ecb7e40f5f5f1a887e\","
+ + "\"featureGroupsIds\":[\"3a2fb75b52a54e9c8093e7c154210f9e\"]}]}}}";
+ String result = "{\"request\":{\"uri\":"
+ + "\"/onboarding-api/v1.0/vendor-license-models/cf2d907d998e44698ce3b4cded5f66a7/"
+ + "versions/2.0/license-agreements\",\"headers\":"
+ + "{\"Authorization\":\"Basic Y3MwMDA4OmRlbW8xMjM0NTYh\","
+ + "\"X-FromAppId\":\"onap-cli\",\"Accept\":\"application/json\","
+ + "\"USER_ID\":\"cs0008\",\"X-TransactionId\":\"req-66a37478-d840-44f8-b436-56f4a3b6f640\","
+ + "\"Content-Type\":\"application/json\"}},\"response\":{\"status\":200,"
+ + "\"json\":{\"listCount\":2,\"results\":[{\"name\":\"sf\","
+ + "\"description\":\"sdfgdf\",\"licenseTerm\":{\"choice\":\"Fixed_Term\"},"
+ + "\"id\":\"1e2edfccaca847f896070d0fac26667a\",\"featureGroupsIds\":"
+ + "[\"3a2fb75b52a54e9c8093e7c154210f9e\"]},{\"name\":\"kanag-cli-la\","
+ + "\"description\":\"kanag cli la\",\"licenseTerm\":{\"choice\":\"Fixed_Term\"},"
+ + "\"id\":\"77e151d0503b45ecb7e40f5f5f1a887e\",\"featureGroupsIds\":"
+ + "[\"3a2fb75b52a54e9c8093e7c154210f9e\"]}]}}}";
assertEquals(result, OnapCommandHttpUtils.normalizeJson(sample));
}
+
+ @Test
+ public void testPopulateParameters() throws OnapCommandException {
+ List <Part> multiparts = new ArrayList <HttpInput.Part> ();
+ Part part = new Part();
+ part.setContent("content");
+ multiparts.add(part);
+ Map <String, OnapCommandParameter> params = new HashMap <String, OnapCommandParameter> ();
+ OnapCommandParameter onapCommandParameter = new OnapCommandParameter();
+ onapCommandParameter.setName("CMD");
+ onapCommandParameter.setRawDefaultValue("value");
+ params.put("key", onapCommandParameter);
+ HttpInput httpInput = new HttpInput();
+ httpInput.setMultiparts(multiparts);
+ HttpInput input = OnapCommandHttpUtils.populateParameters(params, httpInput);
+ assertNotNull(input);
+ }
+
}