20 package net.sf.gridarta.plugin.parameter;
22 import java.io.ByteArrayOutputStream;
24 import java.io.IOException;
25 import java.io.StringReader;
26 import java.nio.charset.StandardCharsets;
38 import nu.xom.Builder;
39 import nu.xom.Document;
40 import nu.xom.Element;
41 import nu.xom.ParsingException;
42 import nu.xom.Serializer;
43 import org.jetbrains.annotations.NotNull;
44 import org.junit.Assert;
45 import org.junit.Ignore;
46 import org.junit.Test;
47 import org.xml.sax.SAXException;
48 import org.xml.sax.XMLReader;
49 import org.xml.sax.helpers.XMLReaderFactory;
65 final StringBuilder sb =
new StringBuilder();
66 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
67 sb.append(
"<parameter>\r\n");
68 sb.append(
" <name>[name]</name>\r\n");
69 sb.append(
" <description>[description]</description>\r\n");
70 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
71 sb.append(
" <value/>\r\n");
72 sb.append(
"</parameter>\r\n");
73 Assert.assertEquals(sb.toString(),
toXML(parameter));
85 final StringBuilder sb =
new StringBuilder();
86 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
87 sb.append(
"<parameter>\r\n");
88 sb.append(
" <name>[name]</name>\r\n");
89 sb.append(
" <description>[description]</description>\r\n");
90 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
91 sb.append(
" <value>undefined_archetype</value>\r\n");
92 sb.append(
"</parameter>\r\n");
93 Assert.assertEquals(sb.toString(),
toXML(parameter));
106 final StringBuilder sb =
new StringBuilder();
107 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
108 sb.append(
"<parameter>\r\n");
109 sb.append(
" <name>[name]</name>\r\n");
110 sb.append(
" <description>[description]</description>\r\n");
111 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
112 sb.append(
" <value>existing_archetype</value>\r\n");
113 sb.append(
"</parameter>\r\n");
114 Assert.assertEquals(sb.toString(),
toXML(parameter));
126 final StringBuilder sb =
new StringBuilder();
127 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
128 sb.append(
"<parameter>\r\n");
129 sb.append(
" <name>Name</name>\r\n");
130 sb.append(
" <description>Description</description>\r\n");
131 sb.append(
" <type>java.lang.Boolean</type>\r\n");
132 sb.append(
" <value>false</value>\r\n");
133 sb.append(
" <trueText>Yes</trueText>\r\n");
134 sb.append(
" <falseText>No</falseText>\r\n");
135 sb.append(
"</parameter>\r\n");
136 Assert.assertEquals(sb.toString(),
toXML(parameter));
149 final StringBuilder sb =
new StringBuilder();
150 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
151 sb.append(
"<parameter>\r\n");
152 sb.append(
" <name>[name]</name>\r\n");
153 sb.append(
" <description>[description]</description>\r\n");
154 sb.append(
" <type>java.lang.Boolean</type>\r\n");
155 sb.append(
" <value>true</value>\r\n");
156 sb.append(
" <trueText>true-text</trueText>\r\n");
157 sb.append(
" <falseText>false-text</falseText>\r\n");
158 sb.append(
"</parameter>\r\n");
159 Assert.assertEquals(sb.toString(),
toXML(parameter));
171 final StringBuilder sb =
new StringBuilder();
172 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
173 sb.append(
"<parameter>\r\n");
174 sb.append(
" <name>Name</name>\r\n");
175 sb.append(
" <description>Description</description>\r\n");
176 sb.append(
" <type>java.lang.Double</type>\r\n");
177 sb.append(
" <value>0.0</value>\r\n");
178 sb.append(
" <minimum>0.0</minimum>\r\n");
179 sb.append(
" <maximum>1.0</maximum>\r\n");
180 sb.append(
"</parameter>\r\n");
181 Assert.assertEquals(sb.toString(),
toXML(parameter));
191 parameter.
setMin(-123.456);
194 final StringBuilder sb =
new StringBuilder();
195 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
196 sb.append(
"<parameter>\r\n");
197 sb.append(
" <name>[name]</name>\r\n");
198 sb.append(
" <description>[description]</description>\r\n");
199 sb.append(
" <type>java.lang.Double</type>\r\n");
200 sb.append(
" <value>12.34</value>\r\n");
201 sb.append(
" <minimum>-123.456</minimum>\r\n");
202 sb.append(
" <maximum>234.0</maximum>\r\n");
203 sb.append(
"</parameter>\r\n");
204 Assert.assertEquals(sb.toString(),
toXML(parameter));
216 final StringBuilder sb =
new StringBuilder();
217 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
218 sb.append(
"<parameter>\r\n");
219 sb.append(
" <name>Name</name>\r\n");
220 sb.append(
" <description>Description</description>\r\n");
221 sb.append(
" <type>java.lang.Integer</type>\r\n");
222 sb.append(
" <value>0</value>\r\n");
223 sb.append(
" <minimum>-2147483648</minimum>\r\n");
224 sb.append(
" <maximum>2147483647</maximum>\r\n");
225 sb.append(
"</parameter>\r\n");
226 Assert.assertEquals(sb.toString(),
toXML(parameter));
239 final StringBuilder sb =
new StringBuilder();
240 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
241 sb.append(
"<parameter>\r\n");
242 sb.append(
" <name>[name]</name>\r\n");
243 sb.append(
" <description>[description]</description>\r\n");
244 sb.append(
" <type>java.lang.Integer</type>\r\n");
245 sb.append(
" <value>2</value>\r\n");
246 sb.append(
" <minimum>-123</minimum>\r\n");
247 sb.append(
" <maximum>234</maximum>\r\n");
248 sb.append(
"</parameter>\r\n");
249 Assert.assertEquals(sb.toString(),
toXML(parameter));
262 final StringBuilder sb =
new StringBuilder();
263 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
264 sb.append(
"<parameter>\r\n");
265 sb.append(
" <name>Name</name>\r\n");
266 sb.append(
" <description>Description</description>\r\n");
267 sb.append(
" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n");
268 sb.append(
" <value/>\r\n");
269 sb.append(
"</parameter>\r\n");
270 Assert.assertEquals(sb.toString(),
toXML(parameter));
282 final StringBuilder sb =
new StringBuilder();
283 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
284 sb.append(
"<parameter>\r\n");
285 sb.append(
" <name>[name]</name>\r\n");
286 sb.append(
" <description>[description]</description>\r\n");
287 sb.append(
" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n");
288 sb.append(
" <value/>\r\n");
289 sb.append(
"</parameter>\r\n");
290 Assert.assertEquals(sb.toString(),
toXML(parameter));
301 final File mapDir =
new File(
"/tmp");
302 final String mapPath =
"path/to/map";
305 final StringBuilder sb =
new StringBuilder();
306 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
307 sb.append(
"<parameter>\r\n");
308 sb.append(
" <name>[name]</name>\r\n");
309 sb.append(
" <description>[description]</description>\r\n");
310 sb.append(
" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n");
311 sb.append(
" <value>/path/to/map</value>\r\n");
312 sb.append(
"</parameter>\r\n");
313 Assert.assertEquals(sb.toString(),
toXML(parameter));
327 final StringBuilder sb =
new StringBuilder();
328 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
329 sb.append(
"<parameter>\r\n");
330 sb.append(
" <name>Name</name>\r\n");
331 sb.append(
" <description>Description</description>\r\n");
332 sb.append(
" <type>MapPathParameter</type>\r\n");
333 sb.append(
" <value/>\r\n");
334 sb.append(
"</parameter>\r\n");
335 Assert.assertEquals(sb.toString(),
toXML(parameter));
348 final StringBuilder sb =
new StringBuilder();
349 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
350 sb.append(
"<parameter>\r\n");
351 sb.append(
" <name>[name]</name>\r\n");
352 sb.append(
" <description>[description]</description>\r\n");
353 sb.append(
" <type>MapPathParameter</type>\r\n");
354 sb.append(
" <value>/path</value>\r\n");
355 sb.append(
"</parameter>\r\n");
356 Assert.assertEquals(sb.toString(),
toXML(parameter));
368 final StringBuilder sb =
new StringBuilder();
369 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
370 sb.append(
"<parameter>\r\n");
371 sb.append(
" <name>Name</name>\r\n");
372 sb.append(
" <description>Description</description>\r\n");
373 sb.append(
" <type>java.lang.String</type>\r\n");
374 sb.append(
" <value/>\r\n");
375 sb.append(
"</parameter>\r\n");
376 Assert.assertEquals(sb.toString(),
toXML(parameter));
387 final StringBuilder sb =
new StringBuilder();
388 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
389 sb.append(
"<parameter>\r\n");
390 sb.append(
" <name>[name]</name>\r\n");
391 sb.append(
" <description>[description]</description>\r\n");
392 sb.append(
" <type>java.lang.String</type>\r\n");
393 sb.append(
" <value>string value</value>\r\n");
394 sb.append(
"</parameter>\r\n");
395 Assert.assertEquals(sb.toString(),
toXML(parameter));
407 final StringBuilder sb =
new StringBuilder();
408 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
409 sb.append(
"<parameter>\r\n");
410 sb.append(
" <name>Name</name>\r\n");
411 sb.append(
" <description>Description</description>\r\n");
412 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
413 sb.append(
" <value/>\r\n");
414 sb.append(
"</parameter>\r\n");
418 Assert.assertEquals(
"Name", parameter.
getName());
419 Assert.assertEquals(
"net.sf.gridarta.model.archetype.Archetype", parameter.
getParameterType());
434 final StringBuilder sb =
new StringBuilder();
435 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
436 sb.append(
"<parameter>\r\n");
437 sb.append(
" <name>Name</name>\r\n");
438 sb.append(
" <description>Description</description>\r\n");
439 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
440 sb.append(
" <value>undefined_archetype</value>\r\n");
441 sb.append(
"</parameter>\r\n");
445 Assert.assertEquals(
"Name", parameter.
getName());
446 Assert.assertEquals(
"net.sf.gridarta.model.archetype.Archetype", parameter.
getParameterType());
449 Assert.assertEquals(
"undefined_archetype", parameter.
getStringValue());
461 final StringBuilder sb =
new StringBuilder();
462 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
463 sb.append(
"<parameter>\r\n");
464 sb.append(
" <name>Name</name>\r\n");
465 sb.append(
" <description>Description</description>\r\n");
466 sb.append(
" <type>net.sf.gridarta.model.archetype.Archetype</type>\r\n");
467 sb.append(
" <value>existing_archetype</value>\r\n");
468 sb.append(
"</parameter>\r\n");
473 Assert.assertEquals(
"Name", parameter.
getName());
474 Assert.assertEquals(
"net.sf.gridarta.model.archetype.Archetype", parameter.
getParameterType());
477 Assert.assertEquals(
"existing_archetype", parameter.
getStringValue());
489 final StringBuilder sb =
new StringBuilder();
490 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
491 sb.append(
"<parameter>\r\n");
492 sb.append(
" <name>Name</name>\r\n");
493 sb.append(
" <description>Description</description>\r\n");
494 sb.append(
" <type>java.lang.Boolean</type>\r\n");
495 sb.append(
" <value/>\r\n");
496 sb.append(
" <trueText>Yes</trueText>\r\n");
497 sb.append(
" <falseText>No</falseText>\r\n");
498 sb.append(
"</parameter>\r\n");
503 Assert.assertEquals(
"Name", parameter.
getName());
507 Assert.assertEquals(
"No", booleanParameter.
getFalseText());
508 Assert.assertEquals(
"Yes", booleanParameter.
getTrueText());
520 final StringBuilder sb =
new StringBuilder();
521 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
522 sb.append(
"<parameter>\r\n");
523 sb.append(
" <name>Name</name>\r\n");
524 sb.append(
" <description>Description</description>\r\n");
525 sb.append(
" <type>java.lang.Boolean</type>\r\n");
526 sb.append(
" <value>true</value>\r\n");
527 sb.append(
" <trueText>true-text</trueText>\r\n");
528 sb.append(
" <falseText>false-text</falseText>\r\n");
529 sb.append(
"</parameter>\r\n");
534 Assert.assertEquals(
"Name", parameter.
getName());
538 Assert.assertEquals(
"false-text", booleanParameter.
getFalseText());
539 Assert.assertEquals(
"true-text", booleanParameter.
getTrueText());
551 final StringBuilder sb =
new StringBuilder();
552 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
553 sb.append(
"<parameter>\r\n");
554 sb.append(
" <name>Name</name>\r\n");
555 sb.append(
" <description>Description</description>\r\n");
556 sb.append(
" <type>java.lang.Double</type>\r\n");
557 sb.append(
" <value/>\r\n");
558 sb.append(
" <minimum>0.0</minimum>\r\n");
559 sb.append(
" <maximum>1.0</maximum>\r\n");
560 sb.append(
"</parameter>\r\n");
565 Assert.assertEquals(
"Name", parameter.
getName());
569 Assert.assertEquals(0.0, doubleParameter.
getMin(), 1E-9);
570 Assert.assertEquals(1.0, doubleParameter.
getMax(), 1E-9);
582 final StringBuilder sb =
new StringBuilder();
583 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
584 sb.append(
"<parameter>\r\n");
585 sb.append(
" <name>Name</name>\r\n");
586 sb.append(
" <description>Description</description>\r\n");
587 sb.append(
" <type>java.lang.Double</type>\r\n");
588 sb.append(
" <value>12.34</value>\r\n");
589 sb.append(
" <minimum>-123.456</minimum>\r\n");
590 sb.append(
" <maximum>234.0</maximum>\r\n");
591 sb.append(
"</parameter>\r\n");
596 Assert.assertEquals(
"Name", parameter.
getName());
600 Assert.assertEquals(-123.456, doubleParameter.
getMin(), 1E-9);
601 Assert.assertEquals(234.0, doubleParameter.
getMax(), 1E-9);
613 final StringBuilder sb =
new StringBuilder();
614 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
615 sb.append(
"<parameter>\r\n");
616 sb.append(
" <name>Name</name>\r\n");
617 sb.append(
" <description>Description</description>\r\n");
618 sb.append(
" <type>java.lang.Integer</type>\r\n");
619 sb.append(
" <value/>\r\n");
620 sb.append(
" <minimum>-2147483648</minimum>\r\n");
621 sb.append(
" <maximum>2147483647</maximum>\r\n");
622 sb.append(
"</parameter>\r\n");
627 Assert.assertEquals(
"Name", parameter.
getName());
631 Assert.assertEquals(-2147483648, integerParameter.
getMin());
632 Assert.assertEquals(2147483647, integerParameter.
getMax());
644 final StringBuilder sb =
new StringBuilder();
645 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
646 sb.append(
"<parameter>\r\n");
647 sb.append(
" <name>Name</name>\r\n");
648 sb.append(
" <description>Description</description>\r\n");
649 sb.append(
" <type>java.lang.Integer</type>\r\n");
650 sb.append(
" <value>2</value>\r\n");
651 sb.append(
" <minimum>-123</minimum>\r\n");
652 sb.append(
" <maximum>234</maximum>\r\n");
653 sb.append(
"</parameter>\r\n");
658 Assert.assertEquals(
"Name", parameter.
getName());
662 Assert.assertEquals(-123, integerParameter.
getMin());
663 Assert.assertEquals(234, integerParameter.
getMax());
675 final StringBuilder sb =
new StringBuilder();
676 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
677 sb.append(
"<parameter>\r\n");
678 sb.append(
" <name>Name</name>\r\n");
679 sb.append(
" <description>Description</description>\r\n");
680 sb.append(
" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n");
681 sb.append(
" <value/>\r\n");
682 sb.append(
"</parameter>\r\n");
687 Assert.assertEquals(
"Name", parameter.
getName());
688 Assert.assertEquals(
"net.sf.gridarta.model.mapcontrol.MapControl", parameter.
getParameterType());
703 final StringBuilder sb =
new StringBuilder();
704 sb.append(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
705 sb.append(
"<parameter>\r\n");
706 sb.append(
" <name>Name</name>\r\n");
707 sb.append(
" <description>Description</description>\r\n");
708 sb.append(
" <type>net.sf.gridarta.model.mapcontrol.MapControl</type>\r\n");
709 sb.append(
" <value>/path/to/map</value>\r\n");
710 sb.append(
"</parameter>\r\n");
712 final File mapDir =
new File(
"/tmp");
717 Assert.assertEquals(
"Name", parameter.
getName());
718 Assert.assertEquals(
"net.sf.gridarta.model.mapcontrol.MapControl", parameter.
getParameterType());
721 Assert.assertNotNull(mapControl2);
723 Assert.assertNotNull(mapFile);
736 final Element element = codec.
toXML(parameter);
737 final ByteArrayOutputStream stream =
new ByteArrayOutputStream();
738 final Serializer serializer =
new Serializer(stream,
"UTF-8");
739 serializer.setIndent(2);
740 serializer.write(
new Document(element));
741 return new String(stream.toByteArray(), StandardCharsets.UTF_8);
756 final XMLReader xmlReader = XMLReaderFactory.createXMLReader();
757 final Builder builder =
new Builder(xmlReader,
false);
758 final Document document = builder.build(
new StringReader(
string));
760 final Element element = document.getRootElement();