@Test
public void testUnmarshall_diagram() throws Exception {
try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(DIAGRAM_FILE)) {
Metadata metadata = new MetadataImpl.MetadataImplBuilder(
BindableAdapterUtils.getDefinitionSetId(CaseManagementDefinitionSet.class)).build();
Graph<DefinitionSet, Node> graph = tested.unmarshall(metadata, inputStream);
List<Node<View<?>, Edge>> nodes = StreamSupport.stream(graph.nodes().spliterator(), false)
.map(n -> (Node<View<?>, Edge>) n).collect(Collectors.toList());
Node<View<?>, Edge> root = nodes.stream()
.filter(node -> CaseManagementDiagram.class.isInstance(node.getContent().getDefinition()))
.findAny().get();
CaseManagementDiagram diagram = (CaseManagementDiagram) root.getContent().getDefinition();
DiagramSet diagramSet = diagram.getDiagramSet();
assertEquals("DiagramTest", diagramSet.getName().getValue());
assertEquals("DiagramTest", diagramSet.getDocumentation().getValue());
assertEquals("DiagramTest", diagramSet.getId().getValue());
assertEquals("DiagramTest", diagramSet.getPackageProperty().getValue());
assertEquals("2.0", diagramSet.getVersion().getValue());
assertTrue(diagramSet.getAdHoc().getValue());
assertEquals("DiagramTest", diagramSet.getProcessInstanceDescription().getValue());
ProcessData processData = diagram.getProcessData();
assertEquals("DiagramTest:Boolean", processData.getProcessVariables().getValue());
CaseManagementSet caseManagementSet = diagram.getCaseManagementSet();
assertEquals("DiagramTest", caseManagementSet.getCaseIdPrefix().getValue());
assertEquals("DiagramTest:5", caseManagementSet.getCaseRoles().getValue());
assertEquals("DiagramTest:Boolean", caseManagementSet.getCaseFileVariables().getValue());
}
}