Package org.zanata.webtrans.server.rpc

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

package org.zanata.webtrans.server.rpc;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;


import lombok.extern.slf4j.Slf4j;
import org.dbunit.operation.DatabaseOperation;

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.ZanataDbunitJpaTest;
import org.zanata.common.LocaleId;
import org.zanata.dao.TextFlowTargetDAO;
import org.zanata.model.HLocale;
import org.zanata.model.HTextFlowTarget;
import org.zanata.model.TestFixture;
import org.zanata.rest.service.ResourceUtils;
import org.zanata.seam.SeamAutowire;
import org.zanata.security.ZanataIdentity;
import org.zanata.webtrans.shared.model.IdForLocale;
import org.zanata.webtrans.shared.model.Locale;
import org.zanata.webtrans.shared.model.TransUnitId;
import org.zanata.webtrans.shared.model.WorkspaceId;
import org.zanata.webtrans.shared.rpc.GetTargetForLocale;
import org.zanata.webtrans.shared.rpc.GetTargetForLocaleResult;

@Test(groups = {"jpa-tests"})
@Slf4j
public class GetTargetForLocaleHandlerTest extends ZanataDbunitJpaTest {
    private GetTargetForLocaleHandler handler;
    @Mock
    private ZanataIdentity identity;
    @Mock
    private TextFlowTargetDAO textFlowTargetDAO;
    private GetTargetForLocale action;
    private final LocaleId localeId = new LocaleId("ja");
    private HLocale jaHLocale;
    private TransUnitId sourceTransUnitId;

    @Override
    protected void prepareDBUnitOperations() {
        beforeTestOperations.add(new ZanataDbunitJpaTest
                .DataSetOperation("performance/GetTransUnitListTest.dbunit.xml",
                DatabaseOperation.CLEAN_INSERT));
    }

    @BeforeMethod
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        // @formatter:off
        ResourceUtils resourceUtils = new ResourceUtils();
        resourceUtils.create(); // postConstruct
        SeamAutowire.instance().reset();
        TransUnitTransformer transUnitTransformer = SeamAutowire.instance()
                .use("resourceUtils", resourceUtils)
                .autowire(TransUnitTransformer.class);

        handler = SeamAutowire.instance()
                .use("identity", identity)
                .use("textFlowTargetDAO", textFlowTargetDAO)
                .use("transUnitTransformer", transUnitTransformer)
                .ignoreNonResolvable()
                .autowire(GetTargetForLocaleHandler.class);
        // @formatter:on

        jaHLocale = getEm().find(HLocale.class, 3L);

        WorkspaceId workspaceId = TestFixture.workspaceId();

        //plural="true" content0="One file removed_" content1="%d more files removed"
        sourceTransUnitId = new TransUnitId(3L);
        action = new GetTargetForLocale(sourceTransUnitId,
                new Locale(new IdForLocale(jaHLocale.getId(), localeId), ""));
        action.setWorkspaceId(workspaceId);
    }

    @Test
    public void testExecute() throws Exception {
        when(textFlowTargetDAO.getTextFlowTarget(sourceTransUnitId.getId(),
                jaHLocale.getLocaleId())).thenReturn(getEm()
                .find(HTextFlowTarget.class, 61L));


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

        verify(identity).checkLoggedIn();

        assertThat(result.getTarget().getContent(), Matchers.equalTo(getEm()
                .find(HTextFlowTarget.class, 61L).getContents().get(0)));
    }

    @Test
    public void testExecuteWhenTargetLangDoesNotExsist() throws Exception {
        when(textFlowTargetDAO.getTextFlowTarget(sourceTransUnitId.getId(),
                jaHLocale.getLocaleId())).thenReturn(null);


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

        verify(identity).checkLoggedIn();

        assertThat(result.getTarget(), Matchers.equalTo(null));
    }

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

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

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.