### Question:
BPMNElementDecorators { public static <T extends FlowElement> MarshallingMessageDecorator<T> flowElementDecorator() { return MarshallingMessageDecorator.of(o -> Optional.ofNullable(o.getName()) .orElseGet(o::getId), g -> g.getClass().getSimpleName()); }  static MarshallingMessageDecorator<T> flowElementDecorator(); static MarshallingMessageDecorator<T> baseElementDecorator(); static MarshallingMessageDecorator<T> bpmnNodeDecorator(); static MarshallingMessageDecorator<Result> resultBpmnDecorator();  }### Answer:
@Test public void flowElementDecorator() { MarshallingMessageDecorator<FlowElement> decorator = BPMNElementDecorators.flowElementDecorator(); FlowElement element = mock(FlowElement.class); when(element.getName()).thenReturn(NAME); assertEquals(NAME, decorator.getName(element)); assertEquals(element.getClass().getSimpleName(), decorator.getType(element)); }