2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020 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.apex.client.editor.rest.handling;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotNull;
28 import java.io.IOException;
29 import javax.ws.rs.client.Entity;
30 import javax.ws.rs.core.Application;
31 import javax.ws.rs.core.MediaType;
32 import org.glassfish.jersey.server.ResourceConfig;
33 import org.glassfish.jersey.test.JerseyTest;
34 import org.junit.Test;
35 import org.onap.policy.apex.model.modelapi.ApexApiResult;
36 import org.onap.policy.apex.model.modelapi.ApexApiResult.Result;
37 import org.onap.policy.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);
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.valueOf(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 result = 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 result = 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);
132 resultString = target("editor/-12345/Model/Download").request().get(String.class);
133 assertEquals("", resultString);
135 resultString = target("editor/12345/Model/Download").request().get(String.class);
136 assertEquals("", resultString);
138 result = target("editor/" + corruptSessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
140 result = target("editor/" + sessionId + "/KeyInformation/Get").request().get(ApexApiResult.class);
141 assertEquals(Result.SUCCESS, result.getResult());
142 result = target("editor/-12345/KeyInformation/Get").request().get(ApexApiResult.class);
143 assertEquals(Result.FAILED, result.getResult());
144 result = target("editor/12345/KeyInformation/Get").request().get(ApexApiResult.class);
145 assertEquals(Result.FAILED, result.getResult());
147 result = target("editor/" + corruptSessionId + "/Model/Delete").request().delete(ApexApiResult.class);
149 result = target("editor/" + sessionId + "/Model/Delete").request().delete(ApexApiResult.class);
150 assertEquals(Result.SUCCESS, result.getResult());
151 result = target("editor/-12345/Model/Delete").request().delete(ApexApiResult.class);
152 assertEquals(Result.FAILED, result.getResult());
153 result = target("editor/12345/Model/Delete").request().delete(ApexApiResult.class);
154 assertEquals(Result.FAILED, result.getResult());
158 public void testContextSchema() throws IOException {
159 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
160 assertEquals(Result.SUCCESS, result.getResult());
161 final int sessionId = Integer.valueOf(result.getMessages().get(0));
163 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
165 result = target("editor/-12345/Validate/ContextSchema").request().get(ApexApiResult.class);
166 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
168 target("editor/" + corruptSessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
170 result = target("editor/" + sessionId + "/Validate/ContextSchema").request().get(ApexApiResult.class);
171 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
173 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
174 .queryParam("version", (String) null).request().get(ApexApiResult.class);
175 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
177 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", "%%%$£")
178 .queryParam("version", (String) null).request().get(ApexApiResult.class);
179 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
181 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
183 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
184 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
185 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
186 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
187 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
188 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
189 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
190 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
191 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
192 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
193 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
194 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
195 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
196 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", (String) null)
197 .queryParam("version", (String) null).request().get(ApexApiResult.class);
198 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
200 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", (String) null)
201 .queryParam("version", (String) null).request().get(ApexApiResult.class);
203 String csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
204 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"java.lang.String\","
205 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
206 + "\"description\" : \"A description of hello\"" + "}";
207 Entity<String> csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
208 result = target("editor/-12345/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
209 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
210 result = target("editor/1234545/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
211 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
212 result = target("editor/" + sessionId + "/ContextSchema/Create").request().post(csEntity, ApexApiResult.class);
213 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
215 target("editor/" + corruptSessionId + "/ContextSchema/Create").request().post(csEntity,
216 ApexApiResult.class);
219 csString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
220 + "\"schemaFlavour\" : \"Java\"," + "\"schemaDefinition\" : \"my.perfect.String\","
221 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
222 + "\"description\" : \"A description of hello\"" + "}";
223 csEntity = Entity.entity(csString, MediaType.APPLICATION_JSON);
224 result = target("editor/-12345/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
225 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
226 result = target("editor/1234545/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
227 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
228 result = target("editor/" + sessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
229 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
231 target("editor/" + corruptSessionId + "/ContextSchema/Update").request().put(csEntity, ApexApiResult.class);
233 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "Hello")
234 .queryParam("version", (String) null).request().get(ApexApiResult.class);
235 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
236 result = target("editor/" + sessionId + "/ContextSchema/Get").queryParam("name", "NonExistant")
237 .queryParam("version", (String) null).request().get(ApexApiResult.class);
238 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
239 result = target("editor/-123345/ContextSchema/Get").queryParam("name", (String) null)
240 .queryParam("version", (String) null).request().get(ApexApiResult.class);
241 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
242 result = target("editor/123345/ContextSchema/Get").queryParam("name", (String) null)
243 .queryParam("version", (String) null).request().get(ApexApiResult.class);
244 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
246 target("editor/" + corruptSessionId + "/ContextSchema/Get").queryParam("name", "Hello")
247 .queryParam("version", (String) null).request().get(ApexApiResult.class);
249 result = target("editor/" + sessionId + "/Validate/ContextSchema").queryParam("name", (String) null)
250 .queryParam("version", (String) null).request().get(ApexApiResult.class);
251 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
253 target("editor/" + corruptSessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
254 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
256 result = target("editor/-123345/ContextSchema/Delete").queryParam("name", (String) null)
257 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
258 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
259 result = target("editor/123345/ContextSchema/Delete").queryParam("name", (String) null)
260 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
261 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
262 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", "Hello")
263 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
264 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
265 result = target("editor/" + sessionId + "/ContextSchema/Delete").queryParam("name", (String) null)
266 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
267 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
271 public void testContextAlbum() throws IOException {
272 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
273 assertEquals(Result.SUCCESS, result.getResult());
274 final int sessionId = Integer.valueOf(result.getMessages().get(0));
275 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
277 result = target("editor/-12345/Validate/ContextAlbum").request().get(ApexApiResult.class);
278 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
280 target("editor/" + corruptSessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
282 result = target("editor/" + sessionId + "/Validate/ContextAlbum").request().get(ApexApiResult.class);
283 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
285 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
286 .queryParam("version", (String) null).request().get(ApexApiResult.class);
287 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
289 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", "%%%$£")
290 .queryParam("version", (String) null).request().get(ApexApiResult.class);
291 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
293 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
295 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
296 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
297 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
298 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
299 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
300 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
301 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
302 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
303 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
304 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
305 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
306 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
307 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
308 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", (String) null)
309 .queryParam("version", (String) null).request().get(ApexApiResult.class);
310 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
312 String caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
313 + "\"scope\" : \"Domain\"," + "\"writeable\" : false,"
314 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
315 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
316 + "\"description\" : \"A description of hello\"" + "}";
317 Entity<String> caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
318 result = target("editor/-12345/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
319 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
320 result = target("editor/1234545/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
321 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
322 result = target("editor/" + sessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
323 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
325 target("editor/" + corruptSessionId + "/ContextAlbum/Create").request().post(caEntity, ApexApiResult.class);
327 caString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
328 + "\"scope\" : \"Global\"," + "\"writeable\" : false,"
329 + "\"itemSchema\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\"},"
330 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
331 + "\"description\" : \"A description of hello\"" + "}";
332 caEntity = Entity.entity(caString, MediaType.APPLICATION_JSON);
333 result = target("editor/-12345/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
334 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
335 result = target("editor/1234545/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
336 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
337 result = target("editor/" + sessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
338 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
340 target("editor/" + corruptSessionId + "/ContextAlbum/Update").request().put(caEntity, ApexApiResult.class);
342 target("editor/" + corruptSessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
343 .queryParam("version", (String) null).request().get(ApexApiResult.class);
345 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "Hello")
346 .queryParam("version", (String) null).request().get(ApexApiResult.class);
347 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
348 result = target("editor/" + sessionId + "/ContextAlbum/Get").queryParam("name", "IDontExist")
349 .queryParam("version", (String) null).request().get(ApexApiResult.class);
350 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
351 result = target("editor/-123345/ContextAlbum/Get").queryParam("name", (String) null)
352 .queryParam("version", (String) null).request().get(ApexApiResult.class);
353 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
354 result = target("editor/123345/ContextAlbum/Get").queryParam("name", (String) null)
355 .queryParam("version", (String) null).request().get(ApexApiResult.class);
356 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
358 result = target("editor/" + sessionId + "/Validate/ContextAlbum").queryParam("name", (String) null)
359 .queryParam("version", (String) null).request().get(ApexApiResult.class);
360 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
362 target("editor/" + corruptSessionId + "/ContextAlbum/Delete").queryParam("name", (String) null)
363 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
365 result = target("editor/-123345/ContextAlbum/Delete").queryParam("name", (String) null)
366 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
367 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
368 result = target("editor/123345/ContextAlbum/Delete").queryParam("name", (String) null)
369 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
370 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
371 result = target("editor/" + sessionId + "/ContextAlbum/Delete").queryParam("name", "Hello")
372 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
373 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
374 result = target("editor/" + sessionId + "/ContextAlbum/Delete").queryParam("name", (String) null)
375 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
376 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
380 public void testEvent() throws IOException {
381 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
383 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
384 assertEquals(Result.SUCCESS, result.getResult());
385 final int sessionId = Integer.valueOf(result.getMessages().get(0));
387 result = target("editor/-12345/Validate/Event").request().get(ApexApiResult.class);
388 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
390 result = target("editor/" + sessionId + "/Validate/Event").request().get(ApexApiResult.class);
391 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
393 target("editor/" + corruptSessionId + "/Validate/Event").request().get(ApexApiResult.class);
395 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
396 .queryParam("version", (String) null).request().get(ApexApiResult.class);
397 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
399 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", "%%%$£")
400 .queryParam("version", (String) null).request().get(ApexApiResult.class);
401 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
403 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
405 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
406 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
407 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
408 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
409 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
410 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
411 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
412 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
413 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
414 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
415 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
416 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
417 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
418 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
419 .queryParam("version", (String) null).request().get(ApexApiResult.class);
420 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
422 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
423 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
424 + "\"target\" : \"end\"," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
425 + "\"description\" : \"A description of hello\"" + "}";
426 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
427 result = target("editor/-12345/Event/Create").request().post(entity, ApexApiResult.class);
428 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
429 result = target("editor/1234545/Event/Create").request().post(entity, ApexApiResult.class);
430 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
431 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
432 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
433 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
434 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
436 target("editor/" + corruptSessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
438 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
439 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
440 + "\"target\" : \"end\"," + "\"parameters\" : {},"
441 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
442 + "\"description\" : \"A description of hello\"" + "}";
443 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
444 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
445 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
447 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
448 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
449 + "\"target\" : \"end\","
450 + "\"parameters\" : {\"Par0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
451 + "\"localName\" : \"Par0\", \"optional\" : false}},"
452 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
453 + "\"description\" : \"A description of hello\"" + "}";
454 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
455 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
456 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
458 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
459 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
460 + "\"target\" : \"end\"," + "\"parameters\" : {\"Par0\" : null},"
461 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
462 + "\"description\" : \"A description of hello\"" + "}";
463 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
464 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
465 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
467 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
468 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
469 + "\"target\" : \"end\","
470 + "\"parameters\" : {\"Par0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
471 + "\"localName\" : \"Par0\", \"optional\" : false}},"
472 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
473 + "\"description\" : \"A description of hello\"" + "}";
474 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
475 result = target("editor/" + sessionId + "/Event/Create").request().post(entity, ApexApiResult.class);
476 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
478 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
479 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
480 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
481 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
482 + "\"description\" : \"A description of hello\"" + "}";
483 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
484 result = target("editor/-12345/Event/Update").request().put(entity, ApexApiResult.class);
485 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
486 result = target("editor/1234545/Event/Update").request().put(entity, ApexApiResult.class);
487 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
488 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
489 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
491 target("editor/" + corruptSessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
493 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
494 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
495 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
496 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
497 + "\"description\" : \"A description of hello\"" + "}";
498 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
499 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
500 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
502 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
503 + "\"namespace\" : \"somewhere.over.someone.elses.rainbow\","
504 + "\"source\" : \"start\"," + "\"target\" : \"finish\","
505 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
506 + "\"description\" : \"A description of hello\"" + "}";
507 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
508 result = target("editor/" + sessionId + "/Event/Update").request().put(entity, ApexApiResult.class);
509 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
511 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "Hello")
512 .queryParam("version", (String) null).request().get(ApexApiResult.class);
513 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
514 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", "IDontExist")
515 .queryParam("version", (String) null).request().get(ApexApiResult.class);
516 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
517 result = target("editor/-123345/Event/Get").queryParam("name", (String) null)
518 .queryParam("version", (String) null).request().get(ApexApiResult.class);
519 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
520 result = target("editor/123345/Event/Get").queryParam("name", (String) null)
521 .queryParam("version", (String) null).request().get(ApexApiResult.class);
522 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
524 target("editor/" + corruptSessionId + "/Event/Get").queryParam("name", "Hello")
525 .queryParam("version", (String) null).request().get(ApexApiResult.class);
527 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
528 .queryParam("version", (String) null).request().get(ApexApiResult.class);
529 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
530 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
531 .queryParam("version", (String) null).request().get(ApexApiResult.class);
532 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
533 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
534 .queryParam("version", (String) null).request().get(ApexApiResult.class);
535 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
537 target("editor/" + corruptSessionId + "/Event/Delete").queryParam("name", (String) null)
538 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
540 result = target("editor/-123345/Event/Delete").queryParam("name", (String) null)
541 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
542 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
543 result = target("editor/123345/Event/Delete").queryParam("name", (String) null)
544 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
545 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
546 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", "Hello")
547 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
548 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
549 result = target("editor/" + sessionId + "/Event/Delete").queryParam("name", (String) null)
550 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
551 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
555 public void testTask() throws IOException {
556 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
558 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
559 assertEquals(Result.SUCCESS, result.getResult());
560 final int sessionId = Integer.valueOf(result.getMessages().get(0));
562 result = target("editor/-12345/Validate/Task").request().get(ApexApiResult.class);
563 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
565 result = target("editor/" + sessionId + "/Validate/Task").request().get(ApexApiResult.class);
566 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
569 target("editor/" + corruptSessionId + "/Validate/Task").request().get(ApexApiResult.class);
570 } catch (final Exception e) {
571 assertEquals("HTTP 500 Request failed.", e.getMessage());
574 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", (String) null)
575 .queryParam("version", (String) null).request().get(ApexApiResult.class);
576 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
578 result = target("editor/" + sessionId + "/Validate/Task").queryParam("name", "%%%$£")
579 .queryParam("version", (String) null).request().get(ApexApiResult.class);
580 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
582 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
584 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
585 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
586 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
587 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
588 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
589 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
590 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
591 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
592 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
593 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
594 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
595 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
596 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
597 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
598 .queryParam("version", (String) null).request().get(ApexApiResult.class);
599 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
601 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
602 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
603 + "\"description\" : \"A description of hello\"" + "}";
604 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
605 result = target("editor/-12345/Task/Create").request().post(entity, ApexApiResult.class);
606 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
607 result = target("editor/1234545/Task/Create").request().post(entity, ApexApiResult.class);
608 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
609 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
610 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
611 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
612 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
614 target("editor/" + corruptSessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
616 entityString = "{" + "\"name\" : \"Hiya\"," + "\"version\" : \"0.0.2\","
617 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
618 + "\"description\" : \"A description of hello\"" + "}";
619 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
620 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
621 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
623 entityString = "{" + "\"name\" : \"HowsItGoing\"," + "\"version\" : \"0.0.2\","
624 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
625 + "\"localName\" : \"IField0\", \"optional\" : false}},"
626 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
627 + "\"description\" : \"A description of hello\"" + "}";
628 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
629 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
630 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
632 entityString = "{" + "\"name\" : \"Hi\"," + "\"version\" : \"0.0.2\","
633 + "\"inputFields\" : {\"IField0\" : null},"
634 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
635 + "\"description\" : \"A description of hello\"" + "}";
636 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
637 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
638 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
640 entityString = "{" + "\"name\" : \"GoodDay\"," + "\"version\" : \"0.0.2\","
641 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
642 + "\"localName\" : \"IField0\", \"optional\" : false}},"
643 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
644 + "\"description\" : \"A description of hello\"" + "}";
645 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
646 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
647 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
649 entityString = "{" + "\"name\" : \"Howdy\"," + "\"version\" : \"0.0.2\","
650 + "\"inputFields\" : {\"IField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
651 + "\"localName\" : \"NotIField0\", \"optional\" : false}},"
652 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
653 + "\"description\" : \"A description of hello\"" + "}";
654 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
655 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
656 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
658 entityString = "{" + "\"name\" : \"HowsItGoing2\"," + "\"version\" : \"0.0.2\","
659 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"StringType\", \"version\" : \"0.0.1\", "
660 + "\"localName\" : \"OField0\", \"optional\" : false}},"
661 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
662 + "\"description\" : \"A description of hello\"" + "}";
663 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
664 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
665 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
667 entityString = "{" + "\"name\" : \"Hi2\"," + "\"version\" : \"0.0.2\","
668 + "\"outputFields\" : {\"OField0\" : null},"
669 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
670 + "\"description\" : \"A description of hello\"" + "}";
671 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
672 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
673 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
675 entityString = "{" + "\"name\" : \"GoodDay2\"," + "\"version\" : \"0.0.2\","
676 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\","
677 + " \"localName\" : \"OField0\", \"optional\" : false}},"
678 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
679 + "\"description\" : \"A description of hello\"" + "}";
680 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
681 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
682 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
684 entityString = "{" + "\"name\" : \"Howdy2\"," + "\"version\" : \"0.0.2\","
685 + "\"outputFields\" : {\"OField0\" : {\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\", "
686 + "\"localName\" : \"NotOField0\", \"optional\" : false}},"
687 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
688 + "\"description\" : \"A description of hello\"" + "}";
689 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
690 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
691 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
693 entityString = "{" + "\"name\" : \"HowsItGoing3\"," + "\"version\" : \"0.0.2\","
694 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons,"
695 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
696 + "\"description\" : \"A description of hello\"" + "}";
697 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
698 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
699 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
701 entityString = "{" + "\"name\" : \"Hi3\"," + "\"version\" : \"0.0.2\","
702 + "\"taskLogic\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
703 + "\"description\" : \"A description of hello\"" + "}";
704 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
705 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
706 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
708 entityString = "{" + "\"name\" : \"GoodDay3\"," + "\"version\" : \"0.0.2\","
709 + "\"namespace\" : \"somewhere.over.the.rainbow\"," + "\"source\" : \"beginning\","
710 + "\"target\" : \"end\","
711 + "\"taskLogic\" : {\"logicFlavour\" : \"UNDEFINED\", \"logic\" : \"lots of lemons,"
712 + " lots of lime\"}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
713 + "\"description\" : \"A description of hello\"" + "}";
714 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
715 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
716 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
718 entityString = "{" + "\"name\" : \"Howdy3\"," + "\"version\" : \"0.0.2\","
719 + "\"taskLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
720 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
721 + "\"description\" : \"A description of hello\"" + "}";
722 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
723 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
724 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
726 entityString = "{" + "\"name\" : \"HowsItGoing4\"," + "\"version\" : \"0.0.2\","
727 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"Par0\", "
728 + "\"defaultValue\" : \"Parameter Defaultvalue\"}},"
729 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
730 + "\"description\" : \"A description of hello\"" + "}";
731 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
732 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
733 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
735 entityString = "{" + "\"name\" : \"Hi4\"," + "\"version\" : \"0.0.2\","
736 + "\"parameters\" : {\"Par0\" : null},"
737 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
738 + "\"description\" : \"A description of hello\"" + "}";
739 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
740 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
741 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
743 entityString = "{" + "\"name\" : \"GoodDay4\"," + "\"version\" : \"0.0.2\","
744 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"NotPar0\", \"defaultValue\" : "
745 + "\"Parameter Defaultvalue\"}}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
746 + "\"description\" : \"A description of hello\"" + "}";
747 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
748 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
749 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
751 entityString = "{" + "\"name\" : \"Howdy4\"," + "\"version\" : \"0.0.2\","
752 + "\"parameters\" : {\"Par0\" : {\"parameterName\" : \"MyParameter\", \"defaultValue\" : null}},"
753 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
754 + "\"description\" : \"A description of hello\"" + "}";
755 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
756 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
757 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
759 entityString = "{" + "\"name\" : \"HowsItGoing5\"," + "\"version\" : \"0.0.2\","
760 + "\"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
761 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
762 + "\"description\" : \"A description of hello\"" + "}";
763 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
764 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
765 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
767 entityString = "{" + "\"name\" : \"Hi5\"," + "\"version\" : \"0.0.2\","
768 + "\"contexts\" : []," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
769 + "\"description\" : \"A description of hello\"" + "}";
770 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
771 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
772 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
774 entityString = "{" + "\"name\" : \"GoodDay5\"," + "\"version\" : \"0.0.2\","
775 + "\"contexts\" : [{\"name\" : \"NonExistantType\", \"version\" : \"0.0.1\"}],"
776 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
777 + "\"description\" : \"A description of hello\"" + "}";
778 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
779 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
780 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
782 entityString = "{" + "\"name\" : \"Howdy5\"," + "\"version\" : \"0.0.2\","
783 + "\"contexts\" : [{\"name\" : null, \"version\" : \"0.0.1\"}],"
784 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002799\","
785 + "\"description\" : \"A description of hello\"" + "}";
786 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
787 result = target("editor/" + sessionId + "/Task/Create").request().post(entity, ApexApiResult.class);
788 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
790 entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
791 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
792 + "\"description\" : \"A description of hello\"" + "}";
793 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
794 result = target("editor/-12345/Task/Update").request().put(entity, ApexApiResult.class);
795 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
796 result = target("editor/1234545/Task/Update").request().put(entity, ApexApiResult.class);
797 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
798 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
799 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
801 target("editor/" + corruptSessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
803 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
804 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
805 + "\"description\" : \"A description of hello\"" + "}";
806 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
807 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
808 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
810 entityString = "{" + "\"name\" : \"NonExistantEvent\"," + "\"version\" : \"0.0.2\","
811 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
812 + "\"description\" : \"A description of hello\"" + "}";
813 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
814 result = target("editor/" + sessionId + "/Task/Update").request().put(entity, ApexApiResult.class);
815 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
817 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "Hello")
818 .queryParam("version", (String) null).request().get(ApexApiResult.class);
819 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
820 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", (String) null)
821 .queryParam("version", (String) null).request().get(ApexApiResult.class);
822 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
823 result = target("editor/" + sessionId + "/Task/Get").queryParam("name", "IDontExist")
824 .queryParam("version", (String) null).request().get(ApexApiResult.class);
825 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
826 result = target("editor/-123345/Task/Get").queryParam("name", (String) null)
827 .queryParam("version", (String) null).request().get(ApexApiResult.class);
828 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
829 result = target("editor/123345/Task/Get").queryParam("name", (String) null).queryParam("version", (String) null)
830 .request().get(ApexApiResult.class);
831 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
833 target("editor/" + corruptSessionId + "/Task/Get").queryParam("name", "Hello")
834 .queryParam("version", (String) null).request().get(ApexApiResult.class);
836 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
837 .queryParam("version", (String) null).request().get(ApexApiResult.class);
838 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
839 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
840 .queryParam("version", (String) null).request().get(ApexApiResult.class);
841 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
842 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
843 .queryParam("version", (String) null).request().get(ApexApiResult.class);
844 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
846 target("editor/" + corruptSessionId + "/Task/Delete").queryParam("name", (String) null)
847 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
849 result = target("editor/-123345/Task/Delete").queryParam("name", (String) null)
850 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
851 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
852 result = target("editor/123345/Task/Delete").queryParam("name", (String) null)
853 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
854 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
855 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", "Hello")
856 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
857 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
858 result = target("editor/" + sessionId + "/Task/Delete").queryParam("name", (String) null)
859 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
860 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
864 public void testPolicy() throws IOException {
865 final int corruptSessionId = ApexEditorRestResource.createCorruptSession();
867 ApexApiResult result = target("editor/-1/Session/Create").request().get(ApexApiResult.class);
868 assertEquals(Result.SUCCESS, result.getResult());
869 final int sessionId = Integer.valueOf(result.getMessages().get(0));
871 result = target("editor/-12345/Model/Validate").request().get(ApexApiResult.class);
872 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
874 result = target("editor/" + sessionId + "/Model/Validate").request().get(ApexApiResult.class);
875 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
877 target("editor/" + corruptSessionId + "/Model/Validate").request().get(ApexApiResult.class);
878 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", (String) null)
879 .queryParam("version", (String) null).request().get(ApexApiResult.class);
880 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
882 result = target("editor/" + sessionId + "/Model/Validate").queryParam("name", "%%%$£")
883 .queryParam("version", (String) null).request().get(ApexApiResult.class);
884 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
886 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
888 Entity<String> modelEntity = Entity.entity("Somewhere over the rainbow", MediaType.APPLICATION_JSON);
889 result = target("editor/" + -12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
890 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
891 result = target("editor/" + 12345 + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
892 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
893 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
894 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
895 modelEntity = Entity.entity("", MediaType.APPLICATION_JSON);
896 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
897 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
898 modelEntity = Entity.entity(modelString, MediaType.APPLICATION_JSON);
899 result = target("editor/" + sessionId + "/Model/Load").request().put(modelEntity, ApexApiResult.class);
900 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
901 result = target("editor/" + sessionId + "/Event/Get").queryParam("name", (String) null)
902 .queryParam("version", (String) null).request().get(ApexApiResult.class);
903 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
905 String entityString = "{" + "\"name\" : \"Hello\"," + "\"version\" : \"0.0.2\","
906 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
907 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
908 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
909 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
911 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
912 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
913 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
914 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
915 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
916 + "\"description\" : \"A description of hello\"" + "}";
917 Entity<String> entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
918 result = target("editor/-12345/Policy/Create").request().post(entity, ApexApiResult.class);
919 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
920 result = target("editor/1234545/Policy/Create").request().post(entity, ApexApiResult.class);
921 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
922 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
923 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
924 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
925 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
927 target("editor/" + corruptSessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
929 entityString = "{" + "\"name\" : \"GoodTaSeeYa\"," + "\"version\" : \"0.0.2\","
930 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
931 + "\"states\" : null," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
932 + "\"description\" : \"A description of hello\"" + "}";
933 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
934 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
935 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
937 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
938 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
939 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
940 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
941 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
943 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
944 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
945 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
946 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
947 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
948 + "\"description\" : \"A description of hello\"" + "}";
949 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
950 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
951 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
953 entityString = "{" + "\"name\" : \"Hello2\"," + "\"version\" : \"0.0.2\","
954 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
955 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
956 + " \"trigger\" : null,"
957 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
959 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
960 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
961 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
962 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
963 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
964 + "\"description\" : \"A description of hello\"" + "}";
965 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
966 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
967 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
969 entityString = "{" + "\"name\" : \"Hello3\"," + "\"version\" : \"0.0.2\","
970 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
971 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
972 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
973 + " \"defaultTask\" : null," + " \"stateOutputs\" : {" + " \"so0\" : {"
974 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
975 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
976 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
977 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
978 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
979 + "\"description\" : \"A description of hello\"" + "}";
980 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
981 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
982 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
984 entityString = "{" + "\"name\" : \"Hello4\"," + "\"version\" : \"0.0.2\","
985 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
986 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
987 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
988 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
989 + " \"stateOutputs\" : null," + " \"tasks\" : {" + " \"tr0\" : {"
990 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
991 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
992 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
993 + "\"description\" : \"A description of hello\"" + "}";
994 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
995 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
996 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
998 entityString = "{" + "\"name\" : \"Hello5\"," + "\"version\" : \"0.0.2\","
999 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1000 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1001 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1002 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1004 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1005 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : null" + " }" + "},"
1006 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1007 + "\"description\" : \"A description of hello\"" + "}";
1008 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1009 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1010 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1012 entityString = "{" + "\"name\" : \"Hello6\"," + "\"version\" : \"0.0.2\","
1013 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1014 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1015 + " \"trigger\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1016 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1018 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1019 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1020 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1021 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1022 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1023 + "\"description\" : \"A description of hello\"" + "}";
1024 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1025 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1026 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1028 entityString = "{" + "\"name\" : \"Hello7\"," + "\"version\" : \"0.0.2\","
1029 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1030 + "\"states\" : {" + " \"state\" : null" + "},"
1031 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1032 + "\"description\" : \"A description of hello\"" + "}";
1033 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1034 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1035 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1037 entityString = "{" + "\"name\" : \"Hello8\"," + "\"version\" : \"0.0.2\","
1038 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1039 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1040 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1041 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1043 + " \"event\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1044 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1045 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1046 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1047 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1048 + "\"description\" : \"A description of hello\"" + "}";
1049 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1050 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1051 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1053 entityString = "{" + "\"name\" : \"Hello9\"," + "\"version\" : \"0.0.2\","
1054 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1055 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1056 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1057 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1058 + " \"so0\" : {" + " \"event\" : null," + " \"nextState\" : null" + " }"
1059 + " }," + " \"tasks\" : {" + " \"tr0\" : {"
1060 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1061 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1062 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1063 + "\"description\" : \"A description of hello\"" + "}";
1064 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1065 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1066 System.err.println(result);
1067 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1069 entityString = "{" + "\"name\" : \"Hello10\"," + "\"version\" : \"0.0.2\","
1070 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1071 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1072 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1073 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1075 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1076 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1078 + " \"task\" : {\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"},"
1079 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1080 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1081 + "\"description\" : \"A description of hello\"" + "}";
1082 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1083 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1084 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1086 entityString = "{" + "\"name\" : \"Hello11\"," + "\"version\" : \"0.0.2\","
1087 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1088 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1089 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1090 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1092 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1093 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1094 + " \"tr0\" : {" + " \"task\" : null," + " \"outputType\" : \"DIRECT\","
1095 + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1096 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1097 + "\"description\" : \"A description of hello\"" + "}";
1098 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1099 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1100 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1102 entityString = "{" + "\"name\" : \"Hello12\"," + "\"version\" : \"0.0.2\","
1103 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1104 + "\"states\" : {" + " \"state\" : {"
1105 + " \"name\" : \"state\","
1106 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1107 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1108 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1109 + "lots of lime\"}," + " \"stateOutputs\" : {" + " \"so0\" : {"
1110 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1111 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
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.SUCCESS, result.getResult());
1121 entityString = "{" + "\"name\" : \"Hello13\"," + "\"version\" : \"0.0.2\","
1122 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1123 + "\"states\" : {" + " \"state\" : {"
1124 + " \"name\" : \"state\","
1125 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1126 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1127 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null},"
1128 + " \"stateOutputs\" : {" + " \"so0\" : {"
1129 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1130 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1132 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1133 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1134 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1135 + "\"description\" : \"A description of hello\"" + "}";
1136 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1137 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1138 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1140 entityString = "{" + "\"name\" : \"Hello14\"," + "\"version\" : \"0.0.2\","
1141 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1142 + "\"states\" : {" + " \"state\" : {"
1143 + " \"name\" : \"state\","
1144 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1145 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1146 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1147 + "lots of lime\"},"
1148 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1149 + " \"stateOutputs\" : {" + " \"so0\" : {"
1150 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1151 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
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 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1161 entityString = "{" + "\"name\" : \"Hello15\"," + "\"version\" : \"0.0.2\","
1162 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1163 + "\"states\" : {" + " \"state\" : {"
1164 + " \"name\" : \"state\","
1165 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1166 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1167 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1168 + "lots of lime\"},"
1169 + " \"contexts\" : [{\"name\" : \"IDontExist\", \"version\" : \"0.0.1\"}],"
1170 + " \"stateOutputs\" : {" + " \"so0\" : {"
1171 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1172 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1174 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1175 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1176 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1177 + "\"description\" : \"A description of hello\"" + "}";
1178 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1179 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1180 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1182 entityString = "{" + "\"name\" : \"Hello16\"," + "\"version\" : \"0.0.2\","
1183 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1184 + "\"states\" : {" + " \"state\" : {"
1185 + " \"name\" : \"state\","
1186 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1187 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1188 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1189 + "lots of lime\"}," + " \"contexts\" : [null]," + " \"stateOutputs\" : {"
1191 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1192 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1194 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1195 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }"
1196 + " }" + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1197 + "\"description\" : \"A description of hello\"" + "}";
1198 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1199 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1200 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1202 entityString = "{" + "\"name\" : \"Hello17\"," + "\"version\" : \"0.0.2\","
1203 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1204 + "\"states\" : {" + " \"state\" : {"
1205 + " \"name\" : \"state\","
1206 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1207 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1208 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1209 + "lots of lime\"},"
1210 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1211 + " \"stateOutputs\" : {" + " \"so0\" : {"
1212 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1213 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1215 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1216 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1217 + " \"finalizers\" : {"
1218 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1219 + "lots of lime\"}" + " }" + " }" + "},"
1220 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1221 + "\"description\" : \"A description of hello\"" + "}";
1222 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1223 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1224 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1226 entityString = "{" + "\"name\" : \"Hello18\"," + "\"version\" : \"0.0.2\","
1227 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1228 + "\"states\" : {" + " \"state\" : {"
1229 + " \"name\" : \"state\","
1230 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1231 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1232 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1233 + "lots of lime\"},"
1234 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1235 + " \"stateOutputs\" : {" + " \"so0\" : {"
1236 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1237 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1239 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1240 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1241 + " \"finalizers\" : {" + " \"sf0\" : null" + " }" + " }" + "},"
1242 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1243 + "\"description\" : \"A description of hello\"" + "}";
1244 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1245 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1246 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1248 entityString = "{" + "\"name\" : \"Hello19\"," + "\"version\" : \"0.0.2\","
1249 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1250 + "\"states\" : {" + " \"state\" : {"
1251 + " \"name\" : \"state\","
1252 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1253 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1254 + " \"taskSelectionLogic\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : \"lots of lemons, "
1255 + "lots of lime\"},"
1256 + " \"contexts\" : [{\"name\" : \"contextAlbum0\", \"version\" : \"0.0.1\"}],"
1257 + " \"stateOutputs\" : {" + " \"so0\" : {"
1258 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1259 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1261 + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1262 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " },"
1263 + " \"finalizers\" : {"
1264 + " \"sf0\" : {\"logicFlavour\" : \"LemonAndLime\", \"logic\" : null}" + " }" + " }"
1265 + "}," + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1266 + "\"description\" : \"A description of hello\"" + "}";
1267 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1268 result = target("editor/" + sessionId + "/Policy/Create").request().post(entity, ApexApiResult.class);
1269 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1271 entityString = "{" + "\"name\" : \"HelloAnother\"," + "\"version\" : \"0.0.2\","
1272 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1273 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1274 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1275 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1277 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1278 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1279 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1280 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1281 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1282 + "\"description\" : \"A better description of hello\"" + "}";
1283 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1284 result = target("editor/-12345/Policy/Update").request().put(entity, ApexApiResult.class);
1285 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1286 result = target("editor/1234545/Policy/Update").request().put(entity, ApexApiResult.class);
1287 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1288 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1289 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1291 result = target("editor/" + sessionId + "/Policy/Update").queryParam("firstStatePeriodic", "true").request()
1292 .put(entity, ApexApiResult.class);
1293 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1295 target("editor/" + corruptSessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1297 entityString = "{" + "\"name\" : null," + "\"version\" : \"0.0.2\","
1298 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1299 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1300 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1301 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1303 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1304 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1305 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1306 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1307 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1308 + "\"description\" : \"A better description of hello\"" + "}";
1309 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1310 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1311 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1313 entityString = "{" + "\"name\" : \"IDontExist\"," + "\"version\" : \"0.0.2\","
1314 + "\"template\" : \"somewhere.over.the.rainbow\"," + "\"firstState\" : \"state\","
1315 + "\"states\" : {" + " \"state\" : {" + " \"name\" : \"state\","
1316 + " \"trigger\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1317 + " \"defaultTask\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"}," + " \"stateOutputs\" : {"
1319 + " \"event\" : {\"name\" : \"inEvent\", \"version\" : \"0.0.1\"},"
1320 + " \"nextState\" : null" + " }" + " }," + " \"tasks\" : {"
1321 + " \"tr0\" : {" + " \"task\" : {\"name\" : \"task\", \"version\" : \"0.0.1\"},"
1322 + " \"outputType\" : \"DIRECT\"," + " \"outputName\" : \"so0\"" + " }" + " }" + " }" + "},"
1323 + "\"uuid\" : \"1fa2e430-f2b2-11e6-bc64-92361f002671\","
1324 + "\"description\" : \"A better description of hello\"" + "}";
1325 entity = Entity.entity(entityString, MediaType.APPLICATION_JSON);
1326 result = target("editor/" + sessionId + "/Policy/Update").request().put(entity, ApexApiResult.class);
1327 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1329 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "Hello")
1330 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1331 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1332 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", "IDontExist")
1333 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1334 assertEquals(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, result.getResult());
1335 result = target("editor/" + sessionId + "/Policy/Get").queryParam("name", (String) null)
1336 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1337 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1338 result = target("editor/-123345/Policy/Get").queryParam("name", (String) null)
1339 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1340 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1341 result = target("editor/123345/Policy/Get").queryParam("name", (String) null)
1342 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1343 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1345 target("editor/" + corruptSessionId + "/Policy/Get").queryParam("name", "Hello")
1346 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1348 result = target("editor/" + sessionId + "/Validate/Event").queryParam("name", (String) null)
1349 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1350 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1351 result = target("editor/-12345/Validate/Event").queryParam("name", (String) null)
1352 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1353 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1354 result = target("editor/12345/Validate/Event").queryParam("name", (String) null)
1355 .queryParam("version", (String) null).request().get(ApexApiResult.class);
1356 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1358 target("editor/" + corruptSessionId + "/Policy/Delete").queryParam("name", (String) null)
1359 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1361 result = target("editor/-123345/Policy/Delete").queryParam("name", (String) null)
1362 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1363 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1364 result = target("editor/123345/Policy/Delete").queryParam("name", (String) null)
1365 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1366 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
1367 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", "Hello")
1368 .queryParam("version", "0.0.2").request().delete(ApexApiResult.class);
1369 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
1370 result = target("editor/" + sessionId + "/Policy/Delete").queryParam("name", (String) null)
1371 .queryParam("version", (String) null).request().delete(ApexApiResult.class);
1372 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());