Removing Drools-pdp swagger annotations
[policy/drools-pdp.git] / policy-management / src / test / java / org / onap / policy / drools / server / restful / test / RestManagerTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * policy-management
4  * ================================================================================
5  * Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.drools.server.restful.test;
22
23 import static org.junit.Assert.assertEquals;
24
25 import java.io.IOException;
26 import java.nio.file.Files;
27 import java.nio.file.Path;
28 import java.nio.file.Paths;
29 import java.util.Properties;
30 import org.apache.http.HttpEntity;
31 import org.apache.http.auth.AuthScope;
32 import org.apache.http.auth.UsernamePasswordCredentials;
33 import org.apache.http.client.CredentialsProvider;
34 import org.apache.http.client.methods.CloseableHttpResponse;
35 import org.apache.http.client.methods.HttpDelete;
36 import org.apache.http.client.methods.HttpGet;
37 import org.apache.http.client.methods.HttpPost;
38 import org.apache.http.client.methods.HttpPut;
39 import org.apache.http.client.methods.HttpRequestBase;
40 import org.apache.http.entity.ContentType;
41 import org.apache.http.entity.StringEntity;
42 import org.apache.http.impl.client.BasicCredentialsProvider;
43 import org.apache.http.impl.client.CloseableHttpClient;
44 import org.apache.http.impl.client.HttpClientBuilder;
45 import org.apache.http.util.EntityUtils;
46 import org.junit.AfterClass;
47 import org.junit.BeforeClass;
48 import org.junit.FixMethodOrder;
49 import org.junit.Test;
50 import org.junit.runners.MethodSorters;
51 import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager;
52 import org.onap.policy.common.endpoints.http.server.YamlJacksonHandler;
53 import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
54 import org.onap.policy.common.gson.JacksonHandler;
55 import org.onap.policy.common.utils.network.NetworkUtil;
56 import org.onap.policy.drools.persistence.SystemPersistenceConstants;
57 import org.onap.policy.drools.system.PolicyControllerConstants;
58 import org.onap.policy.drools.system.PolicyEngineConstants;
59 import org.slf4j.Logger;
60 import org.slf4j.LoggerFactory;
61
62 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
63 public class RestManagerTest {
64     private static final int DEFAULT_TELEMETRY_PORT = 7887;
65     private static final String HOST = "localhost";
66     private static final String REST_MANAGER_PATH = "/policy/pdp";
67     private static final String HOST_URL = "http://" + HOST + ":" + DEFAULT_TELEMETRY_PORT + REST_MANAGER_PATH;
68     private static final String TELEMETRY_USER = "x";
69     private static final String TELEMETRY_PASSWORD = "y";
70     private static final String FOO_CONTROLLER = "foo";
71
72     private static final String UEB_TOPIC = "UEB-TOPIC-TEST";
73     private static final String DMAAP_TOPIC = "DMAAP-TOPIC-TEST";
74     private static final String NOOP_TOPIC = "NOOP_TOPIC";
75
76     private static final String UEB_SOURCE_SERVER_PROPERTY = PolicyEndPointProperties.PROPERTY_UEB_SOURCE_TOPICS + "."
77             + UEB_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX;
78     private static final String UEB_SINK_SERVER_PROPERTY = PolicyEndPointProperties.PROPERTY_UEB_SINK_TOPICS + "."
79             + UEB_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX;
80     private static final String DMAAP_SOURCE_SERVER_PROPERTY = PolicyEndPointProperties.PROPERTY_DMAAP_SOURCE_TOPICS
81             + "." + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX;
82     private static final String DMAAP_SINK_SERVER_PROPERTY = PolicyEndPointProperties.PROPERTY_DMAAP_SINK_TOPICS + "."
83             + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX;
84     private static final String UEB_SERVER = "localhost";
85     private static final String DMAAP_SERVER = "localhost";
86     private static final String DMAAP_MECHID = "blah";
87     private static final String DMAAP_PASSWD = "blah";
88
89     private static final String DMAAP_SOURCE_MECHID_KEY = PolicyEndPointProperties.PROPERTY_DMAAP_SOURCE_TOPICS + "."
90             + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_AAF_MECHID_SUFFIX;
91     private static final String DMAAP_SOURCE_PASSWD_KEY = PolicyEndPointProperties.PROPERTY_DMAAP_SOURCE_TOPICS + "."
92             + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_AAF_PASSWORD_SUFFIX;
93
94     private static final String DMAAP_SINK_MECHID_KEY = PolicyEndPointProperties.PROPERTY_DMAAP_SINK_TOPICS + "."
95             + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_AAF_MECHID_SUFFIX;
96     private static final String DMAAP_SINK_PASSWD_KEY = PolicyEndPointProperties.PROPERTY_DMAAP_SINK_TOPICS + "."
97             + DMAAP_TOPIC + PolicyEndPointProperties.PROPERTY_TOPIC_AAF_PASSWORD_SUFFIX;
98
99     private static final String FOO_CONTROLLER_FILE = FOO_CONTROLLER + "-controller.properties";
100     private static final String FOO_CONTROLLER_FILE_BAK = FOO_CONTROLLER_FILE + ".bak";
101     private static final String PDP_CONFIGURATION_JSON =
102             "src/test/resources/org/onap/policy/drools/server/restful/PdpConfiguration.json";
103
104     private static CloseableHttpClient client;
105
106     private static final Logger logger = LoggerFactory.getLogger(RestManagerTest.class);
107
108     /**
109      * Set up.
110      *
111      * @throws IOException throws an IO exception
112      */
113     @BeforeClass
114     public static void setUp() throws IOException, InterruptedException {
115         cleanUpWorkingDirs();
116
117         SystemPersistenceConstants.getManager().setConfigurationDir(null);
118
119         /* override default port */
120         final Properties engineProps = PolicyEngineConstants.getManager().defaultTelemetryConfig();
121         engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
122                         + PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
123                         + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX, "" + DEFAULT_TELEMETRY_PORT);
124         engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
125                 + PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
126                 + PolicyEndPointProperties.PROPERTY_HTTP_FILTER_CLASSES_SUFFIX,
127                 TestAafTelemetryAuthFilter.class.getName());
128         engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
129                 + PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
130                 + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_USERNAME_SUFFIX,
131                 TELEMETRY_USER);
132         engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
133                 + PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
134                 + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_PASSWORD_SUFFIX,
135                 TELEMETRY_PASSWORD);
136         engineProps.put(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "."
137                 + PolicyEngineConstants.TELEMETRY_SERVER_DEFAULT_NAME
138                 + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER,
139                 String.join(",", JacksonHandler.class.getName(), YamlJacksonHandler.class.getName()));
140
141         /* other properties */
142         engineProps.put(PolicyEndPointProperties.PROPERTY_UEB_SOURCE_TOPICS, UEB_TOPIC);
143         engineProps.put(PolicyEndPointProperties.PROPERTY_UEB_SINK_TOPICS, UEB_TOPIC);
144         engineProps.put(PolicyEndPointProperties.PROPERTY_DMAAP_SOURCE_TOPICS, DMAAP_TOPIC);
145         engineProps.put(PolicyEndPointProperties.PROPERTY_DMAAP_SINK_TOPICS, DMAAP_TOPIC);
146         engineProps.put(UEB_SOURCE_SERVER_PROPERTY, UEB_SERVER);
147         engineProps.put(UEB_SINK_SERVER_PROPERTY, UEB_SERVER);
148         engineProps.put(DMAAP_SOURCE_SERVER_PROPERTY, DMAAP_SERVER);
149         engineProps.put(DMAAP_SINK_SERVER_PROPERTY, DMAAP_SERVER);
150         engineProps.put(DMAAP_SOURCE_MECHID_KEY, DMAAP_MECHID);
151         engineProps.put(DMAAP_SOURCE_PASSWD_KEY, DMAAP_PASSWD);
152         engineProps.put(DMAAP_SINK_MECHID_KEY, DMAAP_MECHID);
153         engineProps.put(DMAAP_SINK_PASSWD_KEY, DMAAP_PASSWD);
154
155         PolicyEngineConstants.getManager().configure(engineProps);
156         PolicyEngineConstants.getManager().start();
157
158         Properties controllerProps = new Properties();
159         PolicyEngineConstants.getManager().createPolicyController(FOO_CONTROLLER, controllerProps);
160
161         // client = HttpClients.createDefault();
162         CredentialsProvider provider = new BasicCredentialsProvider();
163         UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(TELEMETRY_USER, TELEMETRY_PASSWORD);
164         provider.setCredentials(AuthScope.ANY, credentials);
165
166         client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
167
168         if (!NetworkUtil.isTcpPortOpen("localhost", DEFAULT_TELEMETRY_PORT, 5, 10000L)) {
169             throw new IllegalStateException("cannot connect to port " + DEFAULT_TELEMETRY_PORT);
170         }
171
172         Properties noopProperties = new Properties();
173         noopProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SOURCE_TOPICS, NOOP_TOPIC);
174         noopProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, NOOP_TOPIC);
175         TopicEndpointManager.getManager().addTopics(noopProperties);
176     }
177
178     /**
179      * Tear down.
180      *
181      * @throws IOException IO exception
182      */
183     @AfterClass
184     public static void tearDown() throws IOException {
185         try {
186             client.close();
187         } catch (IOException ex) {
188             logger.warn("cannot close HTTP client connection", ex);
189         }
190
191         /* Shutdown managed resources */
192         PolicyControllerConstants.getFactory().shutdown();
193         TopicEndpointManager.getManager().shutdown();
194         PolicyEngineConstants.getManager().stop();
195         cleanUpWorkingDirs();
196     }
197
198
199     @Test
200     public void testPutDelete() throws IOException {
201         putTest(HOST_URL + "/engine/switches/lock", 406);
202         deleteTest(HOST_URL + "/engine/switches/lock", 406);
203
204         putDeleteEngineControllers();
205
206         putTest(HOST_URL + "/engine/switches/lock", 200);
207         deleteTest(HOST_URL + "/engine/switches/lock", 200);
208
209         putDeleteTopicsSources();
210         putDeleteTopicSwitches();
211
212         putTest(HOST_URL + "/engine/tools/loggers/ROOT/debug", 200);
213         putTest(HOST_URL + "/engine/environment/XX", 200, "WARN", ContentType.DEFAULT_TEXT);
214         deleteTest(HOST_URL + "/engine/switches/activation", 200);
215         putTest(HOST_URL + "/engine/switches/activation", 200);
216     }
217
218     private void putDeleteTopicSwitches() throws IOException {
219         putDeleteSwitch("/engine/topics/sources/ueb/", UEB_TOPIC, "lock");
220         putDeleteSwitch("/engine/topics/sources/dmaap/", DMAAP_TOPIC, "lock");
221         putDeleteSwitch("/engine/topics/sources/noop/", NOOP_TOPIC, "lock");
222         putDeleteSwitch("/engine/topics/sinks/ueb/", UEB_TOPIC, "lock");
223         putDeleteSwitch("/engine/topics/sinks/dmaap/", DMAAP_TOPIC, "lock");
224         putDeleteSwitch("/engine/topics/sinks/noop/", NOOP_TOPIC, "lock");
225
226         putDeleteSwitch("/engine/topics/sources/ueb/", UEB_TOPIC, "activation");
227         putDeleteSwitch("/engine/topics/sources/dmaap/", DMAAP_TOPIC, "activation");
228         putDeleteSwitch("/engine/topics/sources/noop/", NOOP_TOPIC, "activation");
229         putDeleteSwitch("/engine/topics/sinks/ueb/", UEB_TOPIC, "activation");
230         putDeleteSwitch("/engine/topics/sinks/dmaap/", DMAAP_TOPIC, "activation");
231         putDeleteSwitch("/engine/topics/sinks/noop/", NOOP_TOPIC, "activation");
232
233         putSwitch("/engine/topics/sources/ueb/", UEB_TOPIC, "activation");
234         putSwitch("/engine/topics/sources/dmaap/", DMAAP_TOPIC, "activation");
235         putSwitch("/engine/topics/sources/noop/", NOOP_TOPIC, "activation");
236         putSwitch("/engine/topics/sinks/ueb/", UEB_TOPIC, "activation");
237         putSwitch("/engine/topics/sinks/dmaap/", DMAAP_TOPIC, "activation");
238         putSwitch("/engine/topics/sinks/noop/", NOOP_TOPIC, "activation");
239     }
240
241     private void putDeleteTopicsSources() throws IOException {
242         putTest(HOST_URL + "/engine/topics/sources/ueb/" + UEB_TOPIC + "/events", 200,
243                 "{x:y}", ContentType.TEXT_PLAIN);
244         putTest(HOST_URL + "/engine/topics/sources/noop/" + NOOP_TOPIC + "/events", 200,
245             "{x:y}", ContentType.TEXT_PLAIN);
246         putTest(HOST_URL + "/engine/topics/sources/dmaap/" + DMAAP_TOPIC + "/events", 200,
247                 "FOOOO", ContentType.TEXT_PLAIN);
248         putTest(HOST_URL + "/engine/topics/sources/ueb/fiznits/events", 406, "FOOOO", ContentType.TEXT_PLAIN);
249         putTest(HOST_URL + "/engine/topics/sources/dmaap/fiznits/events", 406,
250                 "FOOOO", ContentType.TEXT_PLAIN);
251         putTest(HOST_URL + "/engine/topics/switches/lock", 200);
252         putTest(HOST_URL + "/engine/topics/sources/ueb/" + UEB_TOPIC + "/events",
253                 406, "FOOOO", ContentType.TEXT_PLAIN);
254         putTest(HOST_URL + "/engine/topics/sources/dmaap/" + DMAAP_TOPIC + "/events",
255                 406, "FOOOO", ContentType.TEXT_PLAIN);
256         deleteTest(HOST_URL + "/engine/topics/switches/lock", 200);
257     }
258
259     private void putDeleteEngineControllers() throws IOException {
260         deleteTest(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools/facts/session/factType", 200);
261         deleteTest(HOST_URL + "/engine/controllers/controllerName/drools/facts/session/factType", 404);
262         deleteTest(HOST_URL + "/engine/controllers/", 405);
263         deleteTest(HOST_URL + "/engine/controllers/" + null, 400);
264         putTest(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/switches/lock", 406);
265         deleteTest(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER, 200);
266     }
267
268     private void postTest(String uri, int statusCode, String payload, ContentType contentType) throws IOException {
269         HttpPost post = new HttpPost(uri);
270         if (contentType != null) {
271             post.setEntity(new StringEntity(payload, contentType));
272         }
273         requestTest(post, statusCode);
274     }
275
276     private void putTest(String uri, int statusCode) throws IOException {
277         requestTest(new HttpPut(uri), statusCode);
278     }
279
280     private void putTest(String uri, int statusCode, String payload, ContentType contentType) throws IOException {
281         HttpPut put = new HttpPut(uri);
282         if (contentType != null) {
283             put.setEntity(new StringEntity(payload, contentType));
284         }
285         requestTest(put, statusCode);
286     }
287
288     private void deleteTest(String uri, int statusCode) throws IOException {
289         requestTest(new HttpDelete(uri), statusCode);
290     }
291
292     private void requestTest(HttpRequestBase request, int statusCode) throws IOException {
293         CloseableHttpResponse resp = client.execute(request);
294         logger.info(request.getRequestLine() + "response code: {}", resp.getStatusLine().getStatusCode());
295         assertEquals(statusCode, resp.getStatusLine().getStatusCode());
296         request.releaseConnection();
297     }
298
299     private void putDeleteSwitch(String urlPrefix, String topic, String control) throws IOException {
300         putSwitch(urlPrefix, topic, control);
301         deleteSwitch(urlPrefix, topic, control);
302     }
303
304     private void deleteSwitch(String urlPrefix, String topic, String control) throws IOException {
305         deleteTest(HOST_URL + urlPrefix + topic + "/switches/" + control, 200);
306     }
307
308     private void putSwitch(String urlPrefix, String topic, String control) throws IOException {
309         putTest(HOST_URL + urlPrefix + topic + "/switches/" + control, 200);
310     }
311
312     @Test
313     public void testPost() throws IOException {
314         postTest(HOST_URL + "/engine/inputs/configuration", 406,
315                 Files.readString(Paths.get(PDP_CONFIGURATION_JSON)),
316                 ContentType.APPLICATION_JSON);
317
318         postTest(HOST_URL + "/engine/controllers", 400,
319                 "{}",
320                 ContentType.APPLICATION_JSON);
321
322         postTest(HOST_URL + "/engine/controllers", 304,
323                 "{controller.name : foo}",
324                 ContentType.APPLICATION_JSON);
325
326         postTest(HOST_URL + "/engine/controllers", 206,
327                 "{controller.name : new}",
328                 ContentType.APPLICATION_JSON);
329
330         deleteTest(HOST_URL + "/engine/controllers/new", 200);
331
332         postTest(HOST_URL + "/engine/controllers/foo/drools/facts/session1/query1/entity1", 200,
333                 "[{f:v}]", ContentType.APPLICATION_JSON);
334
335         postTest(HOST_URL + "/engine/controllers/new/drools/facts/session1/query1/entity1", 404,
336                 "[{f:v}]", ContentType.APPLICATION_JSON);
337     }
338
339     @Test
340     public void testGetSwagger() throws IOException {
341         HttpGet httpGet;
342         CloseableHttpResponse response;
343         httpGet = new HttpGet(HOST_URL + "/engine/swagger");
344         response = client.execute(httpGet);
345         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
346         assertEquals(200, response.getStatusLine().getStatusCode());
347         httpGet.releaseConnection();
348     }
349
350     @Test
351     public void testGet() throws IOException {
352         HttpGet httpGet;
353         CloseableHttpResponse response;
354
355         /*
356          * GET: /engine /engine/features /engine/features/inventory /engine/features/featurename
357          * /engine/inputs /engine/properties /engine/environment /engine/switches
358          * /engine/controllers
359          */
360         httpGet = new HttpGet(HOST_URL + "/engine");
361         response = client.execute(httpGet);
362         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
363         assertEquals(200, response.getStatusLine().getStatusCode());
364         httpGet.releaseConnection();
365
366         httpGet = new HttpGet(HOST_URL + "/engine/features");
367         response = client.execute(httpGet);
368         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
369         assertEquals(200, response.getStatusLine().getStatusCode());
370         httpGet.releaseConnection();
371
372         httpGet = new HttpGet(HOST_URL + "/engine/features/inventory");
373         response = client.execute(httpGet);
374         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
375         assertEquals(200, response.getStatusLine().getStatusCode());
376         httpGet.releaseConnection();
377
378         httpGet = new HttpGet(HOST_URL + "/engine/features/foobar");
379         response = client.execute(httpGet);
380         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
381         assertEquals(404, response.getStatusLine().getStatusCode());
382         httpGet.releaseConnection();
383
384         httpGet = new HttpGet(HOST_URL + "/engine/inputs");
385         response = client.execute(httpGet);
386         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
387         assertEquals(200, response.getStatusLine().getStatusCode());
388         httpGet.releaseConnection();
389
390         httpGet = new HttpGet(HOST_URL + "/engine/properties");
391         response = client.execute(httpGet);
392         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
393         assertEquals(200, response.getStatusLine().getStatusCode());
394         httpGet.releaseConnection();
395
396         httpGet = new HttpGet(HOST_URL + "/engine/environment");
397         response = client.execute(httpGet);
398         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
399         assertEquals(200, response.getStatusLine().getStatusCode());
400         httpGet.releaseConnection();
401
402         PolicyEngineConstants.getManager().setEnvironmentProperty("foo", "bar");
403         httpGet = new HttpGet(HOST_URL + "/engine/environment/foo");
404         response = client.execute(httpGet);
405         String responseBody = this.getResponseBody(response);
406         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
407         logger.info(httpGet.getRequestLine() + " response body: {}", responseBody);
408         assertEquals(200, response.getStatusLine().getStatusCode());
409         assertEquals("bar", responseBody);
410         httpGet.releaseConnection();
411
412         httpGet = new HttpGet(HOST_URL + "/engine/switches");
413         response = client.execute(httpGet);
414         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
415         assertEquals(200, response.getStatusLine().getStatusCode());
416         httpGet.releaseConnection();
417
418         httpGet = new HttpGet(HOST_URL + "/engine/controllers");
419         response = client.execute(httpGet);
420         responseBody = this.getResponseBody(response);
421         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
422         logger.info(httpGet.getRequestLine() + " response body: {}", responseBody);
423         assertEquals(200, response.getStatusLine().getStatusCode());
424         assertEquals("[\"" + FOO_CONTROLLER + "\"]", responseBody);
425         httpGet.releaseConnection();
426
427         /*
428          * GET: /engine/controllers/inventory /engine/controllers/features
429          * /engine/controllers/features/inventory /engine/controllers/features/featureName
430          * /engine/controllers/controllerName
431          *
432          */
433         httpGet = new HttpGet(HOST_URL + "/engine/controllers/inventory");
434         response = client.execute(httpGet);
435         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
436         assertEquals(200, response.getStatusLine().getStatusCode());
437         httpGet.releaseConnection();
438
439         httpGet = new HttpGet(HOST_URL + "/engine/controllers/features");
440         response = client.execute(httpGet);
441         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
442         assertEquals(200, response.getStatusLine().getStatusCode());
443         httpGet.releaseConnection();
444
445         httpGet = new HttpGet(HOST_URL + "/engine/controllers/features/inventory");
446         response = client.execute(httpGet);
447         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
448         assertEquals(200, response.getStatusLine().getStatusCode());
449         httpGet.releaseConnection();
450
451         httpGet = new HttpGet(HOST_URL + "/engine/controllers/features/dummy");
452         response = client.execute(httpGet);
453         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
454         assertEquals(404, response.getStatusLine().getStatusCode());
455         httpGet.releaseConnection();
456
457         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER);
458         response = client.execute(httpGet);
459         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
460         assertEquals(200, response.getStatusLine().getStatusCode());
461         httpGet.releaseConnection();
462
463         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller");
464         response = client.execute(httpGet);
465         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
466         assertEquals(404, response.getStatusLine().getStatusCode());
467         httpGet.releaseConnection();
468
469         /*
470          * GET: /engine/controllers/controllerName/properties
471          * /engine/controllers/controllerName/inputs /engine/controllers/controllerName/switches
472          * /engine/controllers/controllerName/drools
473          */
474         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/properties");
475         response = client.execute(httpGet);
476         responseBody = this.getResponseBody(response);
477         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
478         logger.info(httpGet.getRequestLine() + " response code: {}", responseBody);
479         assertEquals(200, response.getStatusLine().getStatusCode());
480         assertEquals("{}", responseBody);
481         httpGet.releaseConnection();
482
483         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller/properties");
484         response = client.execute(httpGet);
485         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
486         assertEquals(404, response.getStatusLine().getStatusCode());
487         httpGet.releaseConnection();
488
489         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/inputs");
490         response = client.execute(httpGet);
491         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
492         assertEquals(200, response.getStatusLine().getStatusCode());
493         httpGet.releaseConnection();
494
495         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/switches");
496         response = client.execute(httpGet);
497         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
498         assertEquals(200, response.getStatusLine().getStatusCode());
499         httpGet.releaseConnection();
500
501         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools");
502         response = client.execute(httpGet);
503         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
504         assertEquals(200, response.getStatusLine().getStatusCode());
505         httpGet.releaseConnection();
506
507         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller/drools");
508         response = client.execute(httpGet);
509         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
510         assertEquals(404, response.getStatusLine().getStatusCode());
511         httpGet.releaseConnection();
512
513         /*
514          * GET: /engine/controllers/controllerName/drools/facts
515          * /engine/controllers/controllerName/drools/facts/session
516          * /engine/controllers/controllerName/drools/facts/session/factType
517          * /engine/controllers/controllerName/drools/facts/session/query/queriedEntity
518          *
519          */
520         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools/facts");
521         response = client.execute(httpGet);
522         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
523         assertEquals(200, response.getStatusLine().getStatusCode());
524         httpGet.releaseConnection();
525
526         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller/drools/facts");
527         response = client.execute(httpGet);
528         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
529         assertEquals(404, response.getStatusLine().getStatusCode());
530         httpGet.releaseConnection();
531
532         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools/facts/session");
533         response = client.execute(httpGet);
534         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
535         assertEquals(200, response.getStatusLine().getStatusCode());
536         httpGet.releaseConnection();
537
538         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools/facts/session/factType");
539         response = client.execute(httpGet);
540         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
541         assertEquals(200, response.getStatusLine().getStatusCode());
542         httpGet.releaseConnection();
543
544         httpGet = new HttpGet(
545                 HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/drools/facts/session/query/queriedEntity");
546         response = client.execute(httpGet);
547         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
548         assertEquals(200, response.getStatusLine().getStatusCode());
549         httpGet.releaseConnection();
550
551         httpGet = new HttpGet(HOST_URL + "/engine/controllers/dummy" + "/drools/facts/session/query/queriedEntity");
552         response = client.execute(httpGet);
553         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
554         assertEquals(404, response.getStatusLine().getStatusCode());
555         httpGet.releaseConnection();
556
557
558         /*
559          * GET: /engine/controllers/controllerName/decoders
560          * /engine/controllers/controllerName/decoders/filters
561          * /engine/controllers/controllerName/decoders/topic
562          * /engine/controllers/controllerName/decoders/topic/filters
563          * /engine/controllers/controllerName/decoders/topic/filters/factType
564          * /engine/controllers/controllerName/decoders/topic/filters/factType/rules
565          * /engine/controllers/controllerName/decoders/topic/filtes/factType/rules/ruleName
566          * /engine/controllers/controllerName/encoders
567          */
568         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders");
569         response = client.execute(httpGet);
570         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
571         assertEquals(200, response.getStatusLine().getStatusCode());
572         httpGet.releaseConnection();
573
574         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller/decoders");
575         response = client.execute(httpGet);
576         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
577         assertEquals(404, response.getStatusLine().getStatusCode());
578         httpGet.releaseConnection();
579
580         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/filters");
581         response = client.execute(httpGet);
582         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
583         assertEquals(200, response.getStatusLine().getStatusCode());
584         httpGet.releaseConnection();
585
586         httpGet = new HttpGet(HOST_URL + "/engine/controllers/nonexistantcontroller/decoders/filters");
587         response = client.execute(httpGet);
588         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
589         assertEquals(404, response.getStatusLine().getStatusCode());
590         httpGet.releaseConnection();
591
592         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/topic");
593         response = client.execute(httpGet);
594         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
595         assertEquals(404, response.getStatusLine().getStatusCode());
596         httpGet.releaseConnection();
597
598         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/topic/filters");
599         response = client.execute(httpGet);
600         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
601         assertEquals(404, response.getStatusLine().getStatusCode());
602         httpGet.releaseConnection();
603
604         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/topic/filters/factType");
605         response = client.execute(httpGet);
606         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
607         assertEquals(404, response.getStatusLine().getStatusCode());
608         httpGet.releaseConnection();
609
610         httpGet = new HttpGet(
611                 HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/topic/filters/factType/rules");
612         response = client.execute(httpGet);
613         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
614         assertEquals(404, response.getStatusLine().getStatusCode());
615         httpGet.releaseConnection();
616
617         httpGet = new HttpGet(
618                 HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/decoders/topic/filters/factType/rules/ruleName");
619         response = client.execute(httpGet);
620         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
621         assertEquals(404, response.getStatusLine().getStatusCode());
622         httpGet.releaseConnection();
623
624         httpGet = new HttpGet(HOST_URL + "/engine/controllers/" + FOO_CONTROLLER + "/encoders");
625         response = client.execute(httpGet);
626         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
627         assertEquals(200, response.getStatusLine().getStatusCode());
628         httpGet.releaseConnection();
629
630         /*
631          * GET: /engine/topics /engine/topics/switches /engine/topics/sources /engine/topics/sinks
632          * /engine/topics/sinks/ueb /engine/topics/sources/ueb /engine/topics/sinks/dmaap
633          * /engine/topics/sources/dmaap /engine/topics/sinks/ueb/topic
634          * /engine/topics/sources/ueb/topic /engine/topics/sinks/dmaap/topic
635          * /engine/topics/sources/dmaap/topic /engine/topics/sinks/ueb/topic/events
636          * /engine/topics/sources/ueb/topic/events /engine/topics/sinks/dmaap/topic/events
637          * /engine/topics/sources/dmaap/topic/events /engine/topics/sources/ueb/topic/switches
638          * /engine/topics/sources/dmaap/topic/switches
639          */
640         httpGet = new HttpGet(HOST_URL + "/engine/topics");
641         response = client.execute(httpGet);
642         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
643         assertEquals(200, response.getStatusLine().getStatusCode());
644         httpGet.releaseConnection();
645
646         httpGet = new HttpGet(HOST_URL + "/engine/topics/switches");
647         response = client.execute(httpGet);
648         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
649         assertEquals(200, response.getStatusLine().getStatusCode());
650         httpGet.releaseConnection();
651
652         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources");
653         response = client.execute(httpGet);
654         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
655         assertEquals(200, response.getStatusLine().getStatusCode());
656         httpGet.releaseConnection();
657
658         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks");
659         response = client.execute(httpGet);
660         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
661         assertEquals(200, response.getStatusLine().getStatusCode());
662         httpGet.releaseConnection();
663
664         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb");
665         response = client.execute(httpGet);
666         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
667         assertEquals(200, response.getStatusLine().getStatusCode());
668         httpGet.releaseConnection();
669
670         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb");
671         response = client.execute(httpGet);
672         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
673         assertEquals(200, response.getStatusLine().getStatusCode());
674         httpGet.releaseConnection();
675
676         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap");
677         response = client.execute(httpGet);
678         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
679         assertEquals(200, response.getStatusLine().getStatusCode());
680         httpGet.releaseConnection();
681
682         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap");
683         response = client.execute(httpGet);
684         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
685         assertEquals(200, response.getStatusLine().getStatusCode());
686         httpGet.releaseConnection();
687
688         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop");
689         response = client.execute(httpGet);
690         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
691         assertEquals(200, response.getStatusLine().getStatusCode());
692         httpGet.releaseConnection();
693
694         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop");
695         response = client.execute(httpGet);
696         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
697         assertEquals(200, response.getStatusLine().getStatusCode());
698         httpGet.releaseConnection();
699
700         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb/" + UEB_TOPIC);
701         response = client.execute(httpGet);
702         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
703         assertEquals(200, response.getStatusLine().getStatusCode());
704         httpGet.releaseConnection();
705
706         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb/foobar");
707         response = client.execute(httpGet);
708         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
709         assertEquals(500, response.getStatusLine().getStatusCode());
710         httpGet.releaseConnection();
711
712         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb/" + UEB_TOPIC);
713         response = client.execute(httpGet);
714         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
715         assertEquals(200, response.getStatusLine().getStatusCode());
716         httpGet.releaseConnection();
717
718         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb/foobar");
719         response = client.execute(httpGet);
720         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
721         assertEquals(500, response.getStatusLine().getStatusCode());
722         httpGet.releaseConnection();
723
724         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap/" + DMAAP_TOPIC);
725         response = client.execute(httpGet);
726         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
727         assertEquals(200, response.getStatusLine().getStatusCode());
728         httpGet.releaseConnection();
729
730         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap/foobar");
731         response = client.execute(httpGet);
732         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
733         assertEquals(500, response.getStatusLine().getStatusCode());
734         httpGet.releaseConnection();
735
736         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap/" + DMAAP_TOPIC);
737         response = client.execute(httpGet);
738         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
739         assertEquals(200, response.getStatusLine().getStatusCode());
740         httpGet.releaseConnection();
741
742         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap/foobar");
743         response = client.execute(httpGet);
744         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
745         assertEquals(500, response.getStatusLine().getStatusCode());
746         httpGet.releaseConnection();
747
748         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop/" + NOOP_TOPIC);
749         response = client.execute(httpGet);
750         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
751         assertEquals(200, response.getStatusLine().getStatusCode());
752         httpGet.releaseConnection();
753
754         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop/foobar");
755         response = client.execute(httpGet);
756         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
757         assertEquals(500, response.getStatusLine().getStatusCode());
758         httpGet.releaseConnection();
759
760         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop/" + NOOP_TOPIC);
761         response = client.execute(httpGet);
762         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
763         assertEquals(200, response.getStatusLine().getStatusCode());
764         httpGet.releaseConnection();
765
766         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop/foobar");
767         response = client.execute(httpGet);
768         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
769         assertEquals(500, response.getStatusLine().getStatusCode());
770         httpGet.releaseConnection();
771
772         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb/" + UEB_TOPIC + "/events");
773         response = client.execute(httpGet);
774         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
775         assertEquals(200, response.getStatusLine().getStatusCode());
776         httpGet.releaseConnection();
777
778         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb/foobar/events");
779         response = client.execute(httpGet);
780         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
781         assertEquals(500, response.getStatusLine().getStatusCode());
782         httpGet.releaseConnection();
783
784         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb/" + UEB_TOPIC + "/events");
785         response = client.execute(httpGet);
786         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
787         assertEquals(200, response.getStatusLine().getStatusCode());
788         httpGet.releaseConnection();
789
790         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb/foobar/events");
791         response = client.execute(httpGet);
792         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
793         assertEquals(500, response.getStatusLine().getStatusCode());
794         httpGet.releaseConnection();
795
796         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap/" + DMAAP_TOPIC + "/events");
797         response = client.execute(httpGet);
798         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
799         assertEquals(200, response.getStatusLine().getStatusCode());
800         httpGet.releaseConnection();
801
802         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap/foobar/events");
803         response = client.execute(httpGet);
804         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
805         assertEquals(500, response.getStatusLine().getStatusCode());
806         httpGet.releaseConnection();
807
808         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap/" + DMAAP_TOPIC + "/events");
809         response = client.execute(httpGet);
810         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
811         assertEquals(200, response.getStatusLine().getStatusCode());
812         httpGet.releaseConnection();
813
814         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap/foobar/events");
815         response = client.execute(httpGet);
816         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
817         assertEquals(500, response.getStatusLine().getStatusCode());
818         httpGet.releaseConnection();
819
820         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop/" + NOOP_TOPIC + "/events");
821         response = client.execute(httpGet);
822         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
823         assertEquals(200, response.getStatusLine().getStatusCode());
824         httpGet.releaseConnection();
825
826         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop/foobar/events");
827         response = client.execute(httpGet);
828         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
829         assertEquals(500, response.getStatusLine().getStatusCode());
830         httpGet.releaseConnection();
831
832         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop/" + NOOP_TOPIC + "/events");
833         response = client.execute(httpGet);
834         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
835         assertEquals(200, response.getStatusLine().getStatusCode());
836         httpGet.releaseConnection();
837
838         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop/foobar/events");
839         response = client.execute(httpGet);
840         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
841         assertEquals(500, response.getStatusLine().getStatusCode());
842         httpGet.releaseConnection();
843
844         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/ueb/" + UEB_TOPIC + "/switches");
845         response = client.execute(httpGet);
846         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
847         assertEquals(200, response.getStatusLine().getStatusCode());
848         httpGet.releaseConnection();
849
850         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/dmaap/" + DMAAP_TOPIC + "/switches");
851         response = client.execute(httpGet);
852         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
853         assertEquals(200, response.getStatusLine().getStatusCode());
854         httpGet.releaseConnection();
855
856         httpGet = new HttpGet(HOST_URL + "/engine/topics/sources/noop/" + NOOP_TOPIC + "/switches");
857         response = client.execute(httpGet);
858         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
859         assertEquals(200, response.getStatusLine().getStatusCode());
860         httpGet.releaseConnection();
861
862         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/ueb/" + UEB_TOPIC + "/switches");
863         response = client.execute(httpGet);
864         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
865         assertEquals(200, response.getStatusLine().getStatusCode());
866         httpGet.releaseConnection();
867
868         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/dmaap/" + DMAAP_TOPIC + "/switches");
869         response = client.execute(httpGet);
870         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
871         assertEquals(200, response.getStatusLine().getStatusCode());
872         httpGet.releaseConnection();
873
874         httpGet = new HttpGet(HOST_URL + "/engine/topics/sinks/noop/" + NOOP_TOPIC + "/switches");
875         response = client.execute(httpGet);
876         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
877         assertEquals(200, response.getStatusLine().getStatusCode());
878         httpGet.releaseConnection();
879
880         /*
881          * GET: /engine/tools/uuid /engine/tools/loggers /engine/tools/loggers/loggerName
882          */
883         httpGet = new HttpGet(HOST_URL + "/engine/tools/uuid");
884         response = client.execute(httpGet);
885         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
886         assertEquals(200, response.getStatusLine().getStatusCode());
887         httpGet.releaseConnection();
888
889         httpGet = new HttpGet(HOST_URL + "/engine/tools/loggers");
890         response = client.execute(httpGet);
891         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
892         assertEquals(200, response.getStatusLine().getStatusCode());
893         httpGet.releaseConnection();
894
895         httpGet = new HttpGet(HOST_URL + "/engine/tools/loggers/ROOT");
896         response = client.execute(httpGet);
897         logger.info(httpGet.getRequestLine() + " response code: {}", response.getStatusLine().getStatusCode());
898         assertEquals(200, response.getStatusLine().getStatusCode());
899         httpGet.releaseConnection();
900     }
901
902     /**
903      * Get response body.
904      *
905      * @param response incoming response
906      * @return the body or null
907      */
908     private String getResponseBody(CloseableHttpResponse response) {
909
910         HttpEntity entity;
911         try {
912             entity = response.getEntity();
913             return EntityUtils.toString(entity);
914
915         } catch (final IOException e) {
916             logger.info(e.toString());
917         }
918
919         return null;
920     }
921
922     private static void cleanUpWorkingDirs() throws IOException {
923         final Path testControllerPath = Paths.get(
924                         SystemPersistenceConstants.getManager().getConfigurationPath().toString(), FOO_CONTROLLER_FILE);
925         final Path testControllerBakPath =
926                         Paths.get(SystemPersistenceConstants.getManager().getConfigurationPath().toString(),
927                                         FOO_CONTROLLER_FILE_BAK);
928
929         Files.deleteIfExists(testControllerPath);
930         Files.deleteIfExists(testControllerBakPath);
931     }
932
933 }