### Question:
BPMNSessionInitializer implements SessionInitializer { @Override public void init(final Metadata metadata, final Command completeCallback) { diagramTypeService.loadDiagramType(metadata); CalledElementFormProvider.initServerData(); RuleFlowGroupFormProvider.initServerData(); workItemDefinitionService .call(metadata) .then(workItemDefinitions -> { completeCallback.execute(); return null; }) .catch_((Promise.CatchOnRejectedCallbackFn<Collection<WorkItemDefinition>>) error -> { LOGGER.severe("Error obtaining the work item definitions [error=" + error + "]"); completeCallback.execute(); return null; }); } protected  BPMNSessionInitializer(); @Inject  BPMNSessionInitializer(final WorkItemDefinitionClientService workItemDefinitionService,
                                  final DiagramTypeClientService diagramTypeService); @Override void init(final Metadata metadata,
                     final Command completeCallback);  }### Answer:
@Test public void testInit() { Metadata metadata = mock(Metadata.class); Command callback = mock(Command.class); tested.init(metadata, callback); verify(diagramTypeService).loadDiagramType(metadata); verify(workItemDefinitionService, times(1)).call(eq(metadata)); }