@Test
@RunAsClient
public void putJsonTranslations() throws Exception {
// Get the original translations
ITranslatedDocResource translationsClient =
super.createProxy(
createClientProxyFactory(TRANSLATOR, TRANSLATOR_KEY),
ITranslatedDocResource.class,
"/projects/p/sample-project/iterations/i/1.0/r/");
ClientResponse<TranslationsResource> response =
translationsClient.getTranslations("my,path,document-2.txt",
LocaleId.EN_US, new StringSet(SimpleComment.ID));
final TranslationsResource transRes = response.getEntity();
assertThat(response.getStatus(), is(Status.OK.getStatusCode())); // 200
assertThat(transRes.getTextFlowTargets().size(),
greaterThanOrEqualTo(3));
// Alter the translations
transRes.getTextFlowTargets().get(0).setContents("Translated 1");
transRes.getTextFlowTargets().get(1).setContents("Translated 2");
transRes.getTextFlowTargets().get(2).setContents("Translated 3");
transRes.getTextFlowTargets().get(0).setState(ContentState.Approved);
transRes.getTextFlowTargets().get(1).setState(ContentState.Approved);
transRes.getTextFlowTargets().get(2).setState(ContentState.Approved);
transRes.getTextFlowTargets().get(0).getExtensions(true)
.add(new SimpleComment("Translated Comment 1"));
transRes.getTextFlowTargets().get(1).getExtensions(true)
.add(new SimpleComment("Translated Comment 2"));
transRes.getTextFlowTargets().get(2).getExtensions(true)
.add(new SimpleComment("Translated Comment 3"));
// Put the translations
new ResourceRequest(
getRestEndpointUrl("/projects/p/sample-project/iterations/i/1.0/r/my,path,document-2.txt/translations/"
+ LocaleId.EN_US), "PUT", getAuthorizedEnvironment()) {
@Override
protected void prepareRequest(ClientRequest request) {
request.queryParameter("ext", SimpleComment.ID);
request.body(MediaType.APPLICATION_JSON, jsonMarshal(transRes));
}
@Override
protected void onResponse(ClientResponse response) {
assertThat(response.getStatus(), is(Status.OK.getStatusCode())); // 200
}
}.run();
// Retrieve the translations once more to make sure they were changed
// accordingly
response =
translationsClient.getTranslations("my,path,document-2.txt",
LocaleId.EN_US, new StringSet(SimpleComment.ID));
TranslationsResource updatedTransRes = response.getEntity();
assertThat(response.getStatus(), is(Status.OK.getStatusCode())); // 200
assertThat(updatedTransRes.getTextFlowTargets().size(),