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

Commit

Permalink
rhbz1139950 - apply file mapping rule to xliff pull strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
Patrick Huang committed Sep 25, 2014
1 parent b119d69 commit 8c7ba2e
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 4 deletions.
Expand Up @@ -25,12 +25,15 @@
import java.io.IOException;

import org.zanata.adapter.xliff.XliffWriter;
import org.zanata.client.commands.TransFileResolver;
import org.zanata.client.config.LocaleMapping;
import org.zanata.common.io.FileDetails;
import org.zanata.rest.StringSet;
import org.zanata.rest.dto.resource.Resource;
import org.zanata.rest.dto.resource.TranslationsResource;

import static org.zanata.client.commands.TransFileResolver.UnqualifiedSrcDocName;

/**
* @author Sean Flanigan <a
* href="mailto:sflaniga@redhat.com">sflaniga@redhat.com</a>
Expand Down Expand Up @@ -61,10 +64,8 @@ public void writeSrcFile(Resource doc) throws IOException {
@Override
public File
getTransFileToWrite(String docName, LocaleMapping localeMapping) {
// TODO This is the same as XliffWriter's used file, but code is
// duplicated
return new File(getOpts().getTransDir(), docName + "_"
+ localeMapping.getLocalLocale().replace('-', '_') + ".xml");
return new TransFileResolver(getOpts()).getTransFile(
UnqualifiedSrcDocName.from(docName), localeMapping);
}

@Override
Expand Down
@@ -0,0 +1,75 @@
package org.zanata.client.commands.pull;

import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.Test;
import org.zanata.client.config.FileMappingRule;
import org.zanata.client.config.LocaleList;
import org.zanata.client.config.LocaleMapping;

import java.io.File;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.zanata.client.TestUtils.createAndAddLocaleMapping;

public class XliffStrategyPullTest {
private XliffStrategy strategy;
private PullOptionsImpl opts;

@Before
public void setUp() {
opts = new PullOptionsImpl();
opts.setLocaleMapList(new LocaleList());
opts.setProjectType("xliff");
strategy = new XliffStrategy(opts);
}

@Test
public void canGetTransFileWithoutMappingRule() {
LocaleMapping deMapping = createAndAddLocaleMapping("de",
Optional.<String>absent(), opts);
LocaleMapping zhMapping =
createAndAddLocaleMapping("zh-CN",
Optional.of("zh-Hans"),
opts);

File deTransFile =
strategy.getTransFileToWrite("foo/message", deMapping);

assertThat(deTransFile,
equalTo(new File(opts.getTransDir(), "foo/message_de.xml")));

File zhTransFile =
strategy.getTransFileToWrite("foo/message", zhMapping);
assertThat(zhTransFile, equalTo(
new File(opts.getTransDir(), "foo/message_zh_Hans.xml")));

}

@Test
public void canGetTransFileWithMappingRule() {
LocaleMapping deMapping = createAndAddLocaleMapping("de",
Optional.<String>absent(), opts);
LocaleMapping zhMapping =
createAndAddLocaleMapping("zh-CN",
Optional.of("zh-Hans"),
opts);
opts.setFileMappingRules(Lists.newArrayList(
new FileMappingRule("{path}/{filename}_{locale_with_underscore}.{extension}")));

File deTransFile =
strategy.getTransFileToWrite("foo/message", deMapping);

assertThat(deTransFile,
equalTo(new File(opts.getTransDir(), "foo/message_de.xml")));

File zhTransFile =
strategy.getTransFileToWrite("foo/message", zhMapping);
assertThat(zhTransFile, equalTo(
new File(opts.getTransDir(), "foo/message_zh_Hans.xml")));

}

}

0 comments on commit 8c7ba2e

Please sign in to comment.