2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.testsuites.integration.uservice.adapt.events;
23 import java.util.Random;
26 * The Class EventGenerator.
28 * @author Liam Fallon (liam.fallon@ericsson.com)
30 public class EventGenerator {
31 private static int nextEventNo = 0;
36 * @param eventCount the event count
39 public static String xmlEvents(final int eventCount) {
40 final StringBuilder builder = new StringBuilder();
42 for (int i = 0; i < eventCount; i++) {
46 builder.append(xmlEvent());
49 return builder.toString();
55 * @param eventCount the event count
58 public static String jsonEvents(final int eventCount) {
59 final StringBuilder builder = new StringBuilder();
61 for (int i = 0; i < eventCount; i++) {
65 builder.append(jsonEvent());
68 return builder.toString();
76 public static String xmlEvent() {
77 final Random rand = new Random();
79 final StringBuilder builder = new StringBuilder();
81 int nextEventNo = rand.nextInt(2);
82 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
83 final int nextMatchCase = rand.nextInt(4);
84 final float nextTestTemperature = rand.nextFloat() * 10000;
86 builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
87 builder.append("<xmlApexEvent xmlns=\"http://www.onap.org/policy/apex-pdp/apexevent\">\n");
89 builder.append(" <name>" + eventName + "</name>\n");
90 builder.append(" <version>0.0.1</version>\n");
91 builder.append(" <nameSpace>org.onap.policy.apex.sample.events</nameSpace>\n");
92 builder.append(" <source>test</source>\n");
93 builder.append(" <target>apex</target>\n");
94 builder.append(" <data>\n");
95 builder.append(" <key>TestSlogan</key>\n");
96 builder.append(" <value>Test slogan for External Event" + (nextEventNo++) + "</value>\n");
97 builder.append(" </data>\n");
98 builder.append(" <data>\n");
99 builder.append(" <key>TestMatchCase</key>\n");
100 builder.append(" <value>" + nextMatchCase + "</value>\n");
101 builder.append(" </data>\n");
102 builder.append(" <data>\n");
103 builder.append(" <key>TestTimestamp</key>\n");
104 builder.append(" <value>" + System.currentTimeMillis() + "</value>\n");
105 builder.append(" </data>\n");
106 builder.append(" <data>\n");
107 builder.append(" <key>TestTemperature</key>\n");
108 builder.append(" <value>" + nextTestTemperature + "</value>\n");
109 builder.append(" </data>\n");
110 builder.append("</xmlApexEvent>");
112 return builder.toString();
120 public static String jsonEvent() {
121 final Random rand = new Random();
123 final StringBuilder builder = new StringBuilder();
125 int nextEventNo = rand.nextInt(2);
126 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
127 final int nextMatchCase = rand.nextInt(4);
128 final float nextTestTemperature = rand.nextFloat() * 10000;
130 builder.append("{\n");
131 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
132 builder.append(" \"name\": \"" + eventName + "\",\n");
133 builder.append(" \"version\": \"0.0.1\",\n");
134 builder.append(" \"source\": \"test\",\n");
135 builder.append(" \"target\": \"apex\",\n");
136 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
137 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
138 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
139 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
142 return builder.toString();
146 * Json event no name.
150 public static String jsonEventNoName() {
151 final Random rand = new Random();
153 final StringBuilder builder = new StringBuilder();
155 int nextEventNo = rand.nextInt(2);
156 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
157 final int nextMatchCase = rand.nextInt(4);
158 final float nextTestTemperature = rand.nextFloat() * 10000;
160 builder.append("{\n");
161 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
162 builder.append(" \"namez\": \"" + eventName + "\",\n");
163 builder.append(" \"version\": \"0.0.1\",\n");
164 builder.append(" \"source\": \"test\",\n");
165 builder.append(" \"target\": \"apex\",\n");
166 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
167 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
168 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
169 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
172 return builder.toString();
176 * Json event bad name.
180 public static String jsonEventBadName() {
181 final Random rand = new Random();
183 final StringBuilder builder = new StringBuilder();
185 int nextEventNo = rand.nextInt(2);
186 final int nextMatchCase = rand.nextInt(4);
187 final float nextTestTemperature = rand.nextFloat() * 10000;
189 builder.append("{\n");
190 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
191 builder.append(" \"name\": \"%%%%\",\n");
192 builder.append(" \"version\": \"0.0.1\",\n");
193 builder.append(" \"source\": \"test\",\n");
194 builder.append(" \"target\": \"apex\",\n");
195 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
196 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
197 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
198 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
201 return builder.toString();
205 * Json event no ex name.
209 public static String jsonEventNoExName() {
210 final Random rand = new Random();
212 final StringBuilder builder = new StringBuilder();
214 int nextEventNo = rand.nextInt(2);
215 final int nextMatchCase = rand.nextInt(4);
216 final float nextTestTemperature = rand.nextFloat() * 10000;
218 builder.append("{\n");
219 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
220 builder.append(" \"name\": \"I_DONT_EXIST\",\n");
221 builder.append(" \"source\": \"test\",\n");
222 builder.append(" \"target\": \"apex\",\n");
223 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
224 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
225 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
226 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
229 return builder.toString();
233 * Json event no version.
237 public static String jsonEventNoVersion() {
238 final Random rand = new Random();
240 final StringBuilder builder = new StringBuilder();
242 int nextEventNo = rand.nextInt(2);
243 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
244 final int nextMatchCase = rand.nextInt(4);
245 final float nextTestTemperature = rand.nextFloat() * 10000;
247 builder.append("{\n");
248 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
249 builder.append(" \"name\": \"" + eventName + "\",\n");
250 builder.append(" \"versiion\": \"0.0.1\",\n");
251 builder.append(" \"source\": \"test\",\n");
252 builder.append(" \"target\": \"apex\",\n");
253 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
254 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
255 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
256 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
259 return builder.toString();
263 * Json event bad version.
267 public static String jsonEventBadVersion() {
268 final Random rand = new Random();
270 final StringBuilder builder = new StringBuilder();
272 int nextEventNo = rand.nextInt(2);
273 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
274 final int nextMatchCase = rand.nextInt(4);
275 final float nextTestTemperature = rand.nextFloat() * 10000;
277 builder.append("{\n");
278 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
279 builder.append(" \"name\": \"" + eventName + "\",\n");
280 builder.append(" \"version\": \"#####\",\n");
281 builder.append(" \"source\": \"test\",\n");
282 builder.append(" \"target\": \"apex\",\n");
283 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
284 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
285 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
286 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
289 return builder.toString();
293 * Json event no ex version.
297 public static String jsonEventNoExVersion() {
298 final Random rand = new Random();
300 final StringBuilder builder = new StringBuilder();
302 int nextEventNo = rand.nextInt(2);
303 final int nextMatchCase = rand.nextInt(4);
304 final float nextTestTemperature = rand.nextFloat() * 10000;
306 builder.append("{\n");
307 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
308 builder.append(" \"name\": \"Event0000\",\n");
309 builder.append(" \"version\": \"1.2.3\",\n");
310 builder.append(" \"source\": \"test\",\n");
311 builder.append(" \"target\": \"apex\",\n");
312 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
313 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
314 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
315 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
318 return builder.toString();
322 * Json event no namespace.
326 public static String jsonEventNoNamespace() {
327 final Random rand = new Random();
329 final StringBuilder builder = new StringBuilder();
331 int nextEventNo = rand.nextInt(2);
332 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
333 final int nextMatchCase = rand.nextInt(4);
334 final float nextTestTemperature = rand.nextFloat() * 10000;
336 builder.append("{\n");
337 builder.append(" \"nameSpacee\": \"org.onap.policy.apex.sample.events\",\n");
338 builder.append(" \"name\": \"" + eventName + "\",\n");
339 builder.append(" \"version\": \"0.0.1\",\n");
340 builder.append(" \"source\": \"test\",\n");
341 builder.append(" \"target\": \"apex\",\n");
342 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
343 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
344 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
345 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
348 return builder.toString();
352 * Json event bad namespace.
356 public static String jsonEventBadNamespace() {
357 final Random rand = new Random();
359 final StringBuilder builder = new StringBuilder();
361 int nextEventNo = rand.nextInt(2);
362 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
363 final int nextMatchCase = rand.nextInt(4);
364 final float nextTestTemperature = rand.nextFloat() * 10000;
366 builder.append("{\n");
367 builder.append(" \"nameSpace\": \"hello.&&&&\",\n");
368 builder.append(" \"name\": \"" + eventName + "\",\n");
369 builder.append(" \"version\": \"0.0.1\",\n");
370 builder.append(" \"source\": \"test\",\n");
371 builder.append(" \"target\": \"apex\",\n");
372 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
373 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
374 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
375 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
378 return builder.toString();
382 * Json event no ex namespace.
386 public static String jsonEventNoExNamespace() {
387 final Random rand = new Random();
389 final StringBuilder builder = new StringBuilder();
391 int nextEventNo = rand.nextInt(2);
392 final int nextMatchCase = rand.nextInt(4);
393 final float nextTestTemperature = rand.nextFloat() * 10000;
395 builder.append("{\n");
396 builder.append(" \"nameSpace\": \"pie.in.the.sky\",\n");
397 builder.append(" \"name\": \"Event0000\",\n");
398 builder.append(" \"version\": \"0.0.1\",\n");
399 builder.append(" \"source\": \"test\",\n");
400 builder.append(" \"target\": \"apex\",\n");
401 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
402 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
403 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
404 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
407 return builder.toString();
411 * Json event no source.
415 public static String jsonEventNoSource() {
416 final Random rand = new Random();
418 final StringBuilder builder = new StringBuilder();
420 int nextEventNo = rand.nextInt(2);
421 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
422 final int nextMatchCase = rand.nextInt(4);
423 final float nextTestTemperature = rand.nextFloat() * 10000;
425 builder.append("{\n");
426 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
427 builder.append(" \"name\": \"" + eventName + "\",\n");
428 builder.append(" \"version\": \"0.0.1\",\n");
429 builder.append(" \"sourcee\": \"test\",\n");
430 builder.append(" \"target\": \"apex\",\n");
431 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
432 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
433 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
434 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
437 return builder.toString();
441 * Json event bad source.
445 public static String jsonEventBadSource() {
446 final Random rand = new Random();
448 final StringBuilder builder = new StringBuilder();
450 int nextEventNo = rand.nextInt(2);
451 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
452 final int nextMatchCase = rand.nextInt(4);
453 final float nextTestTemperature = rand.nextFloat() * 10000;
455 builder.append("{\n");
456 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
457 builder.append(" \"name\": \"" + eventName + "\",\n");
458 builder.append(" \"version\": \"0.0.1\",\n");
459 builder.append(" \"source\": \"%!@**@!\",\n");
460 builder.append(" \"target\": \"apex\",\n");
461 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
462 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
463 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
464 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
467 return builder.toString();
471 * Json event no target.
475 public static String jsonEventNoTarget() {
476 final Random rand = new Random();
478 final StringBuilder builder = new StringBuilder();
480 int nextEventNo = rand.nextInt(2);
481 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
482 final int nextMatchCase = rand.nextInt(4);
483 final float nextTestTemperature = rand.nextFloat() * 10000;
485 builder.append("{\n");
486 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
487 builder.append(" \"name\": \"" + eventName + "\",\n");
488 builder.append(" \"version\": \"0.0.1\",\n");
489 builder.append(" \"source\": \"test\",\n");
490 builder.append(" \"targett\": \"apex\",\n");
491 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
492 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
493 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
494 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
497 return builder.toString();
501 * Json event bad target.
505 public static String jsonEventBadTarget() {
506 final Random rand = new Random();
508 final StringBuilder builder = new StringBuilder();
510 int nextEventNo = rand.nextInt(2);
511 final String eventName = (nextEventNo == 0 ? "Event0000" : "Event0100");
512 final int nextMatchCase = rand.nextInt(4);
513 final float nextTestTemperature = rand.nextFloat() * 10000;
515 builder.append("{\n");
516 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
517 builder.append(" \"name\": \"" + eventName + "\",\n");
518 builder.append(" \"version\": \"0.0.1\",\n");
519 builder.append(" \"source\": \"test\",\n");
520 builder.append(" \"target\": \"KNIO(*S)A(S)D\",\n");
521 builder.append(" \"TestSlogan\": \"Test slogan for External Event" + (nextEventNo++) + "\",\n");
522 builder.append(" \"TestMatchCase\": " + nextMatchCase + ",\n");
523 builder.append(" \"TestTimestamp\": " + System.currentTimeMillis() + ",\n");
524 builder.append(" \"TestTemperature\": " + nextTestTemperature + "\n");
527 return builder.toString();
531 * Json event missing fields.
535 public static String jsonEventMissingFields() {
536 final StringBuilder builder = new StringBuilder();
538 builder.append("{\n");
539 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
540 builder.append(" \"name\": \"Event0000\",\n");
541 builder.append(" \"version\": \"0.0.1\",\n");
542 builder.append(" \"source\": \"test\",\n");
543 builder.append(" \"target\": \"apex\"\n");
546 return builder.toString();
550 * Json event null fields.
554 public static String jsonEventNullFields() {
555 final StringBuilder builder = new StringBuilder();
557 builder.append("{\n");
558 builder.append(" \"nameSpace\": \"org.onap.policy.apex.sample.events\",\n");
559 builder.append(" \"name\": \"Event0000\",\n");
560 builder.append(" \"version\": \"0.0.1\",\n");
561 builder.append(" \"source\": \"test\",\n");
562 builder.append(" \"target\": \"Apex\",\n");
563 builder.append(" \"TestSlogan\": null,\n");
564 builder.append(" \"TestMatchCase\": -1,\n");
565 builder.append(" \"TestTimestamp\": -1,\n");
566 builder.append(" \"TestTemperature\": -1.0\n");
569 return builder.toString();
575 * @param args the arguments
577 public static void main(final String[] args) {
578 if (args.length != 2) {
579 System.err.println("usage EventGenerator #events XML|JSON");
585 eventCount = Integer.parseInt(args[0]);
586 } catch (final Exception e) {
587 System.err.println("usage EventGenerator #events XML|JSON");
592 if (args[1].equalsIgnoreCase("XML")) {
593 System.out.println(xmlEvents(eventCount));
594 } else if (args[1].equalsIgnoreCase("JSON")) {
595 System.out.println(jsonEvents(eventCount));
597 System.err.println("usage EventGenerator #events XML|JSON");
603 * Gets the next event no.
605 * @return the next event no
607 public static int getNextEventNo() {