### Question:
DMNMarshaller { Optional<JSITDRGElement> getExistingNode(final JSITDefinitions definitions, final JSITDRGElement node) { final JSITDRGElement[] existingDRGElement = new JSITDRGElement[1]; forEach(definitions.getDrgElement(), drgElement -> { if (Objects.equals(drgElement.getId(), node.getId())) { existingDRGElement[0] = drgElement; } }); final JSITDRGElement value = Js.uncheckedCast(existingDRGElement[0]); return Optional.ofNullable(value); } protected  DMNMarshaller(); @Inject  DMNMarshaller(final FactoryManager factoryManager); @PostConstruct void init(); JSITDefinitions marshall(); List<Node> getNodeStream(final Diagram diagram); @SuppressWarnings("unchecked") JSITDRGElement stunnerToDMN(final Node<?, ?> node,
                                       final Consumer<JSITComponentWidths> componentWidthsConsumer); static final String PREFIX; }### Answer:
@Test public void testGetExistingNode() { final JSITDecision nodeDRGElement = makeDecision("id1"); final JSITDecision definitionsDRGElement1 = makeDecision("id1"); final JSITDecision definitionsDRGElement2 = makeDecision("id2"); final JSITDecision definitionsDRGElement3 = makeDecision("id3"); final DMNMarshaller dmnMarshaller = new DMNMarshaller(); final JSITDefinitions definitions = spy(new JSITDefinitions()); final List<JSITDRGElement> definitionsDRGElements = new ArrayList<>(asList(definitionsDRGElement1, definitionsDRGElement2, definitionsDRGElement3)); doReturn(definitionsDRGElements).when(definitions).getDrgElement(); final Optional<JSITDRGElement> existingNode = dmnMarshaller.getExistingNode(definitions, nodeDRGElement); assertTrue(existingNode.isPresent()); assertEquals(definitionsDRGElement1, existingNode.get()); }