コード例 #1
0
  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);
  }