@Test
  public void test_mouse_usage_on_component() {
    Component component = new Component(evaluator, id);

    clickOn(component);
    doubleClickOn(component);
    dragMouseOut(component);
    dragMouseOver(component);

    verify(evaluator, times(1)).click(component, Click.left);
    verify(evaluator, times(1)).doubleClick(component);
    verify(evaluator, times(1)).mouseOut(component);
    verify(evaluator, times(1)).mouseOver(component);
  }
  @Test
  public void textfield_usage_through_language_part1() {
    when(evaluator.componentType(id)).thenReturn(TextField);

    TextField textField = new TextField(evaluator, id);
    when(evaluator.label(textField)).thenReturn("myLabel");
    when(evaluator.value(textField)).thenReturn("myValue");

    assertThat(textField, has(label("myLabel")));
    assertThat(textField, has(value("myValue")));

    clickOn(textField);
    Keyboard.type("SomeData");

    verify(evaluator, times(1)).click(textField, Click.left);
    verify(evaluator, times(1)).type("SomeData");
  }
  @Test
  public void textfield_usage_through_language_part2() {
    when(evaluator.componentType(id)).thenReturn(TextField);

    TextField textField = new TextField(evaluator, id);
    when(evaluator.maxLength(textField)).thenReturn(255);
    when(evaluator.label(textField)).thenReturn("myLabel");
    when(evaluator.value(textField)).thenReturn("myValue");

    assertThat(textField, is(enabled()));
    and(not(disabled()));
    and(it(), visible());

    clickOn(textField);
    Mouse.clickOn(textField);

    type("data_1", into(textField));

    verify(evaluator, times(2)).click(textField, Click.left);
    verify(evaluator, times(2)).focusOn(any(Component.class));
    verify(evaluator, times(1)).type("data_1");
  }