2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.client.editor.rest;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.fail;
26 import java.io.IOException;
28 import javax.ws.rs.client.Entity;
29 import javax.ws.rs.core.Application;
30 import javax.ws.rs.core.MediaType;
32 import org.glassfish.jersey.server.ResourceConfig;
33 import org.glassfish.jersey.test.JerseyTest;
34 import org.junit.Test;
35 import org.onap.policy.apex.model.modelapi.ApexApiResult;
36 import org.onap.policy.apex.model.modelapi.ApexApiResult.Result;
37 import org.onap.policy.apex.model.utilities.TextFileUtils;
40 * Test Apex Editor Rest Resource.
41 * @author Liam Fallon (liam.fallon@ericsson.com)
43 public class TestApexEditorRestResource extends JerseyTest {
45 protected Application configure() {
46 return new ResourceConfig(ApexEditorRestResource.class);
50 public void testSessionCreate() {
51 ApexApiResult result = target("editor/-2/Session/Create").request().get(ApexApiResult.class);
52 assertEquals(Result.FAILED, result.getResult());
54 result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
55 assertEquals(Result.SUCCESS, result.getResult());
56 final int sessionId = new Integer(result.getMessages().get(0));
58 result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
59 assertEquals(Result.SUCCESS, result.getResult());
61 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
64 target("editor/" + corruptSessionId + "/Model/Analyse").request().get(ApexApiResult.class);
65 } catch (final Exception e) {
66 assertEquals("HTTP 500 Request failed.", e.getMessage());
69 result = target("editor/" + sessionId + "/Model/Analyse").request().get(ApexApiResult.class);
70 assertEquals(Result.SUCCESS, result.getResult());
71 result = target("editor/-12345/Model/Analyse").request().get(ApexApiResult.class);
72 assertEquals(Result.FAILED, result.getResult());
73 result = target("editor/12345/Model/Analyse").request().get(ApexApiResult.class);
74 assertEquals(Result.FAILED, result.getResult());
77 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
78 } catch (final Exception e) {
79 assertEquals("HTTP 500 Request failed.", e.getMessage());
82 result = target("editor/" + sessionId + "/Model/Validate").request().get(ApexApiResult.class);
83 assertEquals(Result.FAILED, result.getResult());
84 result = target("editor/-12345/Model/Validate").request().get(ApexApiResult.class);
85 assertEquals(Result.FAILED, result.getResult());
86 result = target("editor/12345/Model/Validate").request().get(ApexApiResult.class);
87 assertEquals(Result.FAILED, result.getResult());
89 final String modelString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
90 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002699\","
91 + "\"description\" : \"A description of the model\"" + "}";
92 final Entity<String> csEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
93 result = target("editor/-12345/Model/Create").request().post(csEntity, ApexApiResult.class);
94 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
95 result = target("editor/-12345/Model/Create").request().post(csEntity, ApexApiResult.class);
96 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
97 result = target("editor/1234545/Model/Create").request().post(csEntity, ApexApiResult.class);
98 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
99 result = target("editor/" + sessionId + "/Model/Create").request().post(csEntity, ApexApiResult.class);
100 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
103 target("editor/" + corruptSessionId + "/Model/Create").request().post(csEntity, ApexApiResult.class);
104 } catch (final Exception e) {
105 assertEquals("HTTP 500 Request failed.", e.getMessage());
108 result = target("editor/-12345/Model/Update").request().put(csEntity, ApexApiResult.class);
109 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
110 result = target("editor/-12345/Model/Update").request().put(csEntity, ApexApiResult.class);
111 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
112 result = target("editor/1234545/Model/Update").request().put(csEntity, ApexApiResult.class);
113 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
114 result = target("editor/" + sessionId + "/Model/Update").request().put(csEntity, ApexApiResult.class);
115 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
118 target("editor/" + corruptSessionId + "/Model/Update").request().put(csEntity, ApexApiResult.class);
119 } catch (final Exception e) {
120 assertEquals("HTTP 500 Request failed.", e.getMessage());
124 result = target("editor/" + corruptSessionId + "/Model/GetKey").request().get(ApexApiResult.class);
125 } catch (final Exception e) {
126 assertEquals("HTTP 500 Request failed.", e.getMessage());
129 result = target("editor/" + sessionId + "/Model/GetKey").request().get(ApexApiResult.class);
130 assertEquals(Result.SUCCESS, result.getResult());
131 result = target("editor/-12345/Model/GetKey").request().get(ApexApiResult.class);
132 assertEquals(Result.FAILED, result.getResult());
133 result = target("editor/12345/Model/GetKey").request().get(ApexApiResult.class);
134 assertEquals(Result.FAILED, result.getResult());
137 result = target("editor/" + corruptSessionId + "/Model/Get").request().get(ApexApiResult.class);
138 } catch (final Exception e) {
139 assertEquals("HTTP 500 Request failed.", e.getMessage());
142 result = target("editor/" + sessionId + "/Model/Get").request().get(ApexApiResult.class);
143 assertEquals(Result.SUCCESS, result.getResult());
144 result = target("editor/-12345/Model/Get").request().get(ApexApiResult.class);
145 assertEquals(Result.FAILED, result.getResult());
146 result = target("editor/12345/Model/Get").request().get(ApexApiResult.class);
147 assertEquals(Result.FAILED, result.getResult());
150 result = target("editor/" + corruptSessionId + "/Model/Download").request().get(ApexApiResult.class);
151 } catch (final Exception e) {
152 assertEquals("HTTP 500 Request failed.", e.getMessage());
155 result = target("editor/" + sessionId + "/Model/Download").request().get(ApexApiResult.class);
156 assertEquals(Result.SUCCESS, result.getResult());
158 target("editor/-12345/Model/Download").request().get(ApexApiResult.class);
159 fail("test should throw an exception here");
160 } catch (final Exception e) {
161 assertEquals("HTTP 500 Request failed.", e.getMessage());
164 target("editor/12345/Model/Download").request().get(ApexApiResult.class);
165 fail("test should throw an exception here");
166 } catch (final Exception e) {
167 assertEquals("HTTP 500 Request failed.", e.getMessage());
171 result = target("editor/" + corruptSessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
172 } catch (final Exception e) {
173 assertEquals("HTTP 500 Request failed.", e.getMessage());
176 result = target("editor/" + sessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
177 assertEquals(Result.SUCCESS, result.getResult());
178 result = target("editor/-12345/KeyInformation/Get").request().get(ApexApiResult.class);
179 assertEquals(Result.FAILED, result.getResult());
180 result = target("editor/12345/KeyInformation/Get").request().get(ApexApiResult.class);
181 assertEquals(Result.FAILED, result.getResult());
184 result = target("editor/" + corruptSessionId + "/Model/Delete").request().delete(ApexApiResult.class);
185 } catch (final Exception e) {
186 assertEquals("HTTP 500 Request failed.", e.getMessage());
189 result = target("editor/" + sessionId + "/Model/Delete").request().delete(ApexApiResult.class);
190 assertEquals(Result.SUCCESS, result.getResult());
191 result = target("editor/-12345/Model/Delete").request().delete(ApexApiResult.class);
192 assertEquals(Result.FAILED, result.getResult());
193 result = target("editor/12345/Model/Delete").request().delete(ApexApiResult.class);
194 assertEquals(Result.FAILED, result.getResult());
198 public void testContextSchema() throws IOException {
199 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
200 assertEquals(Result.SUCCESS, result.getResult());
201 final int sessionId = new Integer(result.getMessages().get(0));
203 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
205 result = target("editor/-12345/Validate/ContextSchema").request().get(ApexApiResult.class);
206 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
209 target("editor/" + corruptSessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
210 } catch (final Exception e) {
211 assertEquals("HTTP 500 Request failed.", e.getMessage());
214 result = target("editor/" + sessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
215 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
217 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
218 .queryParam("version", (String) null).request().get(ApexApiResult.class);
219 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
221 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", "%%%$£")
222 .queryParam("version", (String) null).request().get(ApexApiResult.class);
223 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
225 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
227 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
228 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
229 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
230 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
231 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
232 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
233 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
234 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
235 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
236 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
237 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
238 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
239 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
240 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", (String) null)
241 .queryParam("version", (String) null).request().get(ApexApiResult.class);
242 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
245 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", (String) null)
246 .queryParam("version", (String) null).request().get(ApexApiResult.class);
247 } catch (final Exception e) {
248 assertEquals("HTTP 500 Request failed.", e.getMessage());
251 String csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
252 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"java.lang.String\","
253 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
254 + "\"description\" : \"A description of hello\"" + "}";
255 Entity<String> csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
256 result = target("editor/-12345/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
257 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
258 result = target("editor/1234545/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
259 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
260 result = target("editor/" + sessionId + "/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
261 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
264 target("editor/" + corruptSessionId + "/ContextSchema/Create").request().post(csEntity,
265 ApexApiResult.class);
266 } catch (final Exception e) {
267 assertEquals("HTTP 500 Request failed.", e.getMessage());
270 csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
271 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"my.perfect.String\","
272 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
273 + "\"description\" : \"A description of hello\"" + "}";
274 csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
275 result = target("editor/-12345/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
276 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
277 result = target("editor/1234545/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
278 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
279 result = target("editor/" + sessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
280 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
283 target("editor/" + corruptSessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
284 } catch (final Exception e) {
285 assertEquals("HTTP 500 Request failed.", e.getMessage());
288 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "Hello")
289 .queryParam("version", (String) null).request().get(ApexApiResult.class);
290 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
291 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "NonExistant")
292 .queryParam("version", (String) null).request().get(ApexApiResult.class);
293 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
294 result = target("editor/-123345/ContextSchema/Get").queryParam("name", (String) null)
295 .queryParam("version", (String) null).request().get(ApexApiResult.class);
296 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
297 result = target("editor/123345/ContextSchema/Get").queryParam("name", (String) null)
298 .queryParam("version", (String) null).request().get(ApexApiResult.class);
299 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
302 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", "Hello")
303 .queryParam("version", (String) null).request().get(ApexApiResult.class);
304 } catch (final Exception e) {
305 assertEquals("HTTP 500 Request failed.", e.getMessage());
308 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
309 .queryParam("version", (String) null).request().get(ApexApiResult.class);
310 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
313 target("editor/" + corruptSessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
314 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
315 } catch (final Exception e) {
316 assertEquals("HTTP 500 Request failed.", e.getMessage());
319 result = target("editor/-123345/ContextSchema/Delete").queryParam("name", (String) null)
320 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
321 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
322 result = target("editor/123345/ContextSchema/Delete").queryParam("name", (String) null)
323 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
324 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
325 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
326 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
327 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
328 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", (String) null)
329 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
330 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
334 public void testContextAlbum() throws IOException {
335 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
336 assertEquals(Result.SUCCESS, result.getResult());
337 final int sessionId = new Integer(result.getMessages().get(0));
338 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
340 result = target("editor/-12345/Validate/ContextAlbum").request().get(ApexApiResult.class);
341 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
344 target("editor/" + corruptSessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
345 } catch (final Exception e) {
346 assertEquals("HTTP 500 Request failed.", e.getMessage());
349 result = target("editor/" + sessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
350 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
352 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
353 .queryParam("version", (String) null).request().get(ApexApiResult.class);
354 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
356 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", "%%%$£")
357 .queryParam("version", (String) null).request().get(ApexApiResult.class);
358 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
360 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
362 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
363 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
364 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
365 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
366 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
367 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
368 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
369 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
370 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
371 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
372 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
373 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
374 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
375 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", (String) null)
376 .queryParam("version", (String) null).request().get(ApexApiResult.class);
377 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
379 String caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
380 + "\"scope\" : \"Domain\"," + "\"writeable\" : false,"
381 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
382 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
383 + "\"description\" : \"A description of hello\"" + "}";
384 Entity<String> caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
385 result = target("editor/-12345/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
386 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
387 result = target("editor/1234545/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
388 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
389 result = target("editor/" + sessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
390 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
393 target("editor/" + corruptSessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
394 } catch (final Exception e) {
395 assertEquals("HTTP 500 Request failed.", e.getMessage());
398 caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
399 + "\"scope\" : \"Global\"," + "\"writeable\" : false,"
400 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
401 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
402 + "\"description\" : \"A description of hello\"" + "}";
403 caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
404 result = target("editor/-12345/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
405 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
406 result = target("editor/1234545/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
407 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
408 result = target("editor/" + sessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
409 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
412 target("editor/" + corruptSessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
413 } catch (final Exception e) {
414 assertEquals("HTTP 500 Request failed.", e.getMessage());
418 target("editor/" + corruptSessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
419 .queryParam("version", (String) null).request().get(ApexApiResult.class);
420 } catch (final Exception e) {
421 assertEquals("HTTP 500 Request failed.", e.getMessage());
424 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
425 .queryParam("version", (String) null).request().get(ApexApiResult.class);
426 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
427 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "IDontExist")
428 .queryParam("version", (String) null).request().get(ApexApiResult.class);
429 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
430 result = target("editor/-123345/ContextAlbum/Get").queryParam("name", (String) null)
431 .queryParam("version", (String) null).request().get(ApexApiResult.class);
432 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
433 result = target("editor/123345/ContextAlbum/Get").queryParam("name", (String) null)
434 .queryParam("version", (String) null).request().get(ApexApiResult.class);
435 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
437 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
438 .queryParam("version", (String) null).request().get(ApexApiResult.class);
439 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
442 target("editor/" + corruptSessionId + "/ContextAlbum/Delete").queryParam("name", (String) null)
443 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
444 } catch (final Exception e) {
445 assertEquals("HTTP 500 Request failed.", e.getMessage());
448 result = target("editor/-123345/ContextAlbum/Delete").queryParam("name", (String) null)
449 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
450 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
451 result = target("editor/123345/ContextAlbum/Delete").queryParam("name", (String) null)
452 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
453 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
454 result = target("editor/" + sessionId + "/ContextAlbum/Delete").queryParam("name", "Hello")
455 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
456 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
457 result = target("editor/" + sessionId + "/ContextAlbum/Delete").queryParam("name", (String) null)
458 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
459 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
463 public void testEvent() throws IOException {
464 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
466 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
467 assertEquals(Result.SUCCESS, result.getResult());
468 final int sessionId = new Integer(result.getMessages().get(0));
470 result = target("editor/-12345/Validate/Event").request().get(ApexApiResult.class);
471 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
473 result = target("editor/" + sessionId + "/Validate/Event").request().get(ApexApiResult.class);
474 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
477 target("editor/" + corruptSessionId + "/Validate/Event").request().get(ApexApiResult.class);
478 } catch (final Exception e) {
479 assertEquals("HTTP 500 Request failed.", e.getMessage());
482 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
483 .queryParam("version", (String) null).request().get(ApexApiResult.class);
484 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
486 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", "%%%$£")
487 .queryParam("version", (String) null).request().get(ApexApiResult.class);
488 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
490 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
492 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
493 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
494 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
495 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
496 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
497 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
498 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
499 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
500 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
501 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
502 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
503 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
504 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
505 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
506 .queryParam("version", (String) null).request().get(ApexApiResult.class);
507 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
509 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
510 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
511 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
512 + "\"description\" : \"A description of hello\"" + "}";
513 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
514 result = target("editor/-12345/Event/Create").request().post(entity, ApexApiResult.class);
515 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
516 result = target("editor/1234545/Event/Create").request().post(entity, ApexApiResult.class);
517 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
518 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
519 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
520 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
521 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
524 target("editor/" + corruptSessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
525 } catch (final Exception e) {
526 assertEquals("HTTP 500 Request failed.", e.getMessage());
529 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
530 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
531 + "\"target\" : \"end\"," + "\"parameters\" : {},"
532 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
533 + "\"description\" : \"A description of hello\"" + "}";
534 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
535 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
536 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
538 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
539 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
540 + "\"target\" : \"end\","
541 + "\"parameters\" : {\"Par0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
542 + "\"localName\" : \"Par0\", \"optional\" : false}},"
543 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
544 + "\"description\" : \"A description of hello\"" + "}";
545 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
546 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
547 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
549 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
550 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
551 + "\"target\" : \"end\"," + "\"parameters\" : {\"Par0\" : null},"
552 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
553 + "\"description\" : \"A description of hello\"" + "}";
554 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
555 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
556 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
558 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
559 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
560 + "\"target\" : \"end\","
561 + "\"parameters\" : {\"Par0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
562 + "\"localName\" : \"Par0\", \"optional\" : false}},"
563 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
564 + "\"description\" : \"A description of hello\"" + "}";
565 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
566 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
567 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
569 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
570 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
571 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
572 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
573 + "\"description\" : \"A description of hello\"" + "}";
574 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
575 result = target("editor/-12345/Event/Update").request().put(entity, ApexApiResult.class);
576 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
577 result = target("editor/1234545/Event/Update").request().put(entity, ApexApiResult.class);
578 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
579 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
580 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
583 target("editor/" + corruptSessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
584 } catch (final Exception e) {
585 assertEquals("HTTP 500 Request failed.", e.getMessage());
588 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
589 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
590 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
591 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
592 + "\"description\" : \"A description of hello\"" + "}";
593 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
594 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
595 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
597 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
598 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
599 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
600 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
601 + "\"description\" : \"A description of hello\"" + "}";
602 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
603 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
604 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
606 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "Hello")
607 .queryParam("version", (String) null).request().get(ApexApiResult.class);
608 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
609 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "IDontExist")
610 .queryParam("version", (String) null).request().get(ApexApiResult.class);
611 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
612 result = target("editor/-123345/Event/Get").queryParam("name", (String) null)
613 .queryParam("version", (String) null).request().get(ApexApiResult.class);
614 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
615 result = target("editor/123345/Event/Get").queryParam("name", (String) null)
616 .queryParam("version", (String) null).request().get(ApexApiResult.class);
617 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
620 target("editor/" + corruptSessionId + "/Event/Get").queryParam("name", "Hello")
621 .queryParam("version", (String) null).request().get(ApexApiResult.class);
622 } catch (final Exception e) {
623 assertEquals("HTTP 500 Request failed.", e.getMessage());
626 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
627 .queryParam("version", (String) null).request().get(ApexApiResult.class);
628 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
629 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
630 .queryParam("version", (String) null).request().get(ApexApiResult.class);
631 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
632 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
633 .queryParam("version", (String) null).request().get(ApexApiResult.class);
634 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
637 target("editor/" + corruptSessionId + "/Event/Delete").queryParam("name", (String) null)
638 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
639 } catch (final Exception e) {
640 assertEquals("HTTP 500 Request failed.", e.getMessage());
643 result = target("editor/-123345/Event/Delete").queryParam("name", (String) null)
644 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
645 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
646 result = target("editor/123345/Event/Delete").queryParam("name", (String) null)
647 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
648 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
649 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", "Hello")
650 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
651 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
652 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", (String) null)
653 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
654 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
658 public void testTask() throws IOException {
659 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
661 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
662 assertEquals(Result.SUCCESS, result.getResult());
663 final int sessionId = new Integer(result.getMessages().get(0));
665 result = target("editor/-12345/Validate/Task").request().get(ApexApiResult.class);
666 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
668 result = target("editor/" + sessionId + "/Validate/Task").request().get(ApexApiResult.class);
669 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
672 target("editor/" + corruptSessionId + "/Validate/Task").request().get(ApexApiResult.class);
673 } catch (final Exception e) {
674 assertEquals("HTTP 500 Request failed.", e.getMessage());
677 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", (String) null)
678 .queryParam("version", (String) null).request().get(ApexApiResult.class);
679 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
681 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", "%%%$£")
682 .queryParam("version", (String) null).request().get(ApexApiResult.class);
683 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
685 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
687 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
688 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
689 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
690 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
691 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
692 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
693 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
694 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
695 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
696 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
697 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
698 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
699 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
700 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
701 .queryParam("version", (String) null).request().get(ApexApiResult.class);
702 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
704 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
705 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
706 + "\"description\" : \"A description of hello\"" + "}";
707 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
708 result = target("editor/-12345/Task/Create").request().post(entity, ApexApiResult.class);
709 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
710 result = target("editor/1234545/Task/Create").request().post(entity, ApexApiResult.class);
711 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
712 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
713 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
714 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
715 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
718 target("editor/" + corruptSessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
719 } catch (final Exception e) {
720 assertEquals("HTTP 500 Request failed.", e.getMessage());
723 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
724 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
725 + "\"description\" : \"A description of hello\"" + "}";
726 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
727 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
728 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
730 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
731 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
732 + "\"localName\" : \"IField0\", \"optional\" : false}},"
733 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
734 + "\"description\" : \"A description of hello\"" + "}";
735 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
736 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
737 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
739 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
740 + "\"inputFields\" : {\"IField0\" : null},"
741 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
742 + "\"description\" : \"A description of hello\"" + "}";
743 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
744 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
745 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
747 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
748 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
749 + "\"localName\" : \"IField0\", \"optional\" : false}},"
750 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
751 + "\"description\" : \"A description of hello\"" + "}";
752 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
753 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
754 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
756 entityString = "{" + "\"name\" : \"Howdy\"," + "\"version\" : \"0.0.2\","
757 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
758 + "\"localName\" : \"NotIField0\", \"optional\" : false}},"
759 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
760 + "\"description\" : \"A description of hello\"" + "}";
761 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
762 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
763 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
765 entityString = "{" + "\"name\" : \"HowsItGoing2\"," + "\"version\" : \"0.0.2\","
766 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
767 + "\"localName\" : \"OField0\", \"optional\" : false}},"
768 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
769 + "\"description\" : \"A description of hello\"" + "}";
770 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
771 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
772 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
774 entityString = "{" + "\"name\" : \"Hi2\"," + "\"version\" : \"0.0.2\","
775 + "\"outputFields\" : {\"OField0\" : null},"
776 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
777 + "\"description\" : \"A description of hello\"" + "}";
778 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
779 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
780 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
782 entityString = "{" + "\"name\" : \"GoodDay2\"," + "\"version\" : \"0.0.2\","
783 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\","
784 + " \"localName\" : \"OField0\", \"optional\" : false}},"
785 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
786 + "\"description\" : \"A description of hello\"" + "}";
787 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
788 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
789 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
791 entityString = "{" + "\"name\" : \"Howdy2\"," + "\"version\" : \"0.0.2\","
792 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
793 + "\"localName\" : \"NotOField0\", \"optional\" : false}},"
794 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
795 + "\"description\" : \"A description of hello\"" + "}";
796 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
797 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
798 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
800 entityString = "{" + "\"name\" : \"HowsItGoing3\"," + "\"version\" : \"0.0.2\","
801 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons,"
802 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
803 + "\"description\" : \"A description of hello\"" + "}";
804 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
805 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
806 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
808 entityString = "{" + "\"name\" : \"Hi3\"," + "\"version\" : \"0.0.2\","
809 + "\"taskLogic\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
810 + "\"description\" : \"A description of hello\"" + "}";
811 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
812 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
813 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
815 entityString = "{" + "\"name\" : \"GoodDay3\"," + "\"version\" : \"0.0.2\","
816 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
817 + "\"target\" : \"end\","
818 + "\"taskLogic\" : {\"logicFlavour\" : \"UNDEFINED\", \"logic\" : \"lots of lemons,"
819 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
820 + "\"description\" : \"A description of hello\"" + "}";
821 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
822 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
823 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
825 entityString = "{" + "\"name\" : \"Howdy3\"," + "\"version\" : \"0.0.2\","
826 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
827 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
828 + "\"description\" : \"A description of hello\"" + "}";
829 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
830 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
831 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
833 entityString = "{" + "\"name\" : \"HowsItGoing4\"," + "\"version\" : \"0.0.2\","
834 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"Par0\", "
835 + "\"defaultValue\" : \"Parameter Defaultvalue\"}},"
836 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
837 + "\"description\" : \"A description of hello\"" + "}";
838 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
839 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
840 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
842 entityString = "{" + "\"name\" : \"Hi4\"," + "\"version\" : \"0.0.2\","
843 + "\"parameters\" : {\"Par0\" : null},"
844 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
845 + "\"description\" : \"A description of hello\"" + "}";
846 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
847 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
848 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
850 entityString = "{" + "\"name\" : \"GoodDay4\"," + "\"version\" : \"0.0.2\","
851 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"NotPar0\", \"defaultValue\" : "
852 + "\"Parameter Defaultvalue\"}},"
853 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
854 + "\"description\" : \"A description of hello\"" + "}";
855 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
856 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
857 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
859 entityString = "{" + "\"name\" : \"Howdy4\"," + "\"version\" : \"0.0.2\","
860 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"MyParameter\", \"defaultValue\" : null}},"
861 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
862 + "\"description\" : \"A description of hello\"" + "}";
863 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
864 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
865 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
867 entityString = "{" + "\"name\" : \"HowsItGoing5\"," + "\"version\" : \"0.0.2\","
868 + "\"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
869 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
870 + "\"description\" : \"A description of hello\"" + "}";
871 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
872 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
873 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
875 entityString = "{" + "\"name\" : \"Hi5\"," + "\"version\" : \"0.0.2\","
876 + "\"contexts\" : []," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
877 + "\"description\" : \"A description of hello\"" + "}";
878 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
879 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
880 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
882 entityString = "{" + "\"name\" : \"GoodDay5\"," + "\"version\" : \"0.0.2\","
883 + "\"contexts\" : [{\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\"}],"
884 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
885 + "\"description\" : \"A description of hello\"" + "}";
886 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
887 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
888 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
890 entityString = "{" + "\"name\" : \"Howdy5\"," + "\"version\" : \"0.0.2\","
891 + "\"contexts\" : [{\"name\" : null, \"version\" : \"0.0.1\"}],"
892 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
893 + "\"description\" : \"A description of hello\"" + "}";
894 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
895 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
896 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
898 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
899 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
900 + "\"description\" : \"A description of hello\"" + "}";
901 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
902 result = target("editor/-12345/Task/Update").request().put(entity, ApexApiResult.class);
903 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
904 result = target("editor/1234545/Task/Update").request().put(entity, ApexApiResult.class);
905 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
906 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
907 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
910 target("editor/" + corruptSessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
911 } catch (final Exception e) {
912 assertEquals("HTTP 500 Request failed.", e.getMessage());
915 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
916 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
917 + "\"description\" : \"A description of hello\"" + "}";
918 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
919 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
920 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
922 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
923 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
924 + "\"description\" : \"A description of hello\"" + "}";
925 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
926 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
927 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
929 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "Hello")
930 .queryParam("version", (String) null).request().get(ApexApiResult.class);
931 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
932 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", (String) null)
933 .queryParam("version", (String) null).request().get(ApexApiResult.class);
934 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
935 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "IDontExist")
936 .queryParam("version", (String) null).request().get(ApexApiResult.class);
937 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
938 result = target("editor/-123345/Task/Get").queryParam("name", (String) null)
939 .queryParam("version", (String) null).request().get(ApexApiResult.class);
940 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
941 result = target("editor/123345/Task/Get").queryParam("name", (String) null).queryParam("version", (String) null)
942 .request().get(ApexApiResult.class);
943 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
946 target("editor/" + corruptSessionId + "/Task/Get").queryParam("name", "Hello")
947 .queryParam("version", (String) null).request().get(ApexApiResult.class);
948 } catch (final Exception e) {
949 assertEquals("HTTP 500 Request failed.", e.getMessage());
952 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
953 .queryParam("version", (String) null).request().get(ApexApiResult.class);
954 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
955 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
956 .queryParam("version", (String) null).request().get(ApexApiResult.class);
957 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
958 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
959 .queryParam("version", (String) null).request().get(ApexApiResult.class);
960 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
963 target("editor/" + corruptSessionId + "/Task/Delete").queryParam("name", (String) null)
964 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
965 } catch (final Exception e) {
966 assertEquals("HTTP 500 Request failed.", e.getMessage());
969 result = target("editor/-123345/Task/Delete").queryParam("name", (String) null)
970 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
971 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
972 result = target("editor/123345/Task/Delete").queryParam("name", (String) null)
973 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
974 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
975 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", "Hello")
976 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
977 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
978 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", (String) null)
979 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
980 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
984 public void testPolicy() throws IOException {
985 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
987 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
988 assertEquals(Result.SUCCESS, result.getResult());
989 final int sessionId = new Integer(result.getMessages().get(0));
991 result = target("editor/-12345/Model/Validate").request().get(ApexApiResult.class);
992 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
994 result = target("editor/" + sessionId + "/Model/Validate").request().get(ApexApiResult.class);
995 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
998 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
999 } catch (final Exception e) {
1000 assertEquals("HTTP 500 Request failed.", e.getMessage());
1003 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", (String) null)
1004 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1005 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1007 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", "%%%$£")
1008 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1009 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1011 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1013 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
1014 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1015 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1016 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1017 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1018 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1019 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1020 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
1021 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1022 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1023 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
1024 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1025 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1026 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
1027 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1028 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1030 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1031 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1032 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1033 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1034 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1036 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1037 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1038 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1039 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1040 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1041 + "\"description\" : \"A description of hello\"" + "}";
1042 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1043 result = target("editor/-12345/Policy/Create").request().post(entity, ApexApiResult.class);
1044 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1045 result = target("editor/1234545/Policy/Create").request().post(entity, ApexApiResult.class);
1046 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1047 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1048 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1049 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1050 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
1053 target("editor/" + corruptSessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1054 } catch (final Exception e) {
1055 assertEquals("HTTP 500 Request failed.", e.getMessage());
1058 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
1059 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1060 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1061 + "\"description\" : \"A description of hello\"" + "}";
1062 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1063 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1064 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1066 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1067 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1068 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1069 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1070 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1072 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1073 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1074 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1075 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1076 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1077 + "\"description\" : \"A description of hello\"" + "}";
1078 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1079 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1080 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1082 entityString = "{" + "\"name\" : \"Hello2\"," + "\"version\" : \"0.0.2\","
1083 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1084 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1085 + " \"trigger\" : null,"
1086 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1088 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1089 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1090 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1091 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1092 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1093 + "\"description\" : \"A description of hello\"" + "}";
1094 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1095 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1096 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1098 entityString = "{" + "\"name\" : \"Hello3\"," + "\"version\" : \"0.0.2\","
1099 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1100 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1101 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1102 + " \"defaultTask\" : null," + " \"stateOutputs\" : {" + " \"so0\" : {"
1103 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1104 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1105 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1106 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1107 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1108 + "\"description\" : \"A description of hello\"" + "}";
1109 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1110 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1111 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1113 entityString = "{" + "\"name\" : \"Hello4\"," + "\"version\" : \"0.0.2\","
1114 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1115 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1116 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1117 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1118 + " \"stateOutputs\" : null," + " \"tasks\" : {" + " \"tr0\" : {"
1119 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1120 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1121 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1122 + "\"description\" : \"A description of hello\"" + "}";
1123 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1124 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1125 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1127 entityString = "{" + "\"name\" : \"Hello5\"," + "\"version\" : \"0.0.2\","
1128 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1129 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1130 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1131 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1133 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1134 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : null" + " }" + "},"
1135 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1136 + "\"description\" : \"A description of hello\"" + "}";
1137 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1138 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1139 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1141 entityString = "{" + "\"name\" : \"Hello6\"," + "\"version\" : \"0.0.2\","
1142 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1143 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1144 + " \"trigger\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1145 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1147 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1148 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1149 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1150 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1151 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1152 + "\"description\" : \"A description of hello\"" + "}";
1153 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1154 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1155 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1157 entityString = "{" + "\"name\" : \"Hello7\"," + "\"version\" : \"0.0.2\","
1158 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1159 + "\"states\" : {" + " \"state\" : null" + "},"
1160 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1161 + "\"description\" : \"A description of hello\"" + "}";
1162 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1163 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1164 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1166 entityString = "{" + "\"name\" : \"Hello8\"," + "\"version\" : \"0.0.2\","
1167 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1168 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1169 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1170 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1172 + " \"event\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1173 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1174 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1175 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1176 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1177 + "\"description\" : \"A description of hello\"" + "}";
1178 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1179 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1180 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1182 entityString = "{" + "\"name\" : \"Hello9\"," + "\"version\" : \"0.0.2\","
1183 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1184 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1185 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1186 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1187 + " \"so0\" : {" + " \"event\" : null," + " \"nextState\" : null" + " }"
1188 + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1189 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1190 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1191 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1192 + "\"description\" : \"A description of hello\"" + "}";
1193 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1194 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1195 System.err.println(result);
1196 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1198 entityString = "{" + "\"name\" : \"Hello10\"," + "\"version\" : \"0.0.2\","
1199 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1200 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1201 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1202 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1204 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1205 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1207 + " \"task\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1208 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1209 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1210 + "\"description\" : \"A description of hello\"" + "}";
1211 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1212 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1213 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1215 entityString = "{" + "\"name\" : \"Hello11\"," + "\"version\" : \"0.0.2\","
1216 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1217 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1218 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1219 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1221 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1222 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1223 + " \"tr0\" : {" + " \"task\" : null," + " \"outputType\" : \"DIRECT\","
1224 + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1225 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1226 + "\"description\" : \"A description of hello\"" + "}";
1227 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1228 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1229 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1231 entityString = "{" + "\"name\" : \"Hello12\"," + "\"version\" : \"0.0.2\","
1232 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1233 + "\"states\" : {" + " \"state\" : {"
1234 + " \"name\" : \"state\","
1235 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1236 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1237 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1238 + "lots of lime\"}," + " \"stateOutputs\" : {" + " \"so0\" : {"
1239 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1240 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1242 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1243 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1244 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1245 + "\"description\" : \"A description of hello\"" + "}";
1246 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1247 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1248 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1250 entityString = "{" + "\"name\" : \"Hello13\"," + "\"version\" : \"0.0.2\","
1251 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1252 + "\"states\" : {" + " \"state\" : {"
1253 + " \"name\" : \"state\","
1254 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1255 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1256 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
1257 + " \"stateOutputs\" : {" + " \"so0\" : {"
1258 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1259 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1261 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1262 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1263 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1264 + "\"description\" : \"A description of hello\"" + "}";
1265 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1266 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1267 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1269 entityString = "{" + "\"name\" : \"Hello14\"," + "\"version\" : \"0.0.2\","
1270 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1271 + "\"states\" : {" + " \"state\" : {"
1272 + " \"name\" : \"state\","
1273 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1274 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1275 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1276 + "lots of lime\"},"
1277 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1278 + " \"stateOutputs\" : {" + " \"so0\" : {"
1279 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1280 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1282 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1283 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1284 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1285 + "\"description\" : \"A description of hello\"" + "}";
1286 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1287 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1288 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1290 entityString = "{" + "\"name\" : \"Hello15\"," + "\"version\" : \"0.0.2\","
1291 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1292 + "\"states\" : {" + " \"state\" : {"
1293 + " \"name\" : \"state\","
1294 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1295 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1296 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1297 + "lots of lime\"},"
1298 + " \"contexts\" : [{\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"}],"
1299 + " \"stateOutputs\" : {" + " \"so0\" : {"
1300 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1301 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1303 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1304 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1305 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1306 + "\"description\" : \"A description of hello\"" + "}";
1307 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1308 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1309 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1311 entityString = "{" + "\"name\" : \"Hello16\"," + "\"version\" : \"0.0.2\","
1312 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1313 + "\"states\" : {" + " \"state\" : {"
1314 + " \"name\" : \"state\","
1315 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1316 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1317 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1318 + "lots of lime\"},"
1319 + " \"contexts\" : [null]," + " \"stateOutputs\" : {" + " \"so0\" : {"
1320 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1321 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1323 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1324 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1325 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1326 + "\"description\" : \"A description of hello\"" + "}";
1327 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1328 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1329 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1331 entityString = "{" + "\"name\" : \"Hello17\"," + "\"version\" : \"0.0.2\","
1332 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1333 + "\"states\" : {" + " \"state\" : {"
1334 + " \"name\" : \"state\","
1335 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1336 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1337 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1338 + "lots of lime\"},"
1339 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1340 + " \"stateOutputs\" : {" + " \"so0\" : {"
1341 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1342 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1344 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1345 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1346 + " \"finalizers\" : {"
1347 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1349 + " }" + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1350 + "\"description\" : \"A description of hello\"" + "}";
1351 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1352 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1353 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1355 entityString = "{" + "\"name\" : \"Hello18\"," + "\"version\" : \"0.0.2\","
1356 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1357 + "\"states\" : {" + " \"state\" : {"
1358 + " \"name\" : \"state\","
1359 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1360 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1361 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1362 + "lots of lime\"},"
1363 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1364 + " \"stateOutputs\" : {" + " \"so0\" : {"
1365 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1366 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1368 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1369 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1370 + " \"finalizers\" : {" + " \"sf0\" : null" + " }" + " }" + "},"
1371 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1372 + "\"description\" : \"A description of hello\"" + "}";
1373 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1374 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1375 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1377 entityString = "{" + "\"name\" : \"Hello19\"," + "\"version\" : \"0.0.2\","
1378 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1379 + "\"states\" : {" + " \"state\" : {"
1380 + " \"name\" : \"state\","
1381 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1382 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1383 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1384 + "lots of lime\"},"
1385 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1386 + " \"stateOutputs\" : {" + " \"so0\" : {"
1387 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1388 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1390 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1391 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1392 + " \"finalizers\" : {"
1393 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null}" + " }" + " }"
1394 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1395 + "\"description\" : \"A description of hello\"" + "}";
1396 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1397 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1398 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1400 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1401 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1402 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1403 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1404 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1406 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1407 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1408 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1409 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1410 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1411 + "\"description\" : \"A better description of hello\"" + "}";
1412 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1413 result = target("editor/-12345/Policy/Update").request().put(entity, ApexApiResult.class);
1414 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1415 result = target("editor/1234545/Policy/Update").request().put(entity, ApexApiResult.class);
1416 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1417 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1418 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1420 result = target("editor/" + sessionId + "/Policy/Update").queryParam("firstStatePeriodic", "true").request()
1421 .put(entity, ApexApiResult.class);
1422 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1425 target("editor/" + corruptSessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1426 } catch (final Exception e) {
1427 assertEquals("HTTP 500 Request failed.", e.getMessage());
1430 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
1431 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1432 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1433 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1434 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1436 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1437 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1438 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1439 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1440 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1441 + "\"description\" : \"A better description of hello\"" + "}";
1442 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1443 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1444 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1446 entityString = "{" + "\"name\" : \"IDontExist\"," + "\"version\" : \"0.0.2\","
1447 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1448 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1449 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1450 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1452 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1453 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1454 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1455 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1456 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1457 + "\"description\" : \"A better description of hello\"" + "}";
1458 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1459 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1460 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1462 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "Hello")
1463 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1464 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1465 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "IDontExist")
1466 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1467 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1468 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", (String) null)
1469 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1470 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1471 result = target("editor/-123345/Policy/Get").queryParam("name", (String) null)
1472 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1473 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1474 result = target("editor/123345/Policy/Get").queryParam("name", (String) null)
1475 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1476 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1479 target("editor/" + corruptSessionId + "/Policy/Get").queryParam("name", "Hello")
1480 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1481 } catch (final Exception e) {
1482 assertEquals("HTTP 500 Request failed.", e.getMessage());
1485 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
1486 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1487 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1488 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
1489 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1490 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1491 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
1492 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1493 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1496 target("editor/" + corruptSessionId + "/Policy/Delete").queryParam("name", (String) null)
1497 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1498 } catch (final Exception e) {
1499 assertEquals("HTTP 500 Request failed.", e.getMessage());
1502 result = target("editor/-123345/Policy/Delete").queryParam("name", (String) null)
1503 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1504 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1505 result = target("editor/123345/Policy/Delete").queryParam("name", (String) null)
1506 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1507 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1508 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", "Hello")
1509 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
1510 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1511 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", (String) null)
1512 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1513 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());