Add ability to do optional params for custom query
[aai/traversal.git] / aai-traversal / src / test / java / org / onap / aai / rest / search / GetCustomQueryConfigTest.java
1 package org.onap.aai.rest.search;
2
3 import static org.junit.Assert.*;
4
5 import org.junit.Before;
6 import org.junit.Test;
7
8 import com.google.common.collect.Lists;
9
10 public class GetCustomQueryConfigTest {
11
12         private String configJson;
13         
14         @Before
15         public void setUp() throws Exception {
16                 System.setProperty("AJSC_HOME", ".");
17                 System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local");
18                 
19
20                 configJson = "{\n       \"stored-queries\": [{\n" +
21                                 "               \"queryName1\": {\n                     \"query\": {\n                          \"required-properties\": [\"prop1\", \"prop2\"],\n                              \"optional-properties\": [\"prop3\", \"prop4\"]\n                       },\n                    \"stored-query\": \"out('blah').has('something','foo')\"\n              }\n     }, {\n" +
22                                 "               \"queryName2\": {\n                     \"query\": {\n                          \"optional-properties\": [\"prop5\"]\n                  },\n                    \"stored-query\": \"out('bar').has('stuff','baz')\"\n           }\n     }, {\n" +
23                                 "               \"queryName3\": {\n                     \"stored-query\": \"out('bar1').has('stuff','baz1')\"\n         }\n     }]\n}";
24         }
25
26
27         @Test
28         public void testGetStoredQueryNameWithOptAndReqProps() {
29                 
30                 GetCustomQueryConfig getCustomQueryConfig = new GetCustomQueryConfig(configJson);
31                 CustomQueryConfig cqc = getCustomQueryConfig.getStoredQuery("queryName1");
32
33                 assertEquals(Lists.newArrayList("prop3", "prop4"), cqc.getQueryOptionalProperties());
34                 assertEquals(Lists.newArrayList("prop1", "prop2"), cqc.getQueryRequiredProperties());
35                 assertEquals("out('blah').has('something','foo')", cqc.getQuery());
36
37         }
38
39         @Test
40         public void testGetStoredQueryNameWithOptProps() {
41                 
42                 GetCustomQueryConfig getCustomQueryConfig = new GetCustomQueryConfig(configJson);
43                 CustomQueryConfig cqc = getCustomQueryConfig.getStoredQuery("queryName2");
44
45                 assertEquals(Lists.newArrayList("prop5"), cqc.getQueryOptionalProperties());
46                 assertEquals(null, cqc.getQueryRequiredProperties());
47                 assertEquals("out('bar').has('stuff','baz')", cqc.getQuery());
48
49         }
50
51         @Test
52         public void testGetStoredQueryNameWithNoProps() {
53                 
54                 GetCustomQueryConfig getCustomQueryConfig = new GetCustomQueryConfig(configJson);
55                 CustomQueryConfig cqc = getCustomQueryConfig.getStoredQuery("queryName3");
56
57                 assertEquals(null, cqc.getQueryOptionalProperties());
58                 assertEquals(null, cqc.getQueryRequiredProperties());
59                 assertEquals("out('bar1').has('stuff','baz1')", cqc.getQuery());
60
61         }
62 }