From cdade2b27f87896703efeaa53267cf603a3e8f1e Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Sat, 26 May 2018 15:40:17 +1000 Subject: [PATCH] fix(ZNTA-1083): test po in file project --- .../impl/TranslationFileServiceImplTest.java | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/server/services/src/test/java/org/zanata/service/impl/TranslationFileServiceImplTest.java b/server/services/src/test/java/org/zanata/service/impl/TranslationFileServiceImplTest.java index 7692d1f855..61345e0477 100644 --- a/server/services/src/test/java/org/zanata/service/impl/TranslationFileServiceImplTest.java +++ b/server/services/src/test/java/org/zanata/service/impl/TranslationFileServiceImplTest.java @@ -20,6 +20,7 @@ */ package org.zanata.service.impl; +import com.google.common.base.Optional; import org.hibernate.Session; import org.jglue.cdiunit.InRequestScope; import org.junit.Test; @@ -27,12 +28,25 @@ import org.mockito.Mock; import org.zanata.ZanataTest; import org.zanata.common.DocumentType; +import org.zanata.common.ProjectType; +import org.zanata.dao.DocumentDAO; +import org.zanata.dao.ProjectIterationDAO; +import org.zanata.model.HDocument; +import org.zanata.model.HProject; +import org.zanata.model.HProjectIteration; +import org.zanata.rest.dto.resource.TranslationsResource; import org.zanata.test.CdiUnitRunner; import javax.enterprise.inject.Produces; import javax.inject.Inject; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.nio.file.Files; + import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; @RunWith(CdiUnitRunner.class) public class TranslationFileServiceImplTest extends ZanataTest { @@ -40,6 +54,14 @@ public class TranslationFileServiceImplTest extends ZanataTest { @Inject TranslationFileServiceImpl transFileService; + @Mock + @Produces + private ProjectIterationDAO projectIterationDAO; + + @Mock + @Produces + private DocumentDAO documentDAO; + @Produces @Mock Session session; @Test @@ -47,4 +69,43 @@ public class TranslationFileServiceImplTest extends ZanataTest { public void hasPlainTextAdapter() { assertThat(transFileService.hasAdapterFor(DocumentType.PLAIN_TEXT)).isTrue(); } + + @Test + @InRequestScope + public void parsePoInFileProject() throws Exception { + String project = "test"; + String version = "master"; + String docId = "test.pot"; + String poContent = "msgid \"\"\n" + + "msgstr \"\"\n" + + "\"Project-Id-Version: test-master\\n\"\n" + + "\n" + + "#, c-format\n" + + "msgid \"Thing 1\"\n" + + "msgid_plural \"%d files removed\"\n" + + "msgstr[0] \"1 aoeuaouaou\"\n" + + "msgstr[1] \"%d aoeuaouao\"\n" + + "msgstr[2] \"\""; + File tempFile = File.createTempFile("test", ".po"); + Files.write(tempFile.toPath(), poContent.getBytes()); + InputStream stream = new FileInputStream(tempFile); + + HProject hProject = new HProject(); + hProject.setDefaultProjectType(ProjectType.File); + HProjectIteration hProjectIteration = new HProjectIteration(); + hProjectIteration.setProject(hProject); + HDocument hDocument = new HDocument(); + + when(projectIterationDAO.getBySlug(project, version)) + .thenReturn(hProjectIteration); + when(documentDAO.getByDocIdAndIteration(hProjectIteration, docId)) + .thenReturn(hDocument); + + TranslationsResource translationsResource = transFileService + .parseTranslationFile(stream, tempFile.getName(), + "ru", project, version, docId, Optional.absent()); + assertThat(translationsResource.getTextFlowTargets().get(0) + .getContents().get(0)).isEqualTo("1 aoeuaouaou"); + } + }