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