Skip to content

Commit

Permalink
feat: plural strings
Browse files Browse the repository at this point in the history
  • Loading branch information
katerina20 committed Feb 29, 2024
1 parent 6539460 commit b8f6b7e
Show file tree
Hide file tree
Showing 8 changed files with 160 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,7 @@
import com.crowdin.client.core.model.PatchRequest;
import com.crowdin.client.core.model.ResponseList;
import com.crowdin.client.core.model.ResponseObject;
import com.crowdin.client.sourcestrings.model.AddSourceStringRequest;
import com.crowdin.client.sourcestrings.model.AddSourceStringStringsBasedRequest;
import com.crowdin.client.sourcestrings.model.SourceString;
import com.crowdin.client.sourcestrings.model.SourceStringResponseList;
import com.crowdin.client.sourcestrings.model.SourceStringResponseObject;
import com.crowdin.client.sourcestrings.model.UploadStringsProgress;
import com.crowdin.client.sourcestrings.model.UploadStringsProgressResponseObject;
import com.crowdin.client.sourcestrings.model.UploadStringsRequest;
import com.crowdin.client.sourcestrings.model.*;

import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -92,11 +85,21 @@ public ResponseObject<SourceString> addSourceString(Long projectId, AddSourceStr
return ResponseObject.of(sourceStringResponseObject.getData());
}

public ResponseObject<SourceString> addSourcePluralString(Long projectId, AddSourcePluralStringRequest request) throws HttpException, HttpBadRequestException {
SourceStringResponseObject sourceStringResponseObject = this.httpClient.post(this.url + "/projects/" + projectId + "/strings", request, new HttpRequestConfig(), SourceStringResponseObject.class);
return ResponseObject.of(sourceStringResponseObject.getData());
}

public ResponseObject<SourceString> addSourceStringStringsBased(Long projectId, AddSourceStringStringsBasedRequest request) throws HttpException, HttpBadRequestException {
SourceStringResponseObject sourceStringResponseObject = this.httpClient.post(this.url + "/projects/" + projectId + "/strings", request, new HttpRequestConfig(), SourceStringResponseObject.class);
return ResponseObject.of(sourceStringResponseObject.getData());
}

public ResponseObject<SourceString> addSourcePluralStringStringsBased(Long projectId, AddSourcePluralStringStringsBasedRequest request) throws HttpException, HttpBadRequestException {
SourceStringResponseObject sourceStringResponseObject = this.httpClient.post(this.url + "/projects/" + projectId + "/strings", request, new HttpRequestConfig(), SourceStringResponseObject.class);
return ResponseObject.of(sourceStringResponseObject.getData());
}

/**
* @param projectId project identifier
* @param stringId string identifier
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.crowdin.client.sourcestrings.model;

import lombok.Data;

import java.util.List;

@Data
public class AddSourcePluralStringRequest {

private PluralText text;
private String identifier;
private Long fileId;
private String context;
private Boolean isHidden;
private Integer maxLength;
private List<Long> labelIds;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.crowdin.client.sourcestrings.model;

import lombok.Data;

import java.util.List;

@Data
public class AddSourcePluralStringStringsBasedRequest {

private PluralText text;
private String identifier;
private Long branchId;
private String context;
private Boolean isHidden;
private Integer maxLength;
private List<Long> labelIds;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.crowdin.client.sourcestrings.model;

import lombok.Data;

@Data
public class PluralText {

private String zero;
private String one;
private String two;
private String few;
private String many;
private String other;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,14 @@
import com.crowdin.client.core.model.ResponseObject;
import com.crowdin.client.framework.RequestMock;
import com.crowdin.client.framework.TestClient;
import com.crowdin.client.sourcestrings.model.AddSourceStringRequest;
import com.crowdin.client.sourcestrings.model.AddSourceStringStringsBasedRequest;
import com.crowdin.client.sourcestrings.model.SourceString;
import com.crowdin.client.sourcestrings.model.SourceStringForm;
import com.crowdin.client.sourcestrings.model.UploadStringsProgress;
import com.crowdin.client.sourcestrings.model.UploadStringsRequest;
import com.crowdin.client.sourcestrings.model.*;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;

import static java.util.Collections.singletonList;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand All @@ -46,7 +39,9 @@ public List<RequestMock> getMocks() {
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpGet.METHOD_NAME, "api/strings/listStrings.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpGet.METHOD_NAME, "api/strings/listStrings.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpPost.METHOD_NAME, "api/strings/addStringRequest.json", "api/strings/string.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpPost.METHOD_NAME, "api/strings/addPluralStringRequest.json", "api/strings/pluralString.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpPost.METHOD_NAME, "api/strings/addStringStringsBasedRequest.json", "api/strings/string.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings", HttpPost.METHOD_NAME, "api/strings/addStringPluralStringsBasedRequest.json", "api/strings/pluralString.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings/" + id, HttpGet.METHOD_NAME, "api/strings/string.json"),
RequestMock.build(this.url + "/projects/" + projectId + "/strings/" + id, HttpDelete.METHOD_NAME),
RequestMock.build(this.url + "/projects/" + projectId + "/strings/" + id, HttpPatch.METHOD_NAME, "api/strings/editString.json", "api/strings/string.json"),
Expand Down Expand Up @@ -101,6 +96,28 @@ public void addStringTest() {
assertEquals(sourceStringResponseObject.getData().getText(), text);
}

@Test
public void addPluralStringTest() {
AddSourcePluralStringRequest request = new AddSourcePluralStringRequest();
PluralText text = new PluralText();
text.setOne("string");
text.setOther("strings");
request.setText(text);
request.setIdentifier("6a1821e6499ebae94de4b880fd93b985");
request.setFileId(id);
request.setContext("shown on main page");
request.setIsHidden(false);
request.setMaxLength(35);
request.setLabelIds(Arrays.asList(1L));
ResponseObject<SourceString> sourceStringResponseObject = this.getSourceStringsApi().addSourcePluralString(projectId, request);
Map<String, String> expected = new HashMap<String, String>() {{
put("one", "string");
put("other", "strings");
}};
assertEquals(sourceStringResponseObject.getData().getId(), id);
assertEquals(sourceStringResponseObject.getData().getText(), expected);
}

@Test
public void addStringStringsBasedTest() {
AddSourceStringStringsBasedRequest request = new AddSourceStringStringsBasedRequest();
Expand All @@ -116,6 +133,28 @@ public void addStringStringsBasedTest() {
assertEquals(sourceStringResponseObject.getData().getText(), text);
}

@Test
public void addPluralStringStringsBasedTest() {
AddSourcePluralStringStringsBasedRequest request = new AddSourcePluralStringStringsBasedRequest();
PluralText text = new PluralText();
text.setOne("string");
text.setOther("strings");
request.setText(text);
request.setIdentifier("6a1821e6499ebae94de4b880fd93b985");
request.setBranchId(branchId);
request.setContext("shown on main page");
request.setIsHidden(false);
request.setMaxLength(35);
request.setLabelIds(Arrays.asList(1L));
ResponseObject<SourceString> sourceStringResponseObject = this.getSourceStringsApi().addSourcePluralStringStringsBased(projectId, request);
Map<String, String> expected = new HashMap<String, String>() {{
put("one", "string");
put("other", "strings");
}};
assertEquals(sourceStringResponseObject.getData().getId(), id);
assertEquals(sourceStringResponseObject.getData().getText(), expected);
}

@Test
public void getStringTest() {
ResponseObject<SourceString> sourceStringResponseObject = this.getSourceStringsApi().getSourceString(projectId, id);
Expand Down
14 changes: 14 additions & 0 deletions src/test/resources/api/strings/addPluralStringRequest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"text": {
"one": "string",
"other": "strings"
},
"identifier": "6a1821e6499ebae94de4b880fd93b985",
"fileId": 2814,
"context": "shown on main page",
"isHidden": false,
"maxLength": 35,
"labelIds": [
1
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"text": {
"one": "string",
"other": "strings"
},
"identifier": "6a1821e6499ebae94de4b880fd93b985",
"branchId": 667,
"context": "shown on main page",
"isHidden": false,
"maxLength": 35,
"labelIds": [
1
]
}
25 changes: 25 additions & 0 deletions src/test/resources/api/strings/pluralString.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"data": {
"id": 2814,
"projectId": 2,
"fileId": 48,
"branchId": 667,
"identifier": "6a1821e6499ebae94de4b880fd93b985",
"text": {
"one": "string",
"other": "strings"
},
"type": "text",
"context": "shown on main page",
"maxLength": 35,
"isHidden": false,
"revision": 1,
"hasPlurals": false,
"isIcu": false,
"labelIds": [
3
],
"createdAt": "2019-09-20T12:43:57+00:00",
"updatedAt": "2019-09-20T13:24:01+00:00"
}
}

0 comments on commit b8f6b7e

Please sign in to comment.