Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Oct 4, 2012
1 parent 5547b1c commit 44f749d
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 39 deletions.

This file was deleted.

Expand Up @@ -4,15 +4,10 @@
import java.util.ArrayList;
import java.util.List;

import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.ActionException;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.log.Log;
import org.zanata.common.LocaleId;
import org.zanata.dao.GlossaryDAO;
import org.zanata.exception.ZanataServiceException;
Expand All @@ -24,17 +19,22 @@
import org.zanata.service.LocaleService;
import org.zanata.webtrans.server.ActionHandlerFor;
import org.zanata.webtrans.shared.model.GlossaryDetails;
import org.zanata.webtrans.shared.model.ProjectIterationId;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsAction;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsResult;

import lombok.extern.slf4j.Slf4j;
import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.ActionException;

@Name("webtrans.gwt.GetGlossaryDetailsHandler")
@Scope(ScopeType.STATELESS)
@ActionHandlerFor(GetGlossaryDetailsAction.class)
@Slf4j
public class GetGlossaryDetailsHandler extends AbstractActionHandler<GetGlossaryDetailsAction, GetGlossaryDetailsResult>
{

@Logger
private Log log;
@In
private ZanataIdentity identity;

@In
private GlossaryDAO glossaryDAO;
Expand All @@ -45,42 +45,45 @@ public class GetGlossaryDetailsHandler extends AbstractActionHandler<GetGlossary
@Override
public GetGlossaryDetailsResult execute(GetGlossaryDetailsAction action, ExecutionContext context) throws ActionException
{
ZanataIdentity.instance().checkLoggedIn();
identity.checkLoggedIn();
LocaleId locale = action.getWorkspaceId().getLocaleId();
HLocale hLocale;
try{
hLocale = localeServiceImpl.validateLocaleByProjectIteration(locale, action.getWorkspaceId().getProjectIterationId().getProjectSlug(), action.getWorkspaceId().getProjectIterationId().getIterationSlug());
try
{
ProjectIterationId projectIterationId = action.getWorkspaceId().getProjectIterationId();
hLocale = localeServiceImpl.validateLocaleByProjectIteration(locale, projectIterationId.getProjectSlug(), projectIterationId.getIterationSlug());
}
catch (ZanataServiceException e)
{
throw new ActionException(e);
}
ArrayList<Long> sourceIds = action.getSourceIdList();
List<Long> sourceIds = action.getSourceIdList();


log.info("Fetching glossary details for entry{0} in locale {1}", sourceIds, hLocale);
log.info("Fetching glossary details for entry{} in locale {}", sourceIds, hLocale);
List<HGlossaryTerm> srcTerms = glossaryDAO.findByIdList(sourceIds);
ArrayList<GlossaryDetails> items = new ArrayList<GlossaryDetails>(srcTerms.size());

for(HGlossaryTerm srcTerm: srcTerms)
{
HGlossaryEntry entry = srcTerm.getGlossaryEntry();
ArrayList<String> srcComments = new ArrayList<String>();
ArrayList<String> targetComments = new ArrayList<String>();
List<String> srcComments = new ArrayList<String>();
List<String> targetComments = new ArrayList<String>();

HGlossaryTerm hGlossaryTerm = entry.getGlossaryTerms().get(hLocale);
for(HTermComment termComment: srcTerm.getComments())
{
srcComments.add(termComment.getComment());
}
for(HTermComment termComment: entry.getGlossaryTerms().get(hLocale).getComments())

for(HTermComment termComment: hGlossaryTerm.getComments())
{
targetComments.add(termComment.getComment());
}

SimpleDateFormat dateFormat = new SimpleDateFormat();

items.add(new GlossaryDetails(srcTerm.getContent(), entry.getGlossaryTerms().get(hLocale).getContent(), srcComments, targetComments, entry.getSourceRef(), entry.getSrcLocale().getLocaleId(), hLocale.getLocaleId(), entry.getGlossaryTerms().get(hLocale).getVersionNum(), dateFormat.format(entry.getGlossaryTerms().get(hLocale).getLastChanged())));
items.add(new GlossaryDetails(srcTerm.getContent(), hGlossaryTerm.getContent(), srcComments, targetComments, entry.getSourceRef(), entry.getSrcLocale().getLocaleId(), hLocale.getLocaleId(), hGlossaryTerm.getVersionNum(), dateFormat.format(hGlossaryTerm.getLastChanged())));
}

return new GetGlossaryDetailsResult(items);
Expand Down
Expand Up @@ -29,6 +29,7 @@
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.zanata.model.HLocale;
import org.zanata.model.HSimpleComment;
import org.zanata.model.HTextFlow;
import org.zanata.model.HTextFlowTarget;
import org.zanata.rest.service.ResourceUtils;
Expand Down Expand Up @@ -63,9 +64,9 @@ public TransUnit transform(HTextFlow hTextFlow, HLocale hLocale)
.setLocaleId(hLocale.getLocaleId())
.setPlural(hTextFlow.isPlural())
.setSources(sourceContents)
.setSourceComment(CommentsUtil.toString(hTextFlow.getComment()))
.setSourceComment(commentToString(hTextFlow.getComment()))
.setTargets(targetContents)
.setTargetContent(target == null ? null : CommentsUtil.toString(target.getComment()))
.setTargetContent(target == null ? null : commentToString(target.getComment()))
.setMsgContext(msgContext)
.setRowIndex(hTextFlow.getPos())
.setVerNum(target == null ? NULL_TARGET_VERSION_NUM : target.getVersionNum());
Expand All @@ -82,4 +83,9 @@ public TransUnit transform(HTextFlow hTextFlow, HLocale hLocale)
return builder.build();
}

private static String commentToString(HSimpleComment comment)
{
return comment == null ? null : comment.getComment();
}

}
7 changes: 6 additions & 1 deletion zanata-war/src/test/java/org/zanata/model/TestFixture.java
Expand Up @@ -105,9 +105,14 @@ public static UserWorkspaceContext userWorkspaceContext(boolean projectActive, b
}

public static WorkspaceId workspaceId()
{
return workspaceId(LocaleId.EN_US);
}

public static WorkspaceId workspaceId(LocaleId localeId)
{
ProjectIterationId projectIterationId = new ProjectIterationId("project", "master");
return new WorkspaceId(projectIterationId, LocaleId.EN_US);
return new WorkspaceId(projectIterationId, localeId);
}

public static Person person()
Expand Down
@@ -0,0 +1,95 @@
package org.zanata.webtrans.server.rpc;

import java.util.ArrayList;
import java.util.Date;

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.LocaleId;
import org.zanata.dao.GlossaryDAO;
import org.zanata.model.HGlossaryEntry;
import org.zanata.model.HGlossaryTerm;
import org.zanata.model.HLocale;
import org.zanata.model.TestFixture;
import org.zanata.seam.SeamAutowire;
import org.zanata.security.ZanataIdentity;
import org.zanata.service.LocaleService;
import org.zanata.webtrans.shared.model.WorkspaceId;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsAction;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsResult;
import com.google.common.collect.Lists;

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

/**
* @author Patrick Huang <a href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
@Test(groups = "unit-tests")
public class GetGlossaryDetailsHandlerTest
{
private GetGlossaryDetailsHandler handler;
@Mock
private ZanataIdentity identity;
@Mock
private GlossaryDAO glossaryDAO;
@Mock
private LocaleService localeServiceImpl;
private HLocale targetHLocale = new HLocale(LocaleId.DE);
private final HLocale srcLocale = new HLocale(LocaleId.EN);

@BeforeMethod
public void setUp() throws Exception
{
MockitoAnnotations.initMocks(this);
// @formatter:off
handler = SeamAutowire.instance()
.use("identity", identity)
.use("glossaryDAO", glossaryDAO)
.use("localeServiceImpl", localeServiceImpl)
.ignoreNonResolvable()
.autowire(GetGlossaryDetailsHandler.class);
// @formatter:on
}

private HGlossaryTerm glossaryTerm(String content, HLocale srcLocale)
{
HGlossaryTerm glossaryTerm = new HGlossaryTerm(content);
glossaryTerm.setVersionNum(0);
glossaryTerm.setLastChanged(new Date());
HGlossaryEntry glossaryEntry = new HGlossaryEntry();
glossaryTerm.setGlossaryEntry(glossaryEntry);
glossaryEntry.setSrcLocale(srcLocale);
return glossaryTerm;
}

@Test
public void testExecute() throws Exception
{
WorkspaceId workspaceId = TestFixture.workspaceId(targetHLocale.getLocaleId());
ArrayList<Long> sourceIdList = Lists.newArrayList(1L);
GetGlossaryDetailsAction action = new GetGlossaryDetailsAction(sourceIdList);
action.setWorkspaceId(workspaceId);
when(localeServiceImpl.validateLocaleByProjectIteration(workspaceId.getLocaleId(), workspaceId.getProjectIterationId().getProjectSlug(), workspaceId.getProjectIterationId().getIterationSlug())).thenReturn(targetHLocale);
HGlossaryTerm sourceTerm = glossaryTerm("src term", srcLocale);
HGlossaryTerm targetTerm = glossaryTerm("target term", srcLocale);
sourceTerm.getGlossaryEntry().getGlossaryTerms().put(targetHLocale, targetTerm);
when(glossaryDAO.findByIdList(sourceIdList)).thenReturn(Lists.newArrayList(sourceTerm));

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

verify(identity).checkLoggedIn();
assertThat(result.getGlossaryDetails(), Matchers.hasSize(1));
assertThat(result.getGlossaryDetails().get(0).getTarget(), Matchers.equalTo("target term"));
}

@Test
public void testRollback() throws Exception
{
handler.rollback(null, null, null);
}
}
Expand Up @@ -4,7 +4,6 @@
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;
Expand All @@ -18,7 +17,7 @@
import org.zanata.webtrans.shared.rpc.PublishWorkspaceChat;
import org.zanata.webtrans.shared.rpc.PublishWorkspaceChatAction;

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

Expand Down Expand Up @@ -68,4 +67,10 @@ public void testExecute() throws Exception
assertThat(chat.getMsg(), Matchers.equalTo("hi"));
assertThat(chat.getMessageType(), Matchers.equalTo(HasWorkspaceChatData.MESSAGE_TYPE.USER_MSG));
}

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

0 comments on commit 44f749d

Please sign in to comment.