@Test public void willSaveAndMoveToNextRow() { // Given: selected display and there is only one entry(no plural or last entry of plural) selectedTU = currentPageRows.get(0); when(display.getNewTargets()).thenReturn(NEW_TARGETS); when(display.getCachedTargets()).thenReturn(CACHED_TARGETS); when(display.getId()).thenReturn(selectedTU.getId()); when(display.getEditors()).thenReturn(Lists.newArrayList(editor)); presenter.setStatesForTesting(selectedTU.getId(), 0, display); // When: presenter.saveAsApprovedAndMoveNext(selectedTU.getId()); // Then: verify(eventBus, atLeastOnce()).fireEvent(eventCaptor.capture()); TransUnitSaveEvent saveEvent = TestFixture.extractFromEvents(eventCaptor.getAllValues(), TransUnitSaveEvent.class); assertThat(saveEvent.getTransUnitId(), equalTo(selectedTU.getId())); assertThat(saveEvent.getTargets(), Matchers.equalTo(NEW_TARGETS)); assertThat(saveEvent.getStatus(), equalTo(ContentState.Translated)); NavTransUnitEvent navEvent = TestFixture.extractFromEvents(eventCaptor.getAllValues(), NavTransUnitEvent.class); assertThat(navEvent.getRowType(), equalTo(NavTransUnitEvent.NavigationType.NextEntry)); }
@Test public void willNotMoveToNextEntryIfTranslationHasError() { // Given: selected display and focus on first entry ValidationMessages messages = mock(ValidationMessages.class); Map<ValidationAction, List<String>> errorMessage = Maps.newHashMap(); errorMessage.put( new HtmlXmlTagValidation(ValidationId.HTML_XML, messages), new ArrayList<String>()); selectedTU = currentPageRows.get(0); when(display.getNewTargets()).thenReturn(NEW_TARGETS); when(display.getCachedTargets()).thenReturn(CACHED_TARGETS); when(display.getId()).thenReturn(selectedTU.getId()); when(display.getEditors()).thenReturn(Lists.newArrayList(editor)); when(display.getErrorMessages()).thenReturn(errorMessage); presenter.setStatesForTesting(selectedTU.getId(), 0, display); // When: presenter.saveAsApprovedAndMoveNext(selectedTU.getId()); // Then: verify(validationWarning) .center( selectedTU.getId(), userWorkspaceContext.getSelectedDoc(), NEW_TARGETS, errorMessage); }
@Test public void willMoveToNextEntryIfItIsPluralAndNotAtLastEntry() { // Given: selected display and focus on first entry selectedTU = currentPageRows.get(0); when(display.getId()).thenReturn(selectedTU.getId()); when(display.getEditors()).thenReturn(Lists.newArrayList(editor, editor2)); presenter.setStatesForTesting(selectedTU.getId(), 0, display); // When: presenter.saveAsApprovedAndMoveNext(selectedTU.getId()); // Then: verify(display).focusEditor(1); }