public void testSourceProvider() throws Exception { IWorkbenchWindow window = openTestWindow(); IEvaluationService service = (IEvaluationService) window.getService(IEvaluationService.class); assertNotNull(service); MyEval listener = new MyEval(); UserExpression expression = new UserExpression("Paul"); IEvaluationReference ref = service.addEvaluationListener(expression, listener, IEvaluationService.RESULT); assertEquals(ISources.ACTIVE_CONTEXT << 1, ref.getSourcePriority()); assertFalse(listener.currentValue); assertEquals(1, listener.count); ISourceProviderService sps = (ISourceProviderService) window.getService(ISourceProviderService.class); ActiveUserSourceProvider userProvider = (ActiveUserSourceProvider) sps.getSourceProvider("username"); userProvider.setUsername("John"); assertFalse(listener.currentValue); assertEquals(1, listener.count); userProvider.setUsername("Paul"); assertTrue(listener.currentValue); assertEquals(2, listener.count); userProvider.setUsername("guest"); assertFalse(listener.currentValue); assertEquals(3, listener.count); }