Bug 299529 UI scheduling strategy causes injections to be delayed
tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/application/ESelectionServiceTest.java
MPart partB = MApplicationFactory.eINSTANCE.createPart();
		partB.setId("partB"); 
		partStack.getChildren().add(partB);
		MPart partC = MApplicationFactory.eINSTANCE.createPart();
		partC.setId("partC"); 
		partStack.getChildren().add(partC);
		partStack.setSelectedElement(partB);
		window.getChildren().add(partStack);
		initialize(applicationContext, application);
		getEngine().createGui(window);
		IEclipseContext windowContext = window.getContext();
		ESelectionService windowService = (ESelectionService) windowContext
				.get(ESelectionService.class.getName());
		EPartService partService = (EPartService) windowContext
				.get(EPartService.class.getName());
		Object selection = new Object();
		SelectionListener listener = new SelectionListener();
		windowService.addSelectionListener("partC", listener); 
		partService.showPart("partC", PartState.CREATE); 
		assertNull(listener.getPart());
		assertNull(listener.getSelection());
		IEclipseContext contextC = partC.getContext();
		ESelectionService serviceC = (ESelectionService) contextC
				.get(ESelectionService.class.getName());
		listener.reset();
		serviceC.setSelection(selection);
		assertEquals(partC, listener.getPart());
		assertEquals(selection, listener.getSelection());
	}
	static class ConsumerPart {