@Test
  public void testOnTransUnitUpdatedNotInCurrentDocument() throws Exception {
    // Given: updated trans unit is from another document
    service.init(initContext);
    HasTransUnitUpdatedData updatedData =
        mock(HasTransUnitUpdatedData.class, withSettings().defaultAnswer(RETURNS_DEEP_STUBS));
    when(updatedData.getUpdateInfo().getDocumentId()).thenReturn(initContext.getDocumentId());

    // When:
    service.onTransUnitUpdated(new TransUnitUpdatedEvent(updatedData));

    // Then:
    verifyZeroInteractions(pageDataChangeListener);
  }
  @Test
  public void testOnTransUnitUpdatedInCurrentPage() throws Exception {
    // Given: updated trans unit is from same document and it's on current page
    service.init(initContext);
    HasTransUnitUpdatedData updatedData =
        mock(HasTransUnitUpdatedData.class, withSettings().defaultAnswer(RETURNS_DEEP_STUBS));
    when(updatedData.getUpdateInfo().getDocumentId()).thenReturn(initContext.getDocumentId());
    TransUnit updatedTU = data.get(0);
    when(updatedData.getUpdateInfo().getTransUnit()).thenReturn(updatedTU);
    EditorClientId editorClientId = new EditorClientId("sessionId", 1);
    when(updatedData.getEditorClientId()).thenReturn(editorClientId);
    when(updatedData.getUpdateType()).thenReturn(TransUnitUpdated.UpdateType.WebEditorSave);

    // When:
    service.onTransUnitUpdated(new TransUnitUpdatedEvent(updatedData));

    // Then:
    verify(pageDataChangeListener)
        .refreshRow(updatedTU, editorClientId, TransUnitUpdated.UpdateType.WebEditorSave);
  }
  @Test
  public void testOnTransUnitUpdatedNotInCurrentPage() throws Exception {
    // Given: updated trans unit is from same document but NOT on current page
    service.init(initContext);
    HasTransUnitUpdatedData updatedData =
        mock(HasTransUnitUpdatedData.class, withSettings().defaultAnswer(RETURNS_DEEP_STUBS));
    when(updatedData.getUpdateInfo().getDocumentId()).thenReturn(initContext.getDocumentId());
    // updated TU has something different so that we can assert it won't update current page data
    // model
    TransUnit updatedTU =
        TransUnit.Builder.from(data.get(data.size() - 1)).setSourceComment("different").build();
    when(updatedData.getUpdateInfo().getTransUnit()).thenReturn(updatedTU);

    // When:
    service.onTransUnitUpdated(new TransUnitUpdatedEvent(updatedData));

    // Then:
    verifyZeroInteractions(pageDataChangeListener);
    assertThat(
        data.get(data.size() - 1).getSourceComment(),
        Matchers.not(Matchers.equalTo(updatedTU.getSourceComment())));
  }