Package org.zanata.webtrans.server.rpc

Source Code of org.zanata.webtrans.server.rpc.RevertTransUnitUpdatesHandlerTest

package org.zanata.webtrans.server.rpc;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import java.util.List;

import org.hamcrest.Matchers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.zanata.common.ContentState;
import org.zanata.common.LocaleId;
import org.zanata.common.ProjectType;
import org.zanata.model.HDocument;
import org.zanata.model.HLocale;
import org.zanata.model.HTextFlow;
import org.zanata.model.HTextFlowTarget;
import org.zanata.model.TestFixture;
import org.zanata.rest.service.ResourceUtils;
import org.zanata.seam.SeamAutowire;
import org.zanata.service.SecurityService;
import org.zanata.service.TranslationService;
import org.zanata.webtrans.server.TranslationWorkspace;
import org.zanata.webtrans.shared.model.DocumentId;
import org.zanata.webtrans.shared.model.ProjectIterationId;
import org.zanata.webtrans.shared.model.TransUnitUpdateInfo;
import org.zanata.webtrans.shared.model.WorkspaceId;
import org.zanata.webtrans.shared.rpc.RevertTransUnitUpdates;
import org.zanata.webtrans.shared.rpc.UpdateTransUnitResult;

import com.google.common.collect.Lists;

/**
* @author Patrick Huang <a
*         href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
@Test(groups = "unit-tests")
public class RevertTransUnitUpdatesHandlerTest {
    private RevertTransUnitUpdatesHandler handler;
    @Mock
    private TranslationService translationServiceImpl;
    @Mock
    private SecurityService securityServiceImpl;
    @Mock
    private TranslationWorkspace translationWorkspace;

    @BeforeMethod
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        TransUnitTransformer transUnitTransformer =
                SeamAutowire.instance().reset()
                        .use("resourceUtils", new ResourceUtils())
                        .autowire(TransUnitTransformer.class);
        // @formatter:off
      handler = SeamAutowire.instance()
            .use("translationServiceImpl", translationServiceImpl)
            .use("transUnitTransformer", transUnitTransformer)
            .use("securityServiceImpl", securityServiceImpl)
            .ignoreNonResolvable()
            .autowire(RevertTransUnitUpdatesHandler.class);
      // @formatter:on
    }

    @Test
    public void testExecute() throws Exception {
        List<TransUnitUpdateInfo> updatesToRevert =
                Lists.newArrayList(new TransUnitUpdateInfo(true, true,
                        new DocumentId(new Long(1), ""), TestFixture
                                .makeTransUnit(1), 0, 0, ContentState.Approved));
        RevertTransUnitUpdates action =
                new RevertTransUnitUpdates(updatesToRevert);
        action.setWorkspaceId(new WorkspaceId(new ProjectIterationId("", "",
                ProjectType.File), LocaleId.EN_US));

        TranslationService.TranslationResult translationResult =
                mockTranslationResult(ContentState.NeedReview, 0);
        when(
                translationServiceImpl.revertTranslations(LocaleId.EN_US,
                        action.getUpdatesToRevert())).thenReturn(
                Lists.newArrayList(translationResult));

        UpdateTransUnitResult result = handler.execute(action, null);

        assertThat(result.getUpdateInfoList(), Matchers.hasSize(1));
        assertThat(result.getUpdateInfoList().get(0).getPreviousState(),
                Matchers.equalTo(ContentState.NeedReview));
    }

    private static TranslationService.TranslationResult mockTranslationResult(
            ContentState baseContentState, int baseVersionNum) {
        TranslationService.TranslationResult translationResult =
                mock(TranslationService.TranslationResult.class);
        when(translationResult.isTargetChanged()).thenReturn(true);
        when(translationResult.isTranslationSuccessful()).thenReturn(true);
        when(translationResult.getBaseContentState()).thenReturn(
                baseContentState);
        when(translationResult.getBaseVersionNum()).thenReturn(baseVersionNum);
        HTextFlow hTextFlow =
                TestFixture.makeHTextFlow(1, new HLocale(LocaleId.EN_US),
                        ContentState.Approved);
        HDocument spy = spy(new HDocument());
        when(spy.getId()).thenReturn(1L);
        hTextFlow.setDocument(spy);
        when(translationResult.getTranslatedTextFlowTarget()).thenReturn(
                new HTextFlowTarget(hTextFlow, new HLocale(LocaleId.DE)));

        return translationResult;
    }

    @Test
    public void testRollback() throws Exception {
        handler.rollback(null, null, null);
    }
}
TOP

Related Classes of org.zanata.webtrans.server.rpc.RevertTransUnitUpdatesHandlerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.