### Question:
ProcessConverterDelegate { void postConvertChildNodes(ProcessPropertyWriter processWriter, DefinitionsBuildingContext context) { final Map<String, BasePropertyWriter> propertyWriters = collectPropertyWriters(processWriter); context.nodes().forEach(node -> converterFactory.flowElementPostConverter().postConvert(processWriter, propertyWriters.get(node.getUUID()), node)); } ProcessConverterDelegate(ConverterFactory converterFactory);   }### Answer:
@Test @SuppressWarnings("unchecked") public void testPostConvertNodes() { TestingGraphMockHandler graphTestHandler = new TestingGraphMockHandler(); BPMNDiagramImpl bpmnDiagram = new BPMNDiagramImpl(); StartNoneEvent level0StartNode = new StartNoneEvent(); EndNoneEvent level0EndNode = new EndNoneEvent(); UserTask level0Node1 = new UserTask(); UserTask level0Node2 = new UserTask(); EmbeddedSubprocess level1SubProcess1 = new EmbeddedSubprocess(); ScriptTask level1Node1 = new ScriptTask(); IntermediateSignalEventThrowing level1Node2 = new IntermediateSignalEventThrowing(); AdHocSubprocess level2SubProcess1 = new AdHocSubprocess(); BusinessRuleTask level2Node1 = new BusinessRuleTask(); EndCompensationEvent level2Node2 = new EndCompensationEvent(); TestingGraphInstanceBuilder2.Level2Graph level2Graph = TestingGraphInstanceBuilder2.buildLevel2Graph(graphTestHandler, bpmnDiagram, level0StartNode, level0Node1, level0Node2, level0EndNode, level1SubProcess1, level1Node1, level1Node2, level2SubProcess1, level2Node1, level2Node2); DefinitionsBuildingContext ctx = new DefinitionsBuildingContext(level2Graph.graph); PropertyWriterFactory writerFactory = new PropertyWriterFactory(); ConverterFactory factory = spy(new ConverterFactory(ctx, writerFactory)); FlowElementPostConverter flowElementPostConverter = mock(FlowElementPostConverter.class); when(factory.flowElementPostConverter()).thenReturn(flowElementPostConverter); MyProcessConverter abstractProcessConverter = new MyProcessConverter(factory); ProcessPropertyWriter processWriter = writerFactory.of(bpmn2.createProcess()); abstractProcessConverter.postConvertChildNodes(processWriter, ctx); verify(flowElementPostConverter, times(10)).postConvert(anyObject(), anyObject(), nodeCaptor.capture()); Map<String, BPMNViewDefinition> nodes = new HashMap<>(); nodes.put(LEVEL0_START_NODE.uuid(), level0StartNode); nodes.put(LEVEL0_NODE1.uuid(), level0Node1); nodes.put(LEVEL0_NODE2.uuid(), level0Node2); nodes.put(LEVEL0_END_NODE.uuid(), level0EndNode); nodes.put(LEVEL1_SUB_PROCESS1.uuid(), level1SubProcess1); nodes.put(LEVEL1_NODE1.uuid(), level1Node1); nodes.put(LEVEL1_NODE2.uuid(), level1Node2); nodes.put(LEVEL2_SUB_PROCESS1.uuid(), level2SubProcess1); nodes.put(LEVEL2_NODE1.uuid(), level2Node1); nodes.put(LEVEL2_NODE2.uuid(), level2Node2); assertEquals(nodes.size(), nodeCaptor.getAllValues().size()); nodes.entrySet().forEach(entry -> { Optional<Node<View<? extends BPMNViewDefinition>, ?>> processed = nodeCaptor.getAllValues() .stream() .filter(captured -> entry.getKey().equals(captured.getUUID())) .findFirst(); assertTrue("Node: " + entry.getKey() + " was not present in result", processed.isPresent()); assertEquals(entry.getValue(), processed.get().getContent().getDefinition()); }); }