### Question:
DecisionNavigatorItemFactory { public DecisionNavigatorItem makeItem(final Node<View, Edge> node) { final String nodeClassName = Optional.ofNullable(DefinitionUtils.getElementDefinition(node)) .map(elementDefinition -> elementDefinition.getClass().getSimpleName()) .orElse(Node.class.getSimpleName()); return baseItemFactory.makeItem(node, Type.ofExpressionNodeClassName(nodeClassName)); } @Inject  DecisionNavigatorItemFactory(final DecisionNavigatorBaseItemFactory baseItemFactory,
                                        final Event<DMNDiagramSelected> selectedEvent,
                                        final DMNDiagramsSession dmnDiagramsSession); DecisionNavigatorItem makeItem(final Node<View, Edge> node); DecisionNavigatorItem makeRoot(final DMNDiagramTuple diagramTuple); DecisionNavigatorItem makeSeparator(final String label);  }### Answer:
@Test public void testMakeItem() { when(baseItemFactory.makeItem(node, ITEM)).thenReturn(item); assertEquals(item, factory.makeItem(node)); }
@Test public void testMakeItemWhenTypeIsDecisionService() { when(baseItemFactory.makeItem(node, DECISION_SERVICE)).thenReturn(item); when(node.getContent()).thenReturn(content); when(content.getDefinition()).thenReturn(new DecisionService()); assertEquals(item, factory.makeItem(node)); }
@Test public void testMakeItemWhenTypeIsNotMapped() { when(baseItemFactory.makeItem(node, ITEM)).thenReturn(item); when(node.getContent()).thenReturn(content); when(content.getDefinition()).thenReturn(new Object()); assertEquals(item, factory.makeItem(node)); }