Package org.zanata.webtrans.client.service

Source Code of org.zanata.webtrans.client.service.TranslatorInteractionServiceTest

package org.zanata.webtrans.client.service;

import org.hamcrest.Matchers;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.zanata.model.TestFixture;
import org.zanata.webtrans.client.rpc.CachingDispatchAsync;
import org.zanata.webtrans.client.rpc.NoOpAsyncCallback;
import org.zanata.webtrans.shared.auth.EditorClientId;
import org.zanata.webtrans.shared.auth.Identity;
import org.zanata.webtrans.shared.model.Person;
import org.zanata.webtrans.shared.model.PersonId;
import org.zanata.webtrans.shared.model.TransUnit;
import org.zanata.webtrans.shared.rpc.TransUnitEditAction;

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

/**
* @author Patrick Huang <a
*         href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
@Test(groups = "unit-tests")
public class TranslatorInteractionServiceTest {
    private TranslatorInteractionService service;
    @Mock
    private CachingDispatchAsync dispatcher;
    private Identity identity;
    @Captor
    private ArgumentCaptor<TransUnitEditAction> actionCaptor;

    @BeforeMethod
    public void beforeMethod() {
        MockitoAnnotations.initMocks(this);
        identity =
                new Identity(new EditorClientId("sessionId", 1), new Person(
                        new PersonId("pid"), "name", "url"));
        service = new TranslatorInteractionService(identity, dispatcher);
    }

    @Test
    public void canGetEditorClientId() {
        EditorClientId currentEditorClientId =
                service.getCurrentEditorClientId();

        assertThat(currentEditorClientId,
                Matchers.equalTo(identity.getEditorClientId()));
    }

    @Test
    public void canCallServerOnSelection() {
        TransUnit selectedTransUnit = TestFixture.makeTransUnit(1);
        service.transUnitSelected(selectedTransUnit);

        verify(dispatcher).execute(actionCaptor.capture(),
                Mockito.isA(NoOpAsyncCallback.class));
        TransUnitEditAction action = actionCaptor.getValue();
        assertThat(action.getPerson(),
                Matchers.sameInstance(identity.getPerson()));
        assertThat(action.getSelectedTransUnitId(),
                Matchers.sameInstance(selectedTransUnit.getId()));
    }

    @Test
    public void onPersonExit() {
        TransUnit selectedTransUnit = TestFixture.makeTransUnit(1);
        Person person = TestFixture.person();

        service.personExit(person, selectedTransUnit.getId());

        verify(dispatcher).execute(actionCaptor.capture(),
                Mockito.isA(NoOpAsyncCallback.class));
        TransUnitEditAction action = actionCaptor.getValue();
        assertThat(action.getPerson(), Matchers.sameInstance(person));
        assertThat(action.getSelectedTransUnitId(),
                Matchers.sameInstance(selectedTransUnit.getId()));
    }
}
TOP

Related Classes of org.zanata.webtrans.client.service.TranslatorInteractionServiceTest

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.