2021-03-21 12:52:20 +00:00
|
|
|
package demo1;
|
|
|
|
|
2021-03-22 08:45:48 +00:00
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
2021-03-21 12:52:20 +00:00
|
|
|
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
import net.sourceforge.plantuml.FileFormat;
|
|
|
|
import net.sourceforge.plantuml.FileFormatOption;
|
|
|
|
import net.sourceforge.plantuml.SourceStringReader;
|
|
|
|
import net.sourceforge.plantuml.core.DiagramDescription;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This test is a simple POC of what could be non-regression test for PlantUML.
|
|
|
|
*
|
|
|
|
* In real world, test diagram and expected result would not be stored in source file.
|
|
|
|
*/
|
|
|
|
class SimpleSequenceDiagramTest {
|
|
|
|
|
|
|
|
@Test
|
|
|
|
void testSimple() throws IOException {
|
|
|
|
|
|
|
|
final String diagramText = getText();
|
|
|
|
final SourceStringReader ssr = new SourceStringReader(diagramText, "UTF-8");
|
|
|
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
|
|
|
|
|
|
final DiagramDescription diagramDescription = ssr.outputImage(baos, 0, new FileFormatOption(FileFormat.DEBUG));
|
|
|
|
|
|
|
|
assertEquals("(2 participants)", diagramDescription.getDescription());
|
|
|
|
|
|
|
|
final String desc = new String(baos.toByteArray(), "UTF-8");
|
|
|
|
|
|
|
|
final String expected = getExpectedResult();
|
2021-03-22 08:45:48 +00:00
|
|
|
assertEquals(expected, desc);
|
2021-03-21 12:52:20 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private String getText() {
|
|
|
|
return packString( //
|
|
|
|
"@startuml", //
|
|
|
|
"Alice -> Bob : Hello", //
|
|
|
|
"@enduml");
|
|
|
|
}
|
|
|
|
|
|
|
|
private String getExpectedResult() {
|
|
|
|
return packString( //
|
|
|
|
"DPI: 96", //
|
|
|
|
"", //
|
|
|
|
"LINE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 49;38", //
|
|
|
|
" pt2: 49;85", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" stroke: 5.0-5.0-1.0", //
|
|
|
|
" shadow: 0", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"LINE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 138;38", //
|
|
|
|
" pt2: 138;85", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" stroke: 5.0-5.0-1.0", //
|
|
|
|
" shadow: 0", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"RECTANGLE:", //
|
|
|
|
" pt1: 5;5", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt2: 89;33", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" xCorner: 0", //
|
|
|
|
" yCorner: 0", //
|
|
|
|
" stroke: 0.0-0.0-1.5", //
|
|
|
|
" shadow: 4", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
" backcolor: fffefece", //
|
|
|
|
"", //
|
|
|
|
"TEXT:", //
|
|
|
|
" text: Alice", //
|
|
|
|
" position: 12;22", //
|
|
|
|
" orientation: 0", //
|
|
|
|
" font: SansSerif.plain/14 []", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"RECTANGLE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 5;84", //
|
|
|
|
" pt2: 89;112", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" xCorner: 0", //
|
|
|
|
" yCorner: 0", //
|
|
|
|
" stroke: 0.0-0.0-1.5", //
|
|
|
|
" shadow: 4", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
" backcolor: fffefece", //
|
|
|
|
"", //
|
|
|
|
"TEXT:", //
|
|
|
|
" text: Alice", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" position: 12;101", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" orientation: 0", //
|
|
|
|
" font: SansSerif.plain/14 []", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"RECTANGLE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 108;5", //
|
|
|
|
" pt2: 164;33", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" xCorner: 0", //
|
|
|
|
" yCorner: 0", //
|
|
|
|
" stroke: 0.0-0.0-1.5", //
|
|
|
|
" shadow: 4", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
" backcolor: fffefece", //
|
|
|
|
"", //
|
|
|
|
"TEXT:", //
|
|
|
|
" text: Bob", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" position: 115;22", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" orientation: 0", //
|
|
|
|
" font: SansSerif.plain/14 []", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"RECTANGLE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 108;84", //
|
|
|
|
" pt2: 164;112", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" xCorner: 0", //
|
|
|
|
" yCorner: 0", //
|
|
|
|
" stroke: 0.0-0.0-1.5", //
|
|
|
|
" shadow: 4", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
" backcolor: fffefece", //
|
|
|
|
"", //
|
|
|
|
"TEXT:", //
|
|
|
|
" text: Bob", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" position: 115;101", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" orientation: 0", //
|
|
|
|
" font: SansSerif.plain/14 []", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"POLYGON:", //
|
|
|
|
" points:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" - 126;63", //
|
|
|
|
" - 136;67", //
|
|
|
|
" - 126;71", //
|
|
|
|
" - 130;67", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" stroke: 0.0-0.0-1.0", //
|
|
|
|
" shadow: 0", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
" backcolor: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"LINE:", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" pt1: 49;67", //
|
|
|
|
" pt2: 132;67", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" stroke: 0.0-0.0-1.0", //
|
|
|
|
" shadow: 0", //
|
|
|
|
" color: ffa80036", //
|
|
|
|
"", //
|
|
|
|
"TEXT:", //
|
|
|
|
" text: Hello", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" position: 56;62", //
|
2021-03-21 12:52:20 +00:00
|
|
|
" orientation: 0", //
|
|
|
|
" font: SansSerif.plain/13 []", //
|
2021-03-22 08:45:48 +00:00
|
|
|
" color: ffa80036" //
|
|
|
|
);
|
2021-03-21 12:52:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private String packString(String... list) {
|
|
|
|
final StringBuilder sb = new StringBuilder();
|
|
|
|
for (String s : list) {
|
|
|
|
sb.append(s);
|
|
|
|
sb.append("\n");
|
|
|
|
}
|
|
|
|
return sb.toString() + "\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|