2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020-2022 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.gui.editors.apex.rest.handling;
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.junit.jupiter.api.Assertions.assertNotNull;
26 import static org.springframework.http.MediaType.APPLICATION_JSON;
27 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
28 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
29 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
30 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
32 import org.junit.jupiter.api.Test;
33 import org.onap.policy.apex.model.modelapi.ApexApiResult;
34 import org.onap.policy.apex.model.modelapi.ApexApiResult.Result;
35 import org.onap.policy.common.utils.coder.StandardCoder;
36 import org.onap.policy.common.utils.resources.TextFileUtils;
37 import org.onap.policy.gui.editors.apex.ApexEditor;
38 import org.springframework.beans.factory.annotation.Autowired;
39 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
40 import org.springframework.boot.test.context.SpringBootTest;
41 import org.springframework.test.web.servlet.MockMvc;
42 import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
45 * Test Apex Editor Rest Resource.
47 * @author Liam Fallon (liam.fallon@ericsson.com)
49 @SpringBootTest(classes = ApexEditor.class)
51 class ApexEditorRestResourceTest {
53 private static final String BASE_URL = "/policy/gui/v1/apex/editor/{sessionId}";
59 private RestSessionHandler sessionHandler;
62 void testSessionCreate() throws Exception {
63 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -2));
64 assertEquals(Result.FAILED, result.getResult());
66 result = apexRequest(get(BASE_URL + "/Session/Create", -1));
67 assertEquals(Result.SUCCESS, result.getResult());
68 final int sessionId = Integer.parseInt(result.getMessages().get(0));
70 result = apexRequest(get(BASE_URL + "/Session/Create", -1));
71 assertEquals(Result.SUCCESS, result.getResult());
73 final int corruptSessionId = createCorruptSession();
75 apexRequest(get(BASE_URL + "/Model/Analyse", corruptSessionId));
77 result = apexRequest(get(BASE_URL + "/Model/Analyse", sessionId));
78 assertEquals(Result.SUCCESS, result.getResult());
79 result = apexRequest(get(BASE_URL + "/Model/Analyse", -12345));
80 assertEquals(Result.FAILED, result.getResult());
81 result = apexRequest(get(BASE_URL + "/Model/Analyse", 12345));
82 assertEquals(Result.FAILED, result.getResult());
84 apexRequest(get(BASE_URL + "/Model/Validate", corruptSessionId));
86 result = apexRequest(get(BASE_URL + "/Model/Validate", sessionId));
87 assertEquals(Result.FAILED, result.getResult());
88 result = apexRequest(get(BASE_URL + "/Model/Validate", -12345));
89 assertEquals(Result.FAILED, result.getResult());
90 result = apexRequest(get(BASE_URL + "/Model/Validate", 12345));
91 assertEquals(Result.FAILED, result.getResult());
93 final String modelString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
94 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002699\","
95 + "\"description\" : \"A description of the model\"" + "}";
96 result = apexRequest(post(BASE_URL + "/Model/Create", -12345)
97 .content(modelString).contentType(APPLICATION_JSON));
98 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
99 result = apexRequest(post(BASE_URL + "/Model/Create", -12345)
100 .content(modelString).contentType(APPLICATION_JSON));
101 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
102 result = apexRequest(post(BASE_URL + "/Model/Create", 1234545)
103 .content(modelString).contentType(APPLICATION_JSON));
104 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
105 result = apexRequest(post(BASE_URL + "/Model/Create", sessionId)
106 .content(modelString).contentType(APPLICATION_JSON));
107 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
109 apexRequest(post(BASE_URL + "/Model/Create", corruptSessionId)
110 .content(modelString).contentType(APPLICATION_JSON));
112 result = apexRequest(put(BASE_URL + "/Model/Update", -12345)
113 .content(modelString).contentType(APPLICATION_JSON));
114 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
115 result = apexRequest(put(BASE_URL + "/Model/Update", -12345)
116 .content(modelString).contentType(APPLICATION_JSON));
117 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
118 result = apexRequest(put(BASE_URL + "/Model/Update", 1234545)
119 .content(modelString).contentType(APPLICATION_JSON));
120 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
121 result = apexRequest(put(BASE_URL + "/Model/Update", sessionId)
122 .content(modelString).contentType(APPLICATION_JSON));
123 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
125 apexRequest(put(BASE_URL + "/Model/Update", corruptSessionId)
126 .content(modelString).contentType(APPLICATION_JSON));
128 apexRequest(get(BASE_URL + "/Model/GetKey", corruptSessionId));
130 result = apexRequest(get(BASE_URL + "/Model/GetKey", sessionId));
131 assertEquals(Result.SUCCESS, result.getResult());
132 result = apexRequest(get(BASE_URL + "/Model/GetKey", -12345));
133 assertEquals(Result.FAILED, result.getResult());
134 result = apexRequest(get(BASE_URL + "/Model/GetKey", 12345));
135 assertEquals(Result.FAILED, result.getResult());
137 apexRequest(get(BASE_URL + "/Model/Get", corruptSessionId));
139 result = apexRequest(get(BASE_URL + "/Model/Get", sessionId));
140 assertEquals(Result.SUCCESS, result.getResult());
141 result = apexRequest(get(BASE_URL + "/Model/Get", -12345));
142 assertEquals(Result.FAILED, result.getResult());
143 result = apexRequest(get(BASE_URL + "/Model/Get", 12345));
144 assertEquals(Result.FAILED, result.getResult());
146 String resultString = requestString(get(BASE_URL + "/Model/Download", corruptSessionId));
147 assertEquals("", resultString);
149 resultString = requestString(get(BASE_URL + "/Model/Download", sessionId));
150 assertNotNull(resultString);
154 void testSessionCreateExt() throws Exception {
155 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
157 final int sessionId = Integer.parseInt(result.getMessages().get(0));
158 apexRequest(get(BASE_URL + "/Session/Create", -1));
159 final int corruptSessionId = createCorruptSession();
161 String resultString = requestString(get(BASE_URL + "/Model/Download", -12345));
162 assertEquals("", resultString);
164 resultString = requestString(get(BASE_URL + "/Model/Download", 12345));
165 assertEquals("", resultString);
167 apexRequest(get(BASE_URL + "/KeyInformation/Get", corruptSessionId));
169 result = apexRequest(get(BASE_URL + "/KeyInformation/Get", sessionId));
170 assertEquals(Result.SUCCESS, result.getResult());
171 result = apexRequest(get(BASE_URL + "/KeyInformation/Get", -12345));
172 assertEquals(Result.FAILED, result.getResult());
173 result = apexRequest(get(BASE_URL + "/KeyInformation/Get", 12345));
174 assertEquals(Result.FAILED, result.getResult());
176 apexRequest(delete(BASE_URL + "/Model/Delete", corruptSessionId));
178 result = apexRequest(delete(BASE_URL + "/Model/Delete", sessionId));
179 assertEquals(Result.SUCCESS, result.getResult());
180 result = apexRequest(delete(BASE_URL + "/Model/Delete", -12345));
181 assertEquals(Result.FAILED, result.getResult());
182 result = apexRequest(delete(BASE_URL + "/Model/Delete", 12345));
183 assertEquals(Result.FAILED, result.getResult());
187 void testContextSchema() throws Exception {
188 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
189 assertEquals(Result.SUCCESS, result.getResult());
190 final int sessionId = Integer.parseInt(result.getMessages().get(0));
192 final int corruptSessionId = createCorruptSession();
194 result = apexRequest(get(BASE_URL + "/Validate/ContextSchema", -12345));
195 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
197 apexRequest(get(BASE_URL + "/Validate/ContextSchema", corruptSessionId));
199 result = apexRequest(get(BASE_URL + "/Validate/ContextSchema", sessionId));
200 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
202 result = apexRequest(get(BASE_URL + "/Validate/ContextSchema", sessionId)
203 .queryParam("name", (String) null)
204 .queryParam("version", (String) null));
205 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
207 result = apexRequest(get(BASE_URL + "/Validate/ContextSchema", sessionId)
208 .queryParam("name", "%%%$£")
209 .queryParam("version", (String) null));
210 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
212 String modelString = "Somewhere over the rainbow";
213 result = apexRequest(put(BASE_URL + "/Model/Load", -12345)
214 .content(modelString)
215 .contentType(APPLICATION_JSON));
216 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
217 result = apexRequest(put(BASE_URL + "/Model/Load", 12345)
218 .content(modelString).contentType(APPLICATION_JSON));
219 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
220 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
221 .content(modelString).contentType(APPLICATION_JSON));
222 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
224 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
225 .content(modelString).contentType(APPLICATION_JSON));
226 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
227 modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
228 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
229 .content(modelString).contentType(APPLICATION_JSON));
230 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
231 result = apexRequest(get(BASE_URL + "/ContextSchema/Get", sessionId)
232 .queryParam("name", (String) null)
233 .queryParam("version", (String) null));
234 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
236 apexRequest(get(BASE_URL + "/ContextSchema/Get", corruptSessionId)
237 .queryParam("name", (String) null)
238 .queryParam("version", (String) null));
240 String csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
241 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"java.lang.String\","
242 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
243 + "\"description\" : \"A description of hello\"" + "}";
244 result = apexRequest(post(BASE_URL + "/ContextSchema/Create", -12345)
245 .content(csString).contentType(APPLICATION_JSON));
246 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
247 result = apexRequest(post(BASE_URL + "/ContextSchema/Create", 1234545)
248 .content(csString).contentType(APPLICATION_JSON));
249 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
250 result = apexRequest(post(BASE_URL + "/ContextSchema/Create", sessionId)
251 .content(csString).contentType(APPLICATION_JSON));
252 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
254 apexRequest(post(BASE_URL + "/ContextSchema/Create", corruptSessionId)
255 .content(csString).contentType(APPLICATION_JSON));
257 csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
258 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"my.perfect.String\","
259 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
260 + "\"description\" : \"A description of hello\"" + "}";
261 result = apexRequest(put(BASE_URL + "/ContextSchema/Update", -12345)
262 .content(csString).contentType(APPLICATION_JSON));
263 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
264 result = apexRequest(put(BASE_URL + "/ContextSchema/Update", 1234545)
265 .content(csString).contentType(APPLICATION_JSON));
266 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
267 result = apexRequest(put(BASE_URL + "/ContextSchema/Update", sessionId)
268 .content(csString).contentType(APPLICATION_JSON));
269 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
271 apexRequest(put(BASE_URL + "/ContextSchema/Update", corruptSessionId)
272 .content(csString).contentType(APPLICATION_JSON));
274 result = apexRequest(get(BASE_URL + "/ContextSchema/Get", sessionId)
275 .queryParam("name", "Hello")
276 .queryParam("version", (String) null));
277 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
278 result = apexRequest(get(BASE_URL + "/ContextSchema/Get", sessionId)
279 .queryParam("name", "NonExistant")
280 .queryParam("version", (String) null));
281 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
282 result = apexRequest(get(BASE_URL + "/ContextSchema/Get", -123345)
283 .queryParam("name", (String) null)
284 .queryParam("version", (String) null));
285 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
286 result = apexRequest(get(BASE_URL + "/ContextSchema/Get", 123345)
287 .queryParam("name", (String) null)
288 .queryParam("version", (String) null));
289 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
291 apexRequest(get(BASE_URL + "/ContextSchema/Get", corruptSessionId)
292 .queryParam("name", "Hello")
293 .queryParam("version", (String) null));
295 result = apexRequest(get(BASE_URL + "/Validate/ContextSchema", sessionId)
296 .queryParam("name", (String) null)
297 .queryParam("version", (String) null));
298 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
300 apexRequest(delete(BASE_URL + "/ContextSchema/Delete", corruptSessionId)
301 .queryParam("name", "Hello")
302 .queryParam("version", "0.0.2"));
304 result = apexRequest(delete(BASE_URL + "/ContextSchema/Delete", -123345)
305 .queryParam("name", (String) null)
306 .queryParam("version", (String) null));
307 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
308 result = apexRequest(delete(BASE_URL + "/ContextSchema/Delete", 123345)
309 .queryParam("name", (String) null)
310 .queryParam("version", (String) null));
311 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
312 result = apexRequest(delete(BASE_URL + "/ContextSchema/Delete", sessionId)
313 .queryParam("name", "Hello")
314 .queryParam("version", "0.0.2"));
315 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
319 void testContextSchemaExt() throws Exception {
320 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
321 final int sessionId = Integer.parseInt(result.getMessages().get(0));
322 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
324 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
325 .content(modelString).contentType(APPLICATION_JSON));
326 apexRequest(get(BASE_URL + "/ContextSchema/Get", sessionId)
327 .queryParam("name", (String) null)
328 .queryParam("version", (String) null));
330 result = apexRequest(delete(BASE_URL + "/ContextSchema/Delete", sessionId)
331 .queryParam("name", (String) null)
332 .queryParam("version", (String) null));
333 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
337 void testContextAlbum() throws Exception {
338 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
339 assertEquals(Result.SUCCESS, result.getResult());
340 final int sessionId = Integer.parseInt(result.getMessages().get(0));
341 final int corruptSessionId = createCorruptSession();
343 result = apexRequest(get(BASE_URL + "/Validate/ContextAlbum", -12345));
344 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
346 apexRequest(get(BASE_URL + "/Validate/ContextAlbum", corruptSessionId));
348 result = apexRequest(get(BASE_URL + "/Validate/ContextAlbum", sessionId));
349 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
351 result = apexRequest(get(BASE_URL + "/Validate/ContextAlbum", sessionId)
352 .queryParam("name", (String) null)
353 .queryParam("version", (String) null));
354 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
356 result = apexRequest(get(BASE_URL + "/Validate/ContextAlbum", sessionId)
357 .queryParam("name", "%%%$£")
358 .queryParam("version", (String) null));
359 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
361 String modelString = "Somewhere over the rainbow";
362 result = apexRequest(put(BASE_URL + "/Model/Load", -12345)
363 .content(modelString).contentType(APPLICATION_JSON));
364 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
365 result = apexRequest(put(BASE_URL + "/Model/Load", 12345)
366 .content(modelString).contentType(APPLICATION_JSON));
367 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
368 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
369 .content(modelString).contentType(APPLICATION_JSON));
370 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
372 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
373 .content(modelString).contentType(APPLICATION_JSON));
374 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
375 modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
376 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
377 .content(modelString).contentType(APPLICATION_JSON));
378 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
379 result = apexRequest(get(BASE_URL + "/ContextAlbum/Get", sessionId)
380 .queryParam("name", (String) null)
381 .queryParam("version", (String) null));
382 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
384 String caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
385 + "\"scope\" : \"Domain\"," + "\"writeable\" : false,"
386 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
387 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
388 + "\"description\" : \"A description of hello\"" + "}";
389 result = apexRequest(post(BASE_URL + "/ContextAlbum/Create", -12345)
390 .content(caString).contentType(APPLICATION_JSON));
391 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
392 result = apexRequest(post(BASE_URL + "/ContextAlbum/Create", 1234545)
393 .content(caString).contentType(APPLICATION_JSON));
394 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
395 result = apexRequest(post(BASE_URL + "/ContextAlbum/Create", sessionId)
396 .content(caString).contentType(APPLICATION_JSON));
397 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
399 apexRequest(post(BASE_URL + "/ContextAlbum/Create", corruptSessionId)
400 .content(caString).contentType(APPLICATION_JSON));
402 caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
403 + "\"scope\" : \"Global\"," + "\"writeable\" : false,"
404 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
405 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
406 + "\"description\" : \"A description of hello\"" + "}";
407 result = apexRequest(put(BASE_URL + "/ContextAlbum/Update", -12345)
408 .content(caString).contentType(APPLICATION_JSON));
409 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
410 result = apexRequest(put(BASE_URL + "/ContextAlbum/Update", 1234545)
411 .content(caString).contentType(APPLICATION_JSON));
412 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
413 result = apexRequest(put(BASE_URL + "/ContextAlbum/Update", sessionId)
414 .content(caString).contentType(APPLICATION_JSON));
415 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
417 apexRequest(put(BASE_URL + "/ContextAlbum/Update", corruptSessionId)
418 .content(caString).contentType(APPLICATION_JSON));
420 apexRequest(get(BASE_URL + "/ContextAlbum/Get", corruptSessionId)
421 .queryParam("name", "Hello")
422 .queryParam("version", (String) null));
424 result = apexRequest(get(BASE_URL + "/ContextAlbum/Get", sessionId)
425 .queryParam("name", "Hello")
426 .queryParam("version", (String) null));
427 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
428 result = apexRequest(get(BASE_URL + "/ContextAlbum/Get", sessionId)
429 .queryParam("name", "IDontExist")
430 .queryParam("version", (String) null));
431 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
432 result = apexRequest(get(BASE_URL + "/ContextAlbum/Get", -123345)
433 .queryParam("name", (String) null)
434 .queryParam("version", (String) null));
435 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
436 result = apexRequest(get(BASE_URL + "/ContextAlbum/Get", 123345)
437 .queryParam("name", (String) null)
438 .queryParam("version", (String) null));
439 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
441 result = apexRequest(get(BASE_URL + "/Validate/ContextAlbum", sessionId)
442 .queryParam("name", (String) null)
443 .queryParam("version", (String) null));
444 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
446 apexRequest(delete(BASE_URL + "/ContextAlbum/Delete", corruptSessionId)
447 .queryParam("name", (String) null)
448 .queryParam("version", (String) null));
450 result = apexRequest(delete(BASE_URL + "/ContextAlbum/Delete", -123345)
451 .queryParam("name", (String) null)
452 .queryParam("version", (String) null));
453 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
454 result = apexRequest(delete(BASE_URL + "/ContextAlbum/Delete", 123345)
455 .queryParam("name", (String) null)
456 .queryParam("version", (String) null));
457 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
458 result = apexRequest(delete(BASE_URL + "/ContextAlbum/Delete", sessionId)
459 .queryParam("name", "Hello")
460 .queryParam("version", "0.0.2"));
461 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
465 void testContextAlbumExt() throws Exception {
466 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
467 final int sessionId = Integer.parseInt(result.getMessages().get(0));
469 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
471 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
472 .content(modelString).contentType(APPLICATION_JSON));
473 apexRequest(get(BASE_URL + "/ContextAlbum/Get", sessionId)
474 .queryParam("name", (String) null)
475 .queryParam("version", (String) null));
477 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
481 void testEvent() throws Exception {
482 final int corruptSessionId = createCorruptSession();
484 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
485 assertEquals(Result.SUCCESS, result.getResult());
486 final int sessionId = Integer.parseInt(result.getMessages().get(0));
488 result = apexRequest(get(BASE_URL + "/Validate/Event", -12345));
489 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
491 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId));
492 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
494 apexRequest(get(BASE_URL + "/Validate/Event", corruptSessionId));
496 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId)
497 .queryParam("name", (String) null)
498 .queryParam("version", (String) null));
499 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
501 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId)
502 .queryParam("name", "%%%$£")
503 .queryParam("version", (String) null));
504 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
506 String modelString = "Somewhere over the rainbow";
507 result = apexRequest(put(BASE_URL + "/Model/Load", -12345)
508 .content(modelString).contentType(APPLICATION_JSON));
509 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
510 result = apexRequest(put(BASE_URL + "/Model/Load", 12345)
511 .content(modelString).contentType(APPLICATION_JSON));
512 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
513 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
514 .content(modelString).contentType(APPLICATION_JSON));
515 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
517 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
518 .content(modelString).contentType(APPLICATION_JSON));
519 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
520 modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.yaml");
521 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
522 .content(modelString).contentType(APPLICATION_JSON));
523 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
524 result = apexRequest(get(BASE_URL + "/Event/Get", sessionId)
525 .queryParam("name", (String) null)
526 .queryParam("version", (String) null));
527 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
529 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
530 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
531 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
532 + "\"description\" : \"A description of hello\"" + "}";
533 result = apexRequest(post(BASE_URL + "/Event/Create", -12345)
534 .content(entityString).contentType(APPLICATION_JSON));
535 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
536 result = apexRequest(post(BASE_URL + "/Event/Create", 1234545)
537 .content(entityString).contentType(APPLICATION_JSON));
538 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
539 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
540 .content(entityString).contentType(APPLICATION_JSON));
541 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
542 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
543 .content(entityString).contentType(APPLICATION_JSON));
544 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
546 apexRequest(post(BASE_URL + "/Event/Create", corruptSessionId)
547 .content(entityString).contentType(APPLICATION_JSON));
549 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
550 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
551 + "\"target\" : \"end\"," + "\"parameters\" : {},"
552 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
553 + "\"description\" : \"A description of hello\"" + "}";
554 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
555 .content(entityString).contentType(APPLICATION_JSON));
556 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
558 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
559 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
560 + "\"target\" : \"end\","
561 + "\"parameters\" : {\"Par0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
562 + "\"localName\" : \"Par0\", \"optional\" : false}},"
563 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
564 + "\"description\" : \"A description of hello\"" + "}";
565 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
566 .content(entityString).contentType(APPLICATION_JSON));
567 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
569 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
570 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
571 + "\"target\" : \"end\"," + "\"parameters\" : {\"Par0\" : null},"
572 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
573 + "\"description\" : \"A description of hello\"" + "}";
574 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
575 .content(entityString).contentType(APPLICATION_JSON));
576 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
578 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
579 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
580 + "\"target\" : \"end\","
581 + "\"parameters\" : {\"Par0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
582 + "\"localName\" : \"Par0\", \"optional\" : false}},"
583 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
584 + "\"description\" : \"A description of hello\"" + "}";
585 result = apexRequest(post(BASE_URL + "/Event/Create", sessionId)
586 .content(entityString).contentType(APPLICATION_JSON));
587 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
589 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
590 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
591 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
592 + "\"description\" : \"A description of hello\"" + "}";
593 result = apexRequest(put(BASE_URL + "/Event/Update", -12345)
594 .content(entityString).contentType(APPLICATION_JSON));
595 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
596 result = apexRequest(put(BASE_URL + "/Event/Update", 1234545)
597 .content(entityString).contentType(APPLICATION_JSON));
598 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
599 result = apexRequest(put(BASE_URL + "/Event/Update", sessionId)
600 .content(entityString).contentType(APPLICATION_JSON));
601 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
603 apexRequest(put(BASE_URL + "/Event/Update", corruptSessionId)
604 .content(entityString).contentType(APPLICATION_JSON));
606 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
607 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
608 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
609 + "\"description\" : \"A description of hello\"" + "}";
610 result = apexRequest(put(BASE_URL + "/Event/Update", sessionId)
611 .content(entityString).contentType(APPLICATION_JSON));
612 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
614 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
615 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
616 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
617 + "\"description\" : \"A description of hello\"" + "}";
618 result = apexRequest(put(BASE_URL + "/Event/Update", sessionId)
619 .content(entityString).contentType(APPLICATION_JSON));
620 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
622 result = apexRequest(get(BASE_URL + "/Event/Get", sessionId)
623 .queryParam("name", "Hello")
624 .queryParam("version", (String) null));
625 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
629 void testEventExt() throws Exception {
630 final int corruptSessionId = createCorruptSession();
632 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
633 final int sessionId = Integer.parseInt(result.getMessages().get(0));
635 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
636 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
637 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
638 + "\"description\" : \"A description of hello\"" + "}";
639 apexRequest(post(BASE_URL + "/Event/Create", sessionId)
640 .content(entityString).contentType(APPLICATION_JSON));
642 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
643 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
644 + "\"target\" : \"end\"," + "\"parameters\" : {},"
645 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
646 + "\"description\" : \"A description of hello\"" + "}";
648 apexRequest(post(BASE_URL + "/Event/Create", sessionId)
649 .content(entityString).contentType(APPLICATION_JSON));
650 apexRequest(post(BASE_URL + "/Event/Create", corruptSessionId)
651 .content(entityString).contentType(APPLICATION_JSON));
652 apexRequest(put(BASE_URL + "/Event/Update", sessionId)
653 .content(entityString).contentType(APPLICATION_JSON));
654 result = apexRequest(get(BASE_URL + "/Event/Get", sessionId)
655 .queryParam("name", "IDontExist")
656 .queryParam("version", (String) null));
657 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
658 result = apexRequest(get(BASE_URL + "/Event/Get", -123345)
659 .queryParam("name", (String) null)
660 .queryParam("version", (String) null));
661 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
662 result = apexRequest(get(BASE_URL + "/Event/Get", 123345)
663 .queryParam("name", (String) null)
664 .queryParam("version", (String) null));
665 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
667 apexRequest(get(BASE_URL + "/Event/Get", corruptSessionId)
668 .queryParam("name", "Hello")
669 .queryParam("version", (String) null));
671 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId)
672 .queryParam("name", (String) null)
673 .queryParam("version", (String) null));
674 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
675 result = apexRequest(get(BASE_URL + "/Validate/Event", -12345)
676 .queryParam("name", (String) null)
677 .queryParam("version", (String) null));
678 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
679 result = apexRequest(get(BASE_URL + "/Validate/Event", 12345)
680 .queryParam("name", (String) null)
681 .queryParam("version", (String) null));
682 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
684 apexRequest(delete(BASE_URL + "/Event/Delete", corruptSessionId)
685 .queryParam("name", (String) null)
686 .queryParam("version", (String) null));
688 result = apexRequest(delete(BASE_URL + "/Event/Delete", -123345)
689 .queryParam("name", (String) null)
690 .queryParam("version", (String) null));
691 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
692 result = apexRequest(delete(BASE_URL + "/Event/Delete", 123345)
693 .queryParam("name", (String) null)
694 .queryParam("version", (String) null));
695 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
696 result = apexRequest(delete(BASE_URL + "/Event/Delete", sessionId)
697 .queryParam("name", "Hello")
698 .queryParam("version", "0.0.2"));
699 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
700 result = apexRequest(delete(BASE_URL + "/Event/Delete", sessionId)
701 .queryParam("name", (String) null)
702 .queryParam("version", (String) null));
703 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
707 void testTask() throws Exception {
708 final int corruptSessionId = createCorruptSession();
710 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
711 assertEquals(Result.SUCCESS, result.getResult());
712 final int sessionId = Integer.parseInt(result.getMessages().get(0));
714 result = apexRequest(get(BASE_URL + "/Validate/Task", -12345));
715 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
717 result = apexRequest(get(BASE_URL + "/Validate/Task", sessionId));
718 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
721 apexRequest(get(BASE_URL + "/Validate/Task", corruptSessionId));
722 } catch (final Exception e) {
723 assertEquals("HTTP 500 Request failed.", e.getMessage());
726 result = apexRequest(get(BASE_URL + "/Validate/Task", sessionId)
727 .queryParam("name", (String) null)
728 .queryParam("version", (String) null));
729 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
731 result = apexRequest(get(BASE_URL + "/Validate/Task", sessionId)
732 .queryParam("name", "%%%$£")
733 .queryParam("version", (String) null));
734 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
736 String modelString = "Somewhere over the rainbow";
737 result = apexRequest(put(BASE_URL + "/Model/Load", -12345)
738 .content(modelString).contentType(APPLICATION_JSON));
739 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
740 result = apexRequest(put(BASE_URL + "/Model/Load", 12345)
741 .content(modelString).contentType(APPLICATION_JSON));
742 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
743 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
744 .content(modelString).contentType(APPLICATION_JSON));
745 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
747 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
748 .content(modelString).contentType(APPLICATION_JSON));
749 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
750 modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
751 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
752 .content(modelString).contentType(APPLICATION_JSON));
753 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
754 result = apexRequest(get(BASE_URL + "/Event/Get", sessionId)
755 .queryParam("name", (String) null)
756 .queryParam("version", (String) null));
757 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
759 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
760 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
761 + "\"description\" : \"A description of hello\"" + "}";
762 result = apexRequest(post(BASE_URL + "/Task/Create", -12345)
763 .content(entityString).contentType(APPLICATION_JSON));
764 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
765 result = apexRequest(post(BASE_URL + "/Task/Create", 1234545)
766 .content(entityString).contentType(APPLICATION_JSON));
767 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
768 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
769 .content(entityString).contentType(APPLICATION_JSON));
770 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
771 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
772 .content(entityString).contentType(APPLICATION_JSON));
773 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
775 apexRequest(post(BASE_URL + "/Task/Create", corruptSessionId)
776 .content(entityString).contentType(APPLICATION_JSON));
778 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
779 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
780 + "\"description\" : \"A description of hello\"" + "}";
781 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
782 .content(entityString).contentType(APPLICATION_JSON));
783 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
785 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
786 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
787 + "\"localName\" : \"IField0\", \"optional\" : false}},"
788 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
789 + "\"description\" : \"A description of hello\"" + "}";
790 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
791 .content(entityString).contentType(APPLICATION_JSON));
792 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
794 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
795 + "\"inputFields\" : {\"IField0\" : null},"
796 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
797 + "\"description\" : \"A description of hello\"" + "}";
798 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
799 .content(entityString).contentType(APPLICATION_JSON));
800 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
802 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
803 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
804 + "\"localName\" : \"IField0\", \"optional\" : false}},"
805 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
806 + "\"description\" : \"A description of hello\"" + "}";
807 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
808 .content(entityString).contentType(APPLICATION_JSON));
809 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
811 entityString = "{" + "\"name\" : \"Howdy\"," + "\"version\" : \"0.0.2\","
812 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
813 + "\"localName\" : \"NotIField0\", \"optional\" : false}},"
814 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
815 + "\"description\" : \"A description of hello\"" + "}";
816 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
817 .content(entityString).contentType(APPLICATION_JSON));
818 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
820 entityString = "{" + "\"name\" : \"HowsItGoing2\"," + "\"version\" : \"0.0.2\","
821 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
822 + "\"localName\" : \"OField0\", \"optional\" : false}},"
823 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
824 + "\"description\" : \"A description of hello\"" + "}";
825 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
826 .content(entityString).contentType(APPLICATION_JSON));
827 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
829 entityString = "{" + "\"name\" : \"Hi2\"," + "\"version\" : \"0.0.2\","
830 + "\"outputFields\" : {\"OField0\" : null},"
831 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
832 + "\"description\" : \"A description of hello\"" + "}";
833 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
834 .content(entityString).contentType(APPLICATION_JSON));
835 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
837 entityString = "{" + "\"name\" : \"GoodDay2\"," + "\"version\" : \"0.0.2\","
838 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\","
839 + " \"localName\" : \"OField0\", \"optional\" : false}},"
840 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
841 + "\"description\" : \"A description of hello\"" + "}";
842 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
843 .content(entityString).contentType(APPLICATION_JSON));
844 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
846 entityString = "{" + "\"name\" : \"Howdy2\"," + "\"version\" : \"0.0.2\","
847 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
848 + "\"localName\" : \"NotOField0\", \"optional\" : false}},"
849 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
850 + "\"description\" : \"A description of hello\"" + "}";
851 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
852 .content(entityString).contentType(APPLICATION_JSON));
853 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
857 void testTaskExt() throws Exception {
858 final int corruptSessionId = createCorruptSession();
860 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
861 final int sessionId = Integer.parseInt(result.getMessages().get(0));
863 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
865 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
866 .content(modelString).contentType(APPLICATION_JSON));
867 apexRequest(get(BASE_URL + "/Event/Get", sessionId)
868 .queryParam("name", (String) null)
869 .queryParam("version", (String) null));
871 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
872 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
873 + "\"description\" : \"A description of hello\"" + "}";
874 apexRequest(post(BASE_URL + "/Task/Create", sessionId)
875 .content(entityString).contentType(APPLICATION_JSON));
876 apexRequest(post(BASE_URL + "/Task/Create", corruptSessionId)
877 .content(entityString).contentType(APPLICATION_JSON));
879 entityString = "{" + "\"name\" : \"HowsItGoing3\"," + "\"version\" : \"0.0.2\","
880 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons,"
881 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
882 + "\"description\" : \"A description of hello\"" + "}";
883 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
884 .content(entityString).contentType(APPLICATION_JSON));
885 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
887 entityString = "{" + "\"name\" : \"Hi3\"," + "\"version\" : \"0.0.2\","
888 + "\"taskLogic\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
889 + "\"description\" : \"A description of hello\"" + "}";
890 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
891 .content(entityString).contentType(APPLICATION_JSON));
892 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
894 entityString = "{" + "\"name\" : \"GoodDay3\"," + "\"version\" : \"0.0.2\","
895 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
896 + "\"target\" : \"end\","
897 + "\"taskLogic\" : {\"logicFlavour\" : \"UNDEFINED\", \"logic\" : \"lots of lemons,"
898 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
899 + "\"description\" : \"A description of hello\"" + "}";
900 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
901 .content(entityString).contentType(APPLICATION_JSON));
902 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
904 entityString = "{" + "\"name\" : \"Howdy3\"," + "\"version\" : \"0.0.2\","
905 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
906 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
907 + "\"description\" : \"A description of hello\"" + "}";
908 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
909 .content(entityString).contentType(APPLICATION_JSON));
910 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
912 entityString = "{" + "\"name\" : \"HowsItGoing4\"," + "\"version\" : \"0.0.2\","
913 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"Par0\", "
914 + "\"defaultValue\" : \"Parameter Defaultvalue\"}},"
915 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
916 + "\"description\" : \"A description of hello\"" + "}";
917 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
918 .content(entityString).contentType(APPLICATION_JSON));
919 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
921 entityString = "{" + "\"name\" : \"Hi4\"," + "\"version\" : \"0.0.2\","
922 + "\"parameters\" : {\"Par0\" : null},"
923 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
924 + "\"description\" : \"A description of hello\"" + "}";
925 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
926 .content(entityString).contentType(APPLICATION_JSON));
927 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
929 entityString = "{" + "\"name\" : \"GoodDay4\"," + "\"version\" : \"0.0.2\","
930 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"NotPar0\", \"defaultValue\" : "
931 + "\"Parameter Defaultvalue\"}}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
932 + "\"description\" : \"A description of hello\"" + "}";
933 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
934 .content(entityString).contentType(APPLICATION_JSON));
935 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
937 entityString = "{" + "\"name\" : \"Howdy4\"," + "\"version\" : \"0.0.2\","
938 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"MyParameter\", \"defaultValue\" : null}},"
939 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
940 + "\"description\" : \"A description of hello\"" + "}";
941 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
942 .content(entityString).contentType(APPLICATION_JSON));
943 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
945 entityString = "{" + "\"name\" : \"HowsItGoing5\"," + "\"version\" : \"0.0.2\","
946 + "\"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
947 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
948 + "\"description\" : \"A description of hello\"" + "}";
949 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
950 .content(entityString).contentType(APPLICATION_JSON));
951 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
953 entityString = "{" + "\"name\" : \"Hi5\"," + "\"version\" : \"0.0.2\","
954 + "\"contexts\" : []," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
955 + "\"description\" : \"A description of hello\"" + "}";
956 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
957 .content(entityString).contentType(APPLICATION_JSON));
958 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
960 entityString = "{" + "\"name\" : \"GoodDay5\"," + "\"version\" : \"0.0.2\","
961 + "\"contexts\" : [{\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\"}],"
962 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
963 + "\"description\" : \"A description of hello\"" + "}";
964 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
965 .content(entityString).contentType(APPLICATION_JSON));
966 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
968 entityString = "{" + "\"name\" : \"Howdy5\"," + "\"version\" : \"0.0.2\","
969 + "\"contexts\" : [{\"name\" : null, \"version\" : \"0.0.1\"}],"
970 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
971 + "\"description\" : \"A description of hello\"" + "}";
972 result = apexRequest(post(BASE_URL + "/Task/Create", sessionId)
973 .content(entityString).contentType(APPLICATION_JSON));
974 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
976 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
977 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
978 + "\"description\" : \"A description of hello\"" + "}";
979 result = apexRequest(put(BASE_URL + "/Task/Update", -12345)
980 .content(entityString).contentType(APPLICATION_JSON));
981 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
982 result = apexRequest(put(BASE_URL + "/Task/Update", 1234545)
983 .content(entityString).contentType(APPLICATION_JSON));
984 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
985 result = apexRequest(put(BASE_URL + "/Task/Update", sessionId)
986 .content(entityString).contentType(APPLICATION_JSON));
987 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
989 apexRequest(put(BASE_URL + "/Task/Update", corruptSessionId)
990 .content(entityString).contentType(APPLICATION_JSON));
992 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
993 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
994 + "\"description\" : \"A description of hello\"" + "}";
995 result = apexRequest(put(BASE_URL + "/Task/Update", sessionId)
996 .content(entityString).contentType(APPLICATION_JSON));
997 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
999 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
1000 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1001 + "\"description\" : \"A description of hello\"" + "}";
1002 result = apexRequest(put(BASE_URL + "/Task/Update", sessionId)
1003 .content(entityString).contentType(APPLICATION_JSON));
1004 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1006 result = apexRequest(get(BASE_URL + "/Task/Get", sessionId)
1007 .queryParam("name", "Hello")
1008 .queryParam("version", (String) null));
1009 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1010 result = apexRequest(get(BASE_URL + "/Task/Get", sessionId)
1011 .queryParam("name", (String) null)
1012 .queryParam("version", (String) null));
1013 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1014 result = apexRequest(get(BASE_URL + "/Task/Get", sessionId)
1015 .queryParam("name", "IDontExist")
1016 .queryParam("version", (String) null));
1017 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1018 result = apexRequest(get(BASE_URL + "/Task/Get", -123345)
1019 .queryParam("name", (String) null)
1020 .queryParam("version", (String) null));
1021 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1022 result = apexRequest(get(BASE_URL + "/Task/Get", 123345)
1023 .queryParam("name", (String) null)
1024 .queryParam("version", (String) null));
1025 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1027 apexRequest(get(BASE_URL + "/Task/Get", corruptSessionId)
1028 .queryParam("name", "Hello")
1029 .queryParam("version", (String) null));
1031 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId)
1032 .queryParam("name", (String) null)
1033 .queryParam("version", (String) null));
1034 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1035 result = apexRequest(get(BASE_URL + "/Validate/Event", -12345)
1036 .queryParam("name", (String) null)
1037 .queryParam("version", (String) null));
1038 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1039 result = apexRequest(get(BASE_URL + "/Validate/Event", 12345)
1040 .queryParam("name", (String) null)
1041 .queryParam("version", (String) null));
1042 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1046 void testTaskExt_2() throws Exception {
1047 final int corruptSessionId = createCorruptSession();
1049 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
1050 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1052 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1054 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1055 .content(modelString).contentType(APPLICATION_JSON));
1056 apexRequest(get(BASE_URL + "/Event/Get", sessionId)
1057 .queryParam("name", (String) null)
1058 .queryParam("version", (String) null));
1060 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1061 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1062 + "\"description\" : \"A description of hello\"" + "}";
1064 apexRequest(post(BASE_URL + "/Task/Create", 1234545)
1065 .content(entityString).contentType(APPLICATION_JSON));
1066 apexRequest(post(BASE_URL + "/Task/Create", sessionId)
1067 .content(entityString).contentType(APPLICATION_JSON));
1068 apexRequest(post(BASE_URL + "/Task/Create", corruptSessionId)
1069 .content(entityString).contentType(APPLICATION_JSON));
1071 result = apexRequest(delete(BASE_URL + "/Task/Delete", -123345)
1072 .queryParam("name", (String) null)
1073 .queryParam("version", (String) null));
1074 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1075 result = apexRequest(delete(BASE_URL + "/Task/Delete", 123345)
1076 .queryParam("name", (String) null)
1077 .queryParam("version", (String) null));
1078 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1079 result = apexRequest(delete(BASE_URL + "/Task/Delete", sessionId)
1080 .queryParam("name", "Hello")
1081 .queryParam("version", "0.0.2"));
1082 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1083 result = apexRequest(delete(BASE_URL + "/Task/Delete", sessionId)
1084 .queryParam("name", (String) null)
1085 .queryParam("version", (String) null));
1086 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1090 void testPolicy() throws Exception {
1091 final int corruptSessionId = createCorruptSession();
1093 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
1094 assertEquals(Result.SUCCESS, result.getResult());
1095 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1097 result = apexRequest(get(BASE_URL + "/Model/Validate", -12345));
1098 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1100 result = apexRequest(get(BASE_URL + "/Model/Validate", sessionId));
1101 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1103 apexRequest(get(BASE_URL + "/Model/Validate", corruptSessionId));
1104 result = apexRequest(get(BASE_URL + "/Model/Validate", sessionId)
1105 .queryParam("name", (String) null)
1106 .queryParam("version", (String) null));
1107 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1109 result = apexRequest(get(BASE_URL + "/Model/Validate", sessionId)
1110 .queryParam("name", "%%%$£")
1111 .queryParam("version", (String) null));
1112 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1114 String modelString = "Somewhere over the rainbow";
1115 result = apexRequest(put(BASE_URL + "/Model/Load", -12345)
1116 .content(modelString).contentType(APPLICATION_JSON));
1117 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1118 result = apexRequest(put(BASE_URL + "/Model/Load", 12345)
1119 .content(modelString).contentType(APPLICATION_JSON));
1120 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1121 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1122 .content(modelString).contentType(APPLICATION_JSON));
1123 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1125 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1126 .content(modelString).contentType(APPLICATION_JSON));
1127 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1128 modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1129 result = apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1130 .content(modelString).contentType(APPLICATION_JSON));
1131 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1132 result = apexRequest(get(BASE_URL + "/Event/Get", sessionId)
1133 .queryParam("name", (String) null)
1134 .queryParam("version", (String) null));
1135 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1137 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1138 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1139 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1140 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1141 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1142 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1143 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1144 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1145 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1146 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1147 + "\"description\" : \"A description of hello\"" + "}";
1148 result = apexRequest(post(BASE_URL + "/Policy/Create", -12345)
1149 .content(entityString).contentType(APPLICATION_JSON));
1150 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1151 result = apexRequest(post(BASE_URL + "/Policy/Create", 1234545)
1152 .content(entityString).contentType(APPLICATION_JSON));
1153 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1154 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1155 .content(entityString).contentType(APPLICATION_JSON));
1156 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1157 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1158 .content(entityString).contentType(APPLICATION_JSON));
1159 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
1161 apexRequest(post(BASE_URL + "/Policy/Create", corruptSessionId)
1162 .content(entityString).contentType(APPLICATION_JSON));
1164 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
1165 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1166 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1167 + "\"description\" : \"A description of hello\"" + "}";
1168 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1169 .content(entityString).contentType(APPLICATION_JSON));
1170 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1172 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1173 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1174 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1175 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1176 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1177 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1178 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1179 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1180 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1181 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1182 + "\"description\" : \"A description of hello\"" + "}";
1183 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1184 .content(entityString).contentType(APPLICATION_JSON));
1185 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1187 entityString = "{" + "\"name\" : \"Hello2\"," + "\"version\" : \"0.0.2\","
1188 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1189 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1190 + " \"trigger\" : null," + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1191 + " \"stateOutputs\" : {" + " \"so0\" : {"
1192 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1193 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1194 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1195 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1196 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1197 + "\"description\" : \"A description of hello\"" + "}";
1198 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1199 .content(entityString).contentType(APPLICATION_JSON));
1200 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1202 entityString = "{" + "\"name\" : \"Hello3\"," + "\"version\" : \"0.0.2\","
1203 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1204 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1205 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1206 + " \"defaultTask\" : null," + " \"stateOutputs\" : {" + " \"so0\" : {"
1207 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1208 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1209 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1210 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1211 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1212 + "\"description\" : \"A description of hello\"" + "}";
1213 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1214 .content(entityString).contentType(APPLICATION_JSON));
1215 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1217 entityString = "{" + "\"name\" : \"Hello4\"," + "\"version\" : \"0.0.2\","
1218 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1219 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1220 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1221 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : null,"
1222 + " \"tasks\" : {" + " \"tr0\" : {"
1223 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1224 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1225 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1226 + "\"description\" : \"A description of hello\"" + "}";
1227 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1228 .content(entityString).contentType(APPLICATION_JSON));
1229 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1231 entityString = "{" + "\"name\" : \"Hello5\"," + "\"version\" : \"0.0.2\","
1232 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1233 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1234 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1235 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1236 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1237 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : null" + " }" + "},"
1238 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1239 + "\"description\" : \"A description of hello\"" + "}";
1240 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1241 .content(entityString).contentType(APPLICATION_JSON));
1242 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1244 entityString = "{" + "\"name\" : \"Hello6\"," + "\"version\" : \"0.0.2\","
1245 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1246 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1247 + " \"trigger\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1248 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1249 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1250 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1251 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1252 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1253 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1254 + "\"description\" : \"A description of hello\"" + "}";
1255 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1256 .content(entityString).contentType(APPLICATION_JSON));
1257 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1259 entityString = "{" + "\"name\" : \"Hello7\"," + "\"version\" : \"0.0.2\","
1260 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1261 + "\"states\" : {" + " \"state\" : null" + "},"
1262 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1263 + "\"description\" : \"A description of hello\"" + "}";
1264 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1265 .content(entityString).contentType(APPLICATION_JSON));
1266 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1268 entityString = "{" + "\"name\" : \"Hello8\"," + "\"version\" : \"0.0.2\","
1269 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1270 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1271 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1272 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1274 + " \"event\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1275 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1276 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1277 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1278 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1279 + "\"description\" : \"A description of hello\"" + "}";
1280 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1281 .content(entityString).contentType(APPLICATION_JSON));
1282 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1284 entityString = "{" + "\"name\" : \"Hello9\"," + "\"version\" : \"0.0.2\","
1285 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1286 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1287 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1288 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1289 + " \"so0\" : {" + " \"event\" : null," + " \"nextState\" : null" + " }"
1290 + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1291 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1292 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1293 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1294 + "\"description\" : \"A description of hello\"" + "}";
1295 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1296 .content(entityString).contentType(APPLICATION_JSON));
1297 System.err.println(result);
1298 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1302 void testPolicyExt() throws Exception {
1303 final int corruptSessionId = createCorruptSession();
1305 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
1306 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1308 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1310 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1311 .content(modelString).contentType(APPLICATION_JSON));
1313 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1314 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1315 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1316 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1317 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1318 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1319 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1320 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1321 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1322 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1323 + "\"description\" : \"A description of hello\"" + "}";
1325 apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1326 .content(entityString).contentType(APPLICATION_JSON));
1327 apexRequest(post(BASE_URL + "/Policy/Create", corruptSessionId)
1328 .content(entityString).contentType(APPLICATION_JSON));
1330 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1331 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1332 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1333 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1334 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1335 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1336 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1337 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1338 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1339 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1340 + "\"description\" : \"A description of hello\"" + "}";
1341 apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1342 .content(entityString).contentType(APPLICATION_JSON));
1344 entityString = "{" + "\"name\" : \"Hello10\"," + "\"version\" : \"0.0.2\","
1345 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1346 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1347 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1348 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1349 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1350 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1351 + " \"task\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1352 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1353 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1354 + "\"description\" : \"A description of hello\"" + "}";
1355 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1356 .content(entityString).contentType(APPLICATION_JSON));
1357 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1359 entityString = "{" + "\"name\" : \"Hello11\"," + "\"version\" : \"0.0.2\","
1360 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1361 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1362 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1363 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1364 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1365 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1366 + " \"task\" : null," + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\""
1367 + " }" + " }" + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1368 + "\"description\" : \"A description of hello\"" + "}";
1369 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1370 .content(entityString).contentType(APPLICATION_JSON));
1371 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1373 entityString = "{" + "\"name\" : \"Hello12\"," + "\"version\" : \"0.0.2\","
1374 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1375 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1376 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1377 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1378 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1379 + "lots of lime\"}," + " \"stateOutputs\" : {" + " \"so0\" : {"
1380 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1381 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1383 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1384 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1385 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1386 + "\"description\" : \"A description of hello\"" + "}";
1387 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1388 .content(entityString).contentType(APPLICATION_JSON));
1389 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1391 entityString = "{" + "\"name\" : \"Hello13\"," + "\"version\" : \"0.0.2\","
1392 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1393 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1394 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1395 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1396 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
1397 + " \"stateOutputs\" : {" + " \"so0\" : {"
1398 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1399 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1401 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1402 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1403 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1404 + "\"description\" : \"A description of hello\"" + "}";
1405 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1406 .content(entityString).contentType(APPLICATION_JSON));
1407 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1409 entityString = "{" + "\"name\" : \"Hello14\"," + "\"version\" : \"0.0.2\","
1410 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1411 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1412 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1413 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1414 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1415 + "lots of lime\"},"
1416 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1417 + " \"stateOutputs\" : {" + " \"so0\" : {"
1418 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1419 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1421 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1422 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1423 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1424 + "\"description\" : \"A description of hello\"" + "}";
1425 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1426 .content(entityString).contentType(APPLICATION_JSON));
1427 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1429 entityString = "{" + "\"name\" : \"Hello15\"," + "\"version\" : \"0.0.2\","
1430 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1431 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1432 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1433 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1434 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1435 + "lots of lime\"}," + " \"contexts\" : [{\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"}],"
1436 + " \"stateOutputs\" : {" + " \"so0\" : {"
1437 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1438 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1440 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1441 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1442 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1443 + "\"description\" : \"A description of hello\"" + "}";
1444 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1445 .content(entityString).contentType(APPLICATION_JSON));
1446 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1448 entityString = "{" + "\"name\" : \"Hello16\"," + "\"version\" : \"0.0.2\","
1449 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1450 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1451 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1452 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1453 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1454 + "lots of lime\"}," + " \"contexts\" : [null]," + " \"stateOutputs\" : {"
1456 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1457 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1459 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1460 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1461 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1462 + "\"description\" : \"A description of hello\"" + "}";
1463 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1464 .content(entityString).contentType(APPLICATION_JSON));
1465 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1467 entityString = "{" + "\"name\" : \"Hello17\"," + "\"version\" : \"0.0.2\","
1468 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1469 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1470 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1471 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1472 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1473 + "lots of lime\"},"
1474 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1475 + " \"stateOutputs\" : {" + " \"so0\" : {"
1476 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1477 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1479 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1480 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1481 + " \"finalizers\" : {"
1482 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1483 + "lots of lime\"}" + " }" + " }" + "},"
1484 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1485 + "\"description\" : \"A description of hello\"" + "}";
1486 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1487 .content(entityString).contentType(APPLICATION_JSON));
1488 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1490 entityString = "{" + "\"name\" : \"Hello18\"," + "\"version\" : \"0.0.2\","
1491 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1492 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1493 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1494 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1495 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1496 + "lots of lime\"},"
1497 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1498 + " \"stateOutputs\" : {" + " \"so0\" : {"
1499 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1500 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1502 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1503 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1504 + " \"finalizers\" : {" + " \"sf0\" : null" + " }" + " }" + "},"
1505 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1506 + "\"description\" : \"A description of hello\"" + "}";
1507 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1508 .content(entityString).contentType(APPLICATION_JSON));
1509 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1511 entityString = "{" + "\"name\" : \"Hello19\"," + "\"version\" : \"0.0.2\","
1512 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1513 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1514 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1515 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1516 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1517 + "lots of lime\"},"
1518 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1519 + " \"stateOutputs\" : {" + " \"so0\" : {"
1520 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1521 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1523 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1524 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1525 + " \"finalizers\" : {"
1526 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null}" + " }" + " }" + "},"
1527 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1528 + "\"description\" : \"A description of hello\"" + "}";
1529 result = apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1530 .content(entityString).contentType(APPLICATION_JSON));
1531 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1533 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1534 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1535 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1536 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1537 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1538 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1539 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1540 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1541 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1542 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1543 + "\"description\" : \"A better description of hello\"" + "}";
1544 result = apexRequest(put(BASE_URL + "/Policy/Update", -12345)
1545 .content(entityString).contentType(APPLICATION_JSON));
1546 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1547 result = apexRequest(put(BASE_URL + "/Policy/Update", 1234545)
1548 .content(entityString).contentType(APPLICATION_JSON));
1549 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1550 result = apexRequest(put(BASE_URL + "/Policy/Update", sessionId)
1551 .content(entityString).contentType(APPLICATION_JSON));
1552 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1554 result = apexRequest(put(BASE_URL + "/Policy/Update", sessionId)
1555 .queryParam("firstStatePeriodic", "true")
1556 .content(entityString).contentType(APPLICATION_JSON));
1557 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1559 apexRequest(put(BASE_URL + "/Policy/Update", corruptSessionId)
1560 .content(entityString).contentType(APPLICATION_JSON));
1562 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
1563 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1564 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1565 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1566 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1567 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1568 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1569 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1570 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1571 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1572 + "\"description\" : \"A better description of hello\"" + "}";
1573 result = apexRequest(put(BASE_URL + "/Policy/Update", sessionId)
1574 .content(entityString).contentType(APPLICATION_JSON));
1575 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1577 entityString = "{" + "\"name\" : \"IDontExist\"," + "\"version\" : \"0.0.2\","
1578 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1579 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1580 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1581 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1582 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1583 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1584 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1585 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1586 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1587 + "\"description\" : \"A better description of hello\"" + "}";
1588 result = apexRequest(put(BASE_URL + "/Policy/Update", sessionId)
1589 .content(entityString).contentType(APPLICATION_JSON));
1590 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1592 result = apexRequest(get(BASE_URL + "/Policy/Get", sessionId)
1593 .queryParam("name", "Hello")
1594 .queryParam("version", (String) null));
1595 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1596 result = apexRequest(get(BASE_URL + "/Policy/Get", sessionId)
1597 .queryParam("name", "IDontExist")
1598 .queryParam("version", (String) null));
1599 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1600 result = apexRequest(get(BASE_URL + "/Policy/Get", sessionId)
1601 .queryParam("name", (String) null)
1602 .queryParam("version", (String) null));
1603 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1604 result = apexRequest(get(BASE_URL + "/Policy/Get", -123345)
1605 .queryParam("name", (String) null)
1606 .queryParam("version", (String) null));
1607 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1608 result = apexRequest(get(BASE_URL + "/Policy/Get", 123345)
1609 .queryParam("name", (String) null)
1610 .queryParam("version", (String) null));
1611 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1613 apexRequest(get(BASE_URL + "/Policy/Get", corruptSessionId)
1614 .queryParam("name", "Hello")
1615 .queryParam("version", (String) null));
1617 result = apexRequest(get(BASE_URL + "/Validate/Event", sessionId)
1618 .queryParam("name", (String) null)
1619 .queryParam("version", (String) null));
1620 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1621 result = apexRequest(get(BASE_URL + "/Validate/Event", -12345)
1622 .queryParam("name", (String) null)
1623 .queryParam("version", (String) null));
1624 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1625 result = apexRequest(get(BASE_URL + "/Validate/Event", 12345)
1626 .queryParam("name", (String) null)
1627 .queryParam("version", (String) null));
1628 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1630 apexRequest(delete(BASE_URL + "/Policy/Delete", corruptSessionId)
1631 .queryParam("name", (String) null)
1632 .queryParam("version", (String) null));
1634 result = apexRequest(delete(BASE_URL + "/Policy/Delete", -123345)
1635 .queryParam("name", (String) null)
1636 .queryParam("version", (String) null));
1637 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1642 void testPolicyExt_2() throws Exception {
1643 final int corruptSessionId = createCorruptSession();
1645 ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
1646 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1648 apexRequest(get(BASE_URL + "/Model/Validate", corruptSessionId));
1649 apexRequest(get(BASE_URL + "/Model/Validate", sessionId)
1650 .queryParam("name", "%%%$£")
1651 .queryParam("version", (String) null));
1653 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1655 apexRequest(put(BASE_URL + "/Model/Load", sessionId)
1656 .content(modelString).contentType(APPLICATION_JSON));
1658 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1659 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1660 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1661 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1662 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1663 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1664 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1665 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1666 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1667 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1668 + "\"description\" : \"A description of hello\"" + "}";
1669 apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1670 .content(entityString).contentType(APPLICATION_JSON));
1671 apexRequest(post(BASE_URL + "/Policy/Create", corruptSessionId)
1672 .content(entityString).contentType(APPLICATION_JSON));
1674 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
1675 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1676 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1677 + "\"description\" : \"A description of hello\"" + "}";
1678 apexRequest(post(BASE_URL + "/Policy/Create", sessionId)
1679 .content(entityString).contentType(APPLICATION_JSON));
1681 result = apexRequest(delete(BASE_URL + "/Policy/Delete", 123345)
1682 .queryParam("name", (String) null)
1683 .queryParam("version", (String) null));
1684 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1685 result = apexRequest(delete(BASE_URL + "/Policy/Delete", sessionId)
1686 .queryParam("name", "Hello")
1687 .queryParam("version", "0.0.2"));
1688 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1689 result = apexRequest(delete(BASE_URL + "/Policy/Delete", sessionId)
1690 .queryParam("name", (String) null)
1691 .queryParam("version", (String) null));
1692 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1696 * Make a request using MockMvc and return the response body as a string.
1698 private String requestString(MockHttpServletRequestBuilder requestBuilder) throws Exception {
1699 return mvc.perform(requestBuilder).andReturn().getResponse().getContentAsString();
1703 * Make a request using MockMvc and return the decoded JSON response as an ApexApiResult.
1705 private ApexApiResult apexRequest(MockHttpServletRequestBuilder requestBuilder) throws Exception {
1706 String json = requestString(requestBuilder);
1707 return new StandardCoder().decode(json, ApexApiResult.class);
1711 * This method is used only for testing and is used to cause an exception on calls from unit test to test exception
1714 private int createCorruptSession() throws Exception {
1715 final ApexApiResult result = apexRequest(get(BASE_URL + "/Session/Create", -1));
1716 final int corruptSessionId = Integer.parseInt(result.getMessages().get(0));
1717 sessionHandler.setCorruptSession(corruptSessionId);
1718 return corruptSessionId;