2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020-2021 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.gui.editors.apex.rest.handling;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
27 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;
31 import org.glassfish.jersey.media.multipart.MultiPartFeature;
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.common.utils.resources.TextFileUtils;
40 * Test Apex Editor Rest Resource.
42 * @author Liam Fallon (liam.fallon@ericsson.com)
44 public class ApexEditorRestResourceTest extends JerseyTest {
46 protected Application configure() {
47 return new ResourceConfig(ApexEditorRestResource.class).register(MultiPartFeature.class);
51 public void testSessionCreate() {
52 ApexApiResult result = target("editor/-2/Session/Create").request().get(ApexApiResult.class);
53 assertEquals(Result.FAILED, result.getResult());
55 result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
56 assertEquals(Result.SUCCESS, result.getResult());
57 final int sessionId = Integer.parseInt(result.getMessages().get(0));
59 result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
60 assertEquals(Result.SUCCESS, result.getResult());
62 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
64 target("editor/" + corruptSessionId + "/Model/Analyse").request().get(ApexApiResult.class);
66 result = target("editor/" + sessionId + "/Model/Analyse").request().get(ApexApiResult.class);
67 assertEquals(Result.SUCCESS, result.getResult());
68 result = target("editor/-12345/Model/Analyse").request().get(ApexApiResult.class);
69 assertEquals(Result.FAILED, result.getResult());
70 result = target("editor/12345/Model/Analyse").request().get(ApexApiResult.class);
71 assertEquals(Result.FAILED, result.getResult());
73 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
75 result = target("editor/" + sessionId + "/Model/Validate").request().get(ApexApiResult.class);
76 assertEquals(Result.FAILED, result.getResult());
77 result = target("editor/-12345/Model/Validate").request().get(ApexApiResult.class);
78 assertEquals(Result.FAILED, result.getResult());
79 result = target("editor/12345/Model/Validate").request().get(ApexApiResult.class);
80 assertEquals(Result.FAILED, result.getResult());
82 final String modelString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
83 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002699\","
84 + "\"description\" : \"A description of the model\"" + "}";
85 final Entity<String> csEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
86 result = target("editor/-12345/Model/Create").request().post(csEntity, ApexApiResult.class);
87 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
88 result = target("editor/-12345/Model/Create").request().post(csEntity, ApexApiResult.class);
89 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
90 result = target("editor/1234545/Model/Create").request().post(csEntity, ApexApiResult.class);
91 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
92 result = target("editor/" + sessionId + "/Model/Create").request().post(csEntity, ApexApiResult.class);
93 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
95 target("editor/" + corruptSessionId + "/Model/Create").request().post(csEntity, ApexApiResult.class);
97 result = target("editor/-12345/Model/Update").request().put(csEntity, ApexApiResult.class);
98 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
99 result = target("editor/-12345/Model/Update").request().put(csEntity, ApexApiResult.class);
100 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
101 result = target("editor/1234545/Model/Update").request().put(csEntity, ApexApiResult.class);
102 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
103 result = target("editor/" + sessionId + "/Model/Update").request().put(csEntity, ApexApiResult.class);
104 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
106 target("editor/" + corruptSessionId + "/Model/Update").request().put(csEntity, ApexApiResult.class);
108 target("editor/" + corruptSessionId + "/Model/GetKey").request().get(ApexApiResult.class);
110 result = target("editor/" + sessionId + "/Model/GetKey").request().get(ApexApiResult.class);
111 assertEquals(Result.SUCCESS, result.getResult());
112 result = target("editor/-12345/Model/GetKey").request().get(ApexApiResult.class);
113 assertEquals(Result.FAILED, result.getResult());
114 result = target("editor/12345/Model/GetKey").request().get(ApexApiResult.class);
115 assertEquals(Result.FAILED, result.getResult());
117 target("editor/" + corruptSessionId + "/Model/Get").request().get(ApexApiResult.class);
119 result = target("editor/" + sessionId + "/Model/Get").request().get(ApexApiResult.class);
120 assertEquals(Result.SUCCESS, result.getResult());
121 result = target("editor/-12345/Model/Get").request().get(ApexApiResult.class);
122 assertEquals(Result.FAILED, result.getResult());
123 result = target("editor/12345/Model/Get").request().get(ApexApiResult.class);
124 assertEquals(Result.FAILED, result.getResult());
126 String resultString = target("editor/" + corruptSessionId + "/Model/Download").request().get(String.class);
127 assertEquals("", resultString);
129 resultString = target("editor/" + sessionId + "/Model/Download").request().get(String.class);
130 assertNotNull(resultString);
134 public void testSessionCreateExt() {
135 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
137 final int sessionId = Integer.parseInt(result.getMessages().get(0));
138 target("editor/-1/Session/Create").request().get(ApexApiResult.class);
139 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
141 String resultString = target("editor/-12345/Model/Download").request().get(String.class);
142 assertEquals("", resultString);
144 resultString = target("editor/12345/Model/Download").request().get(String.class);
145 assertEquals("", resultString);
147 target("editor/" + corruptSessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
149 result = target("editor/" + sessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
150 assertEquals(Result.SUCCESS, result.getResult());
151 result = target("editor/-12345/KeyInformation/Get").request().get(ApexApiResult.class);
152 assertEquals(Result.FAILED, result.getResult());
153 result = target("editor/12345/KeyInformation/Get").request().get(ApexApiResult.class);
154 assertEquals(Result.FAILED, result.getResult());
156 target("editor/" + corruptSessionId + "/Model/Delete").request().delete(ApexApiResult.class);
158 result = target("editor/" + sessionId + "/Model/Delete").request().delete(ApexApiResult.class);
159 assertEquals(Result.SUCCESS, result.getResult());
160 result = target("editor/-12345/Model/Delete").request().delete(ApexApiResult.class);
161 assertEquals(Result.FAILED, result.getResult());
162 result = target("editor/12345/Model/Delete").request().delete(ApexApiResult.class);
163 assertEquals(Result.FAILED, result.getResult());
167 public void testContextSchema() throws IOException {
168 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
169 assertEquals(Result.SUCCESS, result.getResult());
170 final int sessionId = Integer.parseInt(result.getMessages().get(0));
172 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
174 result = target("editor/-12345/Validate/ContextSchema").request().get(ApexApiResult.class);
175 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
177 target("editor/" + corruptSessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
179 result = target("editor/" + sessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
180 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
182 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
183 .queryParam("version", (String) null).request().get(ApexApiResult.class);
184 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
186 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", "%%%$£")
187 .queryParam("version", (String) null).request().get(ApexApiResult.class);
188 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
190 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
192 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
193 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
194 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
195 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
196 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
197 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
198 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
199 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
200 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
201 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
202 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
203 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
204 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
205 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", (String) null)
206 .queryParam("version", (String) null).request().get(ApexApiResult.class);
207 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
209 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", (String) null)
210 .queryParam("version", (String) null).request().get(ApexApiResult.class);
212 String csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
213 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"java.lang.String\","
214 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
215 + "\"description\" : \"A description of hello\"" + "}";
216 Entity<String> csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
217 result = target("editor/-12345/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
218 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
219 result = target("editor/1234545/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
220 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
221 result = target("editor/" + sessionId + "/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
222 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
224 target("editor/" + corruptSessionId + "/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
226 csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
227 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"my.perfect.String\","
228 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
229 + "\"description\" : \"A description of hello\"" + "}";
230 csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
231 result = target("editor/-12345/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
232 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
233 result = target("editor/1234545/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
234 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
235 result = target("editor/" + sessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
236 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
238 target("editor/" + corruptSessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
240 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "Hello")
241 .queryParam("version", (String) null).request().get(ApexApiResult.class);
242 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
243 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "NonExistant")
244 .queryParam("version", (String) null).request().get(ApexApiResult.class);
245 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
246 result = target("editor/-123345/ContextSchema/Get").queryParam("name", (String) null)
247 .queryParam("version", (String) null).request().get(ApexApiResult.class);
248 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
249 result = target("editor/123345/ContextSchema/Get").queryParam("name", (String) null)
250 .queryParam("version", (String) null).request().get(ApexApiResult.class);
251 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
253 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", "Hello")
254 .queryParam("version", (String) null).request().get(ApexApiResult.class);
256 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
257 .queryParam("version", (String) null).request().get(ApexApiResult.class);
258 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
260 target("editor/" + corruptSessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
261 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
263 result = target("editor/-123345/ContextSchema/Delete").queryParam("name", (String) null)
264 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
265 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
266 result = target("editor/123345/ContextSchema/Delete").queryParam("name", (String) null)
267 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
268 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
269 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
270 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
271 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
275 public void testContextSchemaExt() throws IOException {
276 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
277 final int sessionId = Integer.parseInt(result.getMessages().get(0));
278 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
280 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
281 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
282 target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", (String) null)
283 .queryParam("version", (String) null).request().get(ApexApiResult.class);
285 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", (String) null)
286 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
287 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
291 public void testContextAlbum() throws IOException {
292 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
293 assertEquals(Result.SUCCESS, result.getResult());
294 final int sessionId = Integer.parseInt(result.getMessages().get(0));
295 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
297 result = target("editor/-12345/Validate/ContextAlbum").request().get(ApexApiResult.class);
298 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
300 target("editor/" + corruptSessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
302 result = target("editor/" + sessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
303 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
305 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
306 .queryParam("version", (String) null).request().get(ApexApiResult.class);
307 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
309 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", "%%%$£")
310 .queryParam("version", (String) null).request().get(ApexApiResult.class);
311 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
313 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
315 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
316 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
317 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
318 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
319 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
320 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
321 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
322 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
323 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
324 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
325 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
326 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
327 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
328 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", (String) null)
329 .queryParam("version", (String) null).request().get(ApexApiResult.class);
330 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
332 String caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
333 + "\"scope\" : \"Domain\"," + "\"writeable\" : false,"
334 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
335 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
336 + "\"description\" : \"A description of hello\"" + "}";
337 Entity<String> caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
338 result = target("editor/-12345/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
339 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
340 result = target("editor/1234545/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
341 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
342 result = target("editor/" + sessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
343 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
345 target("editor/" + corruptSessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
347 caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
348 + "\"scope\" : \"Global\"," + "\"writeable\" : false,"
349 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
350 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
351 + "\"description\" : \"A description of hello\"" + "}";
352 caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
353 result = target("editor/-12345/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
354 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
355 result = target("editor/1234545/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
356 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
357 result = target("editor/" + sessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
358 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
360 target("editor/" + corruptSessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
362 target("editor/" + corruptSessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
363 .queryParam("version", (String) null).request().get(ApexApiResult.class);
365 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
366 .queryParam("version", (String) null).request().get(ApexApiResult.class);
367 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
368 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "IDontExist")
369 .queryParam("version", (String) null).request().get(ApexApiResult.class);
370 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
371 result = target("editor/-123345/ContextAlbum/Get").queryParam("name", (String) null)
372 .queryParam("version", (String) null).request().get(ApexApiResult.class);
373 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
374 result = target("editor/123345/ContextAlbum/Get").queryParam("name", (String) null)
375 .queryParam("version", (String) null).request().get(ApexApiResult.class);
376 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
378 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
379 .queryParam("version", (String) null).request().get(ApexApiResult.class);
380 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
382 target("editor/" + corruptSessionId + "/ContextAlbum/Delete").queryParam("name", (String) null)
383 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
385 result = target("editor/-123345/ContextAlbum/Delete").queryParam("name", (String) null)
386 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
387 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
388 result = target("editor/123345/ContextAlbum/Delete").queryParam("name", (String) null)
389 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
390 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
391 result = target("editor/" + sessionId + "/ContextAlbum/Delete").queryParam("name", "Hello")
392 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
393 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
397 public void testContextAlbumExt() throws IOException {
398 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
399 final int sessionId = Integer.parseInt(result.getMessages().get(0));
401 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
403 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
404 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
405 target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", (String) null)
406 .queryParam("version", (String) null).request().get(ApexApiResult.class);
408 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
412 public void testEvent() throws IOException {
413 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
415 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
416 assertEquals(Result.SUCCESS, result.getResult());
417 final int sessionId = Integer.parseInt(result.getMessages().get(0));
419 result = target("editor/-12345/Validate/Event").request().get(ApexApiResult.class);
420 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
422 result = target("editor/" + sessionId + "/Validate/Event").request().get(ApexApiResult.class);
423 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
425 target("editor/" + corruptSessionId + "/Validate/Event").request().get(ApexApiResult.class);
427 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
428 .queryParam("version", (String) null).request().get(ApexApiResult.class);
429 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
431 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", "%%%$£")
432 .queryParam("version", (String) null).request().get(ApexApiResult.class);
433 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
435 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.yaml");
437 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
438 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
439 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
440 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
441 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
442 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
443 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
444 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
445 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
446 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
447 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
448 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
449 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
450 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
451 .queryParam("version", (String) null).request().get(ApexApiResult.class);
452 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
454 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
455 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
456 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
457 + "\"description\" : \"A description of hello\"" + "}";
458 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
459 result = target("editor/-12345/Event/Create").request().post(entity, ApexApiResult.class);
460 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
461 result = target("editor/1234545/Event/Create").request().post(entity, ApexApiResult.class);
462 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
463 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
464 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
465 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
466 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
468 target("editor/" + corruptSessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
470 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
471 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
472 + "\"target\" : \"end\"," + "\"parameters\" : {},"
473 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
474 + "\"description\" : \"A description of hello\"" + "}";
475 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
476 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
477 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
479 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
480 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
481 + "\"target\" : \"end\","
482 + "\"parameters\" : {\"Par0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
483 + "\"localName\" : \"Par0\", \"optional\" : false}},"
484 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
485 + "\"description\" : \"A description of hello\"" + "}";
486 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
487 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
488 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
490 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
491 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
492 + "\"target\" : \"end\"," + "\"parameters\" : {\"Par0\" : null},"
493 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
494 + "\"description\" : \"A description of hello\"" + "}";
495 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
496 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
497 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
499 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
500 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
501 + "\"target\" : \"end\","
502 + "\"parameters\" : {\"Par0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
503 + "\"localName\" : \"Par0\", \"optional\" : false}},"
504 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
505 + "\"description\" : \"A description of hello\"" + "}";
506 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
507 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
508 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
510 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
511 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
512 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
513 + "\"description\" : \"A description of hello\"" + "}";
514 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
515 result = target("editor/-12345/Event/Update").request().put(entity, ApexApiResult.class);
516 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
517 result = target("editor/1234545/Event/Update").request().put(entity, ApexApiResult.class);
518 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
519 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
520 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
522 target("editor/" + corruptSessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
524 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
525 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
526 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
527 + "\"description\" : \"A description of hello\"" + "}";
528 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
529 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
530 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
532 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
533 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\"," + "\"source\" : \"start\","
534 + "\"target\" : \"finish\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
535 + "\"description\" : \"A description of hello\"" + "}";
536 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
537 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
538 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
540 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "Hello")
541 .queryParam("version", (String) null).request().get(ApexApiResult.class);
542 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
546 public void testEventExt() {
547 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
549 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
550 final int sessionId = Integer.parseInt(result.getMessages().get(0));
552 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
553 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
554 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
555 + "\"description\" : \"A description of hello\"" + "}";
556 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
557 target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
559 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
560 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
561 + "\"target\" : \"end\"," + "\"parameters\" : {},"
562 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
563 + "\"description\" : \"A description of hello\"" + "}";
564 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
566 target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
567 target("editor/" + corruptSessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
568 target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
569 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "IDontExist")
570 .queryParam("version", (String) null).request().get(ApexApiResult.class);
571 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
572 result = target("editor/-123345/Event/Get").queryParam("name", (String) null)
573 .queryParam("version", (String) null).request().get(ApexApiResult.class);
574 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
575 result = target("editor/123345/Event/Get").queryParam("name", (String) null)
576 .queryParam("version", (String) null).request().get(ApexApiResult.class);
577 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
579 target("editor/" + corruptSessionId + "/Event/Get").queryParam("name", "Hello")
580 .queryParam("version", (String) null).request().get(ApexApiResult.class);
582 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
583 .queryParam("version", (String) null).request().get(ApexApiResult.class);
584 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
585 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
586 .queryParam("version", (String) null).request().get(ApexApiResult.class);
587 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
588 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
589 .queryParam("version", (String) null).request().get(ApexApiResult.class);
590 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
592 target("editor/" + corruptSessionId + "/Event/Delete").queryParam("name", (String) null)
593 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
595 result = target("editor/-123345/Event/Delete").queryParam("name", (String) null)
596 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
597 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
598 result = target("editor/123345/Event/Delete").queryParam("name", (String) null)
599 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
600 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
601 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", "Hello")
602 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
603 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
604 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", (String) null)
605 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
606 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
610 public void testTask() throws IOException {
611 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
613 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
614 assertEquals(Result.SUCCESS, result.getResult());
615 final int sessionId = Integer.parseInt(result.getMessages().get(0));
617 result = target("editor/-12345/Validate/Task").request().get(ApexApiResult.class);
618 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
620 result = target("editor/" + sessionId + "/Validate/Task").request().get(ApexApiResult.class);
621 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
624 target("editor/" + corruptSessionId + "/Validate/Task").request().get(ApexApiResult.class);
625 } catch (final Exception e) {
626 assertEquals("HTTP 500 Request failed.", e.getMessage());
629 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", (String) null)
630 .queryParam("version", (String) null).request().get(ApexApiResult.class);
631 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
633 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", "%%%$£")
634 .queryParam("version", (String) null).request().get(ApexApiResult.class);
635 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
637 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
639 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
640 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
641 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
642 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
643 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
644 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
645 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
646 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
647 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
648 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
649 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
650 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
651 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
652 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
653 .queryParam("version", (String) null).request().get(ApexApiResult.class);
654 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
656 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
657 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
658 + "\"description\" : \"A description of hello\"" + "}";
659 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
660 result = target("editor/-12345/Task/Create").request().post(entity, ApexApiResult.class);
661 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
662 result = target("editor/1234545/Task/Create").request().post(entity, ApexApiResult.class);
663 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
664 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
665 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
666 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
667 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
669 target("editor/" + corruptSessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
671 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
672 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
673 + "\"description\" : \"A description of hello\"" + "}";
674 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
675 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
676 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
678 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
679 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
680 + "\"localName\" : \"IField0\", \"optional\" : false}},"
681 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
682 + "\"description\" : \"A description of hello\"" + "}";
683 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
684 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
685 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
687 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
688 + "\"inputFields\" : {\"IField0\" : null},"
689 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
690 + "\"description\" : \"A description of hello\"" + "}";
691 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
692 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
693 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
695 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
696 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
697 + "\"localName\" : \"IField0\", \"optional\" : false}},"
698 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
699 + "\"description\" : \"A description of hello\"" + "}";
700 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
701 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
702 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
704 entityString = "{" + "\"name\" : \"Howdy\"," + "\"version\" : \"0.0.2\","
705 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
706 + "\"localName\" : \"NotIField0\", \"optional\" : false}},"
707 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
708 + "\"description\" : \"A description of hello\"" + "}";
709 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
710 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
711 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
713 entityString = "{" + "\"name\" : \"HowsItGoing2\"," + "\"version\" : \"0.0.2\","
714 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
715 + "\"localName\" : \"OField0\", \"optional\" : false}},"
716 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
717 + "\"description\" : \"A description of hello\"" + "}";
718 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
719 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
720 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
722 entityString = "{" + "\"name\" : \"Hi2\"," + "\"version\" : \"0.0.2\","
723 + "\"outputFields\" : {\"OField0\" : null},"
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.FAILED, result.getResult());
730 entityString = "{" + "\"name\" : \"GoodDay2\"," + "\"version\" : \"0.0.2\","
731 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\","
732 + " \"localName\" : \"OField0\", \"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.CONCEPT_DOES_NOT_EXIST, result.getResult());
739 entityString = "{" + "\"name\" : \"Howdy2\"," + "\"version\" : \"0.0.2\","
740 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
741 + "\"localName\" : \"NotOField0\", \"optional\" : false}},"
742 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
743 + "\"description\" : \"A description of hello\"" + "}";
744 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
745 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
746 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
750 public void testTaskExt() throws IOException {
751 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
753 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
754 final int sessionId = Integer.parseInt(result.getMessages().get(0));
756 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
758 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
759 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
760 target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
761 .queryParam("version", (String) null).request().get(ApexApiResult.class);
763 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
764 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
765 + "\"description\" : \"A description of hello\"" + "}";
766 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
767 target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
768 target("editor/" + corruptSessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
769 entityString = "{" + "\"name\" : \"HowsItGoing3\"," + "\"version\" : \"0.0.2\","
770 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons,"
771 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
772 + "\"description\" : \"A description of hello\"" + "}";
774 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
775 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
776 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
778 entityString = "{" + "\"name\" : \"Hi3\"," + "\"version\" : \"0.0.2\","
779 + "\"taskLogic\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
780 + "\"description\" : \"A description of hello\"" + "}";
781 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
782 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
783 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
785 entityString = "{" + "\"name\" : \"GoodDay3\"," + "\"version\" : \"0.0.2\","
786 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
787 + "\"target\" : \"end\","
788 + "\"taskLogic\" : {\"logicFlavour\" : \"UNDEFINED\", \"logic\" : \"lots of lemons,"
789 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
790 + "\"description\" : \"A description of hello\"" + "}";
791 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
792 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
793 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
795 entityString = "{" + "\"name\" : \"Howdy3\"," + "\"version\" : \"0.0.2\","
796 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
797 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
798 + "\"description\" : \"A description of hello\"" + "}";
799 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
800 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
801 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
803 entityString = "{" + "\"name\" : \"HowsItGoing4\"," + "\"version\" : \"0.0.2\","
804 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"Par0\", "
805 + "\"defaultValue\" : \"Parameter Defaultvalue\"}},"
806 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
807 + "\"description\" : \"A description of hello\"" + "}";
808 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
809 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
810 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
812 entityString = "{" + "\"name\" : \"Hi4\"," + "\"version\" : \"0.0.2\","
813 + "\"parameters\" : {\"Par0\" : null},"
814 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
815 + "\"description\" : \"A description of hello\"" + "}";
816 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
817 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
818 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
820 entityString = "{" + "\"name\" : \"GoodDay4\"," + "\"version\" : \"0.0.2\","
821 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"NotPar0\", \"defaultValue\" : "
822 + "\"Parameter Defaultvalue\"}}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
823 + "\"description\" : \"A description of hello\"" + "}";
824 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
825 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
826 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
828 entityString = "{" + "\"name\" : \"Howdy4\"," + "\"version\" : \"0.0.2\","
829 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"MyParameter\", \"defaultValue\" : null}},"
830 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
831 + "\"description\" : \"A description of hello\"" + "}";
832 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
833 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
834 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
836 entityString = "{" + "\"name\" : \"HowsItGoing5\"," + "\"version\" : \"0.0.2\","
837 + "\"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
838 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
839 + "\"description\" : \"A description of hello\"" + "}";
840 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
841 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
842 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
844 entityString = "{" + "\"name\" : \"Hi5\"," + "\"version\" : \"0.0.2\","
845 + "\"contexts\" : []," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
846 + "\"description\" : \"A description of hello\"" + "}";
847 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
848 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
849 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
851 entityString = "{" + "\"name\" : \"GoodDay5\"," + "\"version\" : \"0.0.2\","
852 + "\"contexts\" : [{\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\"}],"
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.CONCEPT_DOES_NOT_EXIST, result.getResult());
859 entityString = "{" + "\"name\" : \"Howdy5\"," + "\"version\" : \"0.0.2\","
860 + "\"contexts\" : [{\"name\" : null, \"version\" : \"0.0.1\"}],"
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\" : \"Hello\"," + "\"version\" : \"0.0.2\","
868 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
869 + "\"description\" : \"A description of hello\"" + "}";
870 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
871 result = target("editor/-12345/Task/Update").request().put(entity, ApexApiResult.class);
872 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
873 result = target("editor/1234545/Task/Update").request().put(entity, ApexApiResult.class);
874 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
875 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
876 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
878 target("editor/" + corruptSessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
880 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
881 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
882 + "\"description\" : \"A description of hello\"" + "}";
883 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
884 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
885 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
887 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
888 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
889 + "\"description\" : \"A description of hello\"" + "}";
890 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
891 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
892 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
894 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "Hello")
895 .queryParam("version", (String) null).request().get(ApexApiResult.class);
896 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
897 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", (String) null)
898 .queryParam("version", (String) null).request().get(ApexApiResult.class);
899 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
900 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "IDontExist")
901 .queryParam("version", (String) null).request().get(ApexApiResult.class);
902 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
903 result = target("editor/-123345/Task/Get").queryParam("name", (String) null)
904 .queryParam("version", (String) null).request().get(ApexApiResult.class);
905 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
906 result = target("editor/123345/Task/Get").queryParam("name", (String) null).queryParam("version", (String) null)
907 .request().get(ApexApiResult.class);
908 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
910 target("editor/" + corruptSessionId + "/Task/Get").queryParam("name", "Hello")
911 .queryParam("version", (String) null).request().get(ApexApiResult.class);
913 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
914 .queryParam("version", (String) null).request().get(ApexApiResult.class);
915 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
916 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
917 .queryParam("version", (String) null).request().get(ApexApiResult.class);
918 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
919 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
920 .queryParam("version", (String) null).request().get(ApexApiResult.class);
921 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
925 public void testTaskExt_2() throws IOException {
926 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
928 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
929 final int sessionId = Integer.parseInt(result.getMessages().get(0));
931 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
933 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
934 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
935 target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
936 .queryParam("version", (String) null).request().get(ApexApiResult.class);
938 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
939 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
940 + "\"description\" : \"A description of hello\"" + "}";
941 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
943 target("editor/1234545/Task/Create").request().post(entity, ApexApiResult.class);
944 target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
945 target("editor/" + corruptSessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
947 result = target("editor/-123345/Task/Delete").queryParam("name", (String) null)
948 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
949 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
950 result = target("editor/123345/Task/Delete").queryParam("name", (String) null)
951 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
952 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
953 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", "Hello")
954 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
955 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
956 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", (String) null)
957 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
958 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
962 public void testPolicy() throws IOException {
963 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
965 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
966 assertEquals(Result.SUCCESS, result.getResult());
967 final int sessionId = Integer.parseInt(result.getMessages().get(0));
969 result = target("editor/-12345/Model/Validate").request().get(ApexApiResult.class);
970 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
972 result = target("editor/" + sessionId + "/Model/Validate").request().get(ApexApiResult.class);
973 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
975 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
976 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", (String) null)
977 .queryParam("version", (String) null).request().get(ApexApiResult.class);
978 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
980 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", "%%%$£")
981 .queryParam("version", (String) null).request().get(ApexApiResult.class);
982 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
984 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
986 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
987 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
988 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
989 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
990 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
991 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
992 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
993 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
994 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
995 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
996 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
997 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
998 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
999 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
1000 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1001 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1003 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1004 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1005 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1006 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1007 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1008 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1009 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1010 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1011 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1012 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1013 + "\"description\" : \"A description of hello\"" + "}";
1014 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1015 result = target("editor/-12345/Policy/Create").request().post(entity, ApexApiResult.class);
1016 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1017 result = target("editor/1234545/Policy/Create").request().post(entity, ApexApiResult.class);
1018 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1019 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1020 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1021 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1022 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
1024 target("editor/" + corruptSessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1026 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
1027 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1028 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1029 + "\"description\" : \"A description of hello\"" + "}";
1030 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1031 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1032 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1034 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1035 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1036 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1037 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1038 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1039 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1040 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1041 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1042 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1043 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1044 + "\"description\" : \"A description of hello\"" + "}";
1045 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1046 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1047 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1049 entityString = "{" + "\"name\" : \"Hello2\"," + "\"version\" : \"0.0.2\","
1050 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1051 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1052 + " \"trigger\" : null," + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1053 + " \"stateOutputs\" : {" + " \"so0\" : {"
1054 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1055 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1056 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1057 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1058 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1059 + "\"description\" : \"A description of hello\"" + "}";
1060 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1061 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1062 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1064 entityString = "{" + "\"name\" : \"Hello3\"," + "\"version\" : \"0.0.2\","
1065 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1066 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1067 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1068 + " \"defaultTask\" : null," + " \"stateOutputs\" : {" + " \"so0\" : {"
1069 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1070 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1071 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1072 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1073 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1074 + "\"description\" : \"A description of hello\"" + "}";
1075 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1076 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1077 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1079 entityString = "{" + "\"name\" : \"Hello4\"," + "\"version\" : \"0.0.2\","
1080 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1081 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1082 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1083 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : null,"
1084 + " \"tasks\" : {" + " \"tr0\" : {"
1085 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1086 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1087 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1088 + "\"description\" : \"A description of hello\"" + "}";
1089 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1090 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1091 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1093 entityString = "{" + "\"name\" : \"Hello5\"," + "\"version\" : \"0.0.2\","
1094 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1095 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1096 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1097 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1098 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1099 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : null" + " }" + "},"
1100 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1101 + "\"description\" : \"A description of hello\"" + "}";
1102 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1103 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1104 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1106 entityString = "{" + "\"name\" : \"Hello6\"," + "\"version\" : \"0.0.2\","
1107 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1108 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1109 + " \"trigger\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1110 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1111 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1112 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1113 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1114 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1115 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1116 + "\"description\" : \"A description of hello\"" + "}";
1117 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1118 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1119 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1121 entityString = "{" + "\"name\" : \"Hello7\"," + "\"version\" : \"0.0.2\","
1122 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1123 + "\"states\" : {" + " \"state\" : null" + "},"
1124 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1125 + "\"description\" : \"A description of hello\"" + "}";
1126 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1127 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1128 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1130 entityString = "{" + "\"name\" : \"Hello8\"," + "\"version\" : \"0.0.2\","
1131 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1132 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1133 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1134 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1136 + " \"event\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1137 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1138 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1139 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1140 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1141 + "\"description\" : \"A description of hello\"" + "}";
1142 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1143 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1144 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1146 entityString = "{" + "\"name\" : \"Hello9\"," + "\"version\" : \"0.0.2\","
1147 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1148 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1149 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1150 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1151 + " \"so0\" : {" + " \"event\" : null," + " \"nextState\" : null" + " }"
1152 + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1153 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1154 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1155 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1156 + "\"description\" : \"A description of hello\"" + "}";
1157 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1158 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1159 System.err.println(result);
1160 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1164 public void testPolicyExt() throws IOException {
1165 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
1167 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
1168 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1170 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1172 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
1173 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1175 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1176 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1177 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1178 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1179 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1180 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1181 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1182 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1183 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1184 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1185 + "\"description\" : \"A description of hello\"" + "}";
1186 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1188 target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1189 target("editor/" + corruptSessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1191 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1192 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1193 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1194 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1195 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1196 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1197 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1198 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1199 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1200 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1201 + "\"description\" : \"A description of hello\"" + "}";
1202 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1203 target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1205 entityString = "{" + "\"name\" : \"Hello10\"," + "\"version\" : \"0.0.2\","
1206 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1207 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1208 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1209 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1210 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1211 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1212 + " \"task\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1213 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1214 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1215 + "\"description\" : \"A description of hello\"" + "}";
1216 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1217 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1218 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1220 entityString = "{" + "\"name\" : \"Hello11\"," + "\"version\" : \"0.0.2\","
1221 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1222 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1223 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1224 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1225 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1226 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1227 + " \"task\" : null," + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\""
1228 + " }" + " }" + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1229 + "\"description\" : \"A description of hello\"" + "}";
1230 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1231 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1232 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1234 entityString = "{" + "\"name\" : \"Hello12\"," + "\"version\" : \"0.0.2\","
1235 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1236 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1237 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1238 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1239 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1240 + "lots of lime\"}," + " \"stateOutputs\" : {" + " \"so0\" : {"
1241 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1242 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1244 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1245 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1246 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1247 + "\"description\" : \"A description of hello\"" + "}";
1248 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1249 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1250 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1252 entityString = "{" + "\"name\" : \"Hello13\"," + "\"version\" : \"0.0.2\","
1253 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1254 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1255 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1256 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1257 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
1258 + " \"stateOutputs\" : {" + " \"so0\" : {"
1259 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1260 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1262 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1263 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1264 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1265 + "\"description\" : \"A description of hello\"" + "}";
1266 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1267 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1268 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1270 entityString = "{" + "\"name\" : \"Hello14\"," + "\"version\" : \"0.0.2\","
1271 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1272 + "\"states\" : {" + " \"state\" : {" + " \"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\" : {" + " \"name\" : \"state\","
1293 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1294 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1295 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1296 + "lots of lime\"}," + " \"contexts\" : [{\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"}],"
1297 + " \"stateOutputs\" : {" + " \"so0\" : {"
1298 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1299 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1301 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1302 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1303 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1304 + "\"description\" : \"A description of hello\"" + "}";
1305 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1306 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1307 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1309 entityString = "{" + "\"name\" : \"Hello16\"," + "\"version\" : \"0.0.2\","
1310 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1311 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1312 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1313 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1314 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1315 + "lots of lime\"}," + " \"contexts\" : [null]," + " \"stateOutputs\" : {"
1317 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1318 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1320 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1321 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }"
1322 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1323 + "\"description\" : \"A description of hello\"" + "}";
1324 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1325 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1326 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1328 entityString = "{" + "\"name\" : \"Hello17\"," + "\"version\" : \"0.0.2\","
1329 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1330 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1331 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1332 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1333 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1334 + "lots of lime\"},"
1335 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1336 + " \"stateOutputs\" : {" + " \"so0\" : {"
1337 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1338 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1340 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1341 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1342 + " \"finalizers\" : {"
1343 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1344 + "lots of lime\"}" + " }" + " }" + "},"
1345 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1346 + "\"description\" : \"A description of hello\"" + "}";
1347 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1348 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1349 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1351 entityString = "{" + "\"name\" : \"Hello18\"," + "\"version\" : \"0.0.2\","
1352 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1353 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1354 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1355 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1356 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1357 + "lots of lime\"},"
1358 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1359 + " \"stateOutputs\" : {" + " \"so0\" : {"
1360 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1361 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1363 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1364 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1365 + " \"finalizers\" : {" + " \"sf0\" : null" + " }" + " }" + "},"
1366 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1367 + "\"description\" : \"A description of hello\"" + "}";
1368 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1369 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1370 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1372 entityString = "{" + "\"name\" : \"Hello19\"," + "\"version\" : \"0.0.2\","
1373 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1374 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1375 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1376 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1377 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1378 + "lots of lime\"},"
1379 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1380 + " \"stateOutputs\" : {" + " \"so0\" : {"
1381 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1382 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1384 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1385 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1386 + " \"finalizers\" : {"
1387 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null}" + " }" + " }" + "},"
1388 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1389 + "\"description\" : \"A description of hello\"" + "}";
1390 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1391 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1392 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1394 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1395 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1396 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1397 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1398 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1399 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1400 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1401 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1402 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1403 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1404 + "\"description\" : \"A better description of hello\"" + "}";
1405 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1406 result = target("editor/-12345/Policy/Update").request().put(entity, ApexApiResult.class);
1407 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1408 result = target("editor/1234545/Policy/Update").request().put(entity, ApexApiResult.class);
1409 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1410 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1411 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1413 result = target("editor/" + sessionId + "/Policy/Update").queryParam("firstStatePeriodic", "true").request()
1414 .put(entity, ApexApiResult.class);
1415 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1417 target("editor/" + corruptSessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1419 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
1420 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1421 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1422 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1423 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1424 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1425 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1426 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1427 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1428 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1429 + "\"description\" : \"A better description of hello\"" + "}";
1430 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1431 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1432 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1434 entityString = "{" + "\"name\" : \"IDontExist\"," + "\"version\" : \"0.0.2\","
1435 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1436 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1437 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1438 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1439 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1440 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1441 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1442 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1443 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1444 + "\"description\" : \"A better description of hello\"" + "}";
1445 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1446 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1447 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1449 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "Hello")
1450 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1451 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1452 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "IDontExist")
1453 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1454 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1455 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", (String) null)
1456 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1457 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1458 result = target("editor/-123345/Policy/Get").queryParam("name", (String) null)
1459 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1460 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1461 result = target("editor/123345/Policy/Get").queryParam("name", (String) null)
1462 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1463 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1465 target("editor/" + corruptSessionId + "/Policy/Get").queryParam("name", "Hello")
1466 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1468 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
1469 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1470 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1471 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
1472 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1473 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1474 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
1475 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1476 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1478 target("editor/" + corruptSessionId + "/Policy/Delete").queryParam("name", (String) null)
1479 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1481 result = target("editor/-123345/Policy/Delete").queryParam("name", (String) null)
1482 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1483 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1488 public void testPolicyExt_2() throws IOException {
1489 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
1491 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
1492 final int sessionId = Integer.parseInt(result.getMessages().get(0));
1494 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
1495 target("editor/" + sessionId + "/Model/Validate").queryParam("name", "%%%$£")
1496 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1498 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
1500 Entity<String> modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
1501 target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
1503 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
1504 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1505 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1506 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1507 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1508 + " \"so0\" : {" + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1509 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1510 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1511 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1512 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1513 + "\"description\" : \"A description of hello\"" + "}";
1514 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1515 target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1516 target("editor/" + corruptSessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1518 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
1519 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1520 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1521 + "\"description\" : \"A description of hello\"" + "}";
1522 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1523 target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1525 result = target("editor/123345/Policy/Delete").queryParam("name", (String) null)
1526 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1527 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1528 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", "Hello")
1529 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
1530 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1531 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", (String) null)
1532 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1533 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());