Skip to content

Commit 8103f00

Browse files
authored
Merge pull request #24 from thc202/file-export-options
Check for escapeQuotes when deserialising files
2 parents a9241f3 + 9050508 commit 8103f00

3 files changed

Lines changed: 66 additions & 2 deletions

File tree

src/main/java/com/crowdin/client/core/http/impl/json/FileExportOptionsDeserializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ExportOptions deserialize(JsonParser p, DeserializationContext ctxt) thro
3030
List<String> fields = StreamSupport
3131
.stream(iterable.spliterator(), false)
3232
.collect(Collectors.toList());
33-
if (fields.contains("escapeSpecialCharacters")) {
33+
if (fields.contains("escapeSpecialCharacters") || fields.contains("escapeQuotes")) {
3434
return this.objectMapper.readValue(treeNode.toString(), PropertyFileExportOptions.class);
3535
} else {
3636
return this.objectMapper.readValue(treeNode.toString(), GeneralFileExportOptions.class);

src/test/java/com/crowdin/client/sourcefiles/SourceFilesApiTest.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import com.crowdin.client.sourcefiles.model.AddFileRequest;
1313
import com.crowdin.client.sourcefiles.model.Branch;
1414
import com.crowdin.client.sourcefiles.model.Directory;
15+
import com.crowdin.client.sourcefiles.model.ExportOptions;
1516
import com.crowdin.client.sourcefiles.model.File;
1617
import com.crowdin.client.sourcefiles.model.FileRevision;
18+
import com.crowdin.client.sourcefiles.model.GeneralFileExportOptions;
1719
import com.crowdin.client.sourcefiles.model.PropertyFileExportOptions;
1820
import com.crowdin.client.sourcefiles.model.SpreadsheetFileImportOptions;
1921
import com.crowdin.client.sourcefiles.model.UpdateFileRequest;
@@ -31,6 +33,7 @@
3133
import java.util.Map;
3234

3335
import static org.junit.jupiter.api.Assertions.assertEquals;
36+
import static org.junit.jupiter.api.Assertions.assertTrue;
3437

3538
public class SourceFilesApiTest extends TestClient {
3639

@@ -153,9 +156,28 @@ public void editDirectoryTest() {
153156
@Test
154157
public void listFilesTest() {
155158
ResponseList<File> fileResponseList = this.getSourceFilesApi().listFiles(projectId, null, null, null, null, null);
156-
assertEquals(fileResponseList.getData().size(), 1);
159+
assertEquals(fileResponseList.getData().size(), 3);
157160
assertEquals(fileResponseList.getData().get(0).getData().getId(), fileId);
158161
assertEquals(fileResponseList.getData().get(0).getData().getName(), fileName);
162+
ExportOptions exportOptions = fileResponseList.getData().get(0).getData().getExportOptions();
163+
assertTrue(exportOptions instanceof GeneralFileExportOptions);
164+
assertEquals(((GeneralFileExportOptions) exportOptions).getExportPattern(), "/localization/%locale%/%file_name%.%file_extension%");
165+
166+
assertEquals(fileResponseList.getData().get(1).getData().getId(), Long.valueOf(45L));
167+
assertEquals(fileResponseList.getData().get(1).getData().getName(), "fileA.properties");
168+
exportOptions = fileResponseList.getData().get(1).getData().getExportOptions();
169+
assertTrue(exportOptions instanceof PropertyFileExportOptions);
170+
assertEquals(((PropertyFileExportOptions) exportOptions).getExportPattern(), "/files/fileA.properties");
171+
assertEquals(((PropertyFileExportOptions) exportOptions).getEscapeQuotes(), Integer.valueOf(3));
172+
assertEquals(((PropertyFileExportOptions) exportOptions).getEscapeSpecialCharacters(), null);
173+
174+
assertEquals(fileResponseList.getData().get(2).getData().getId(), Long.valueOf(46L));
175+
assertEquals(fileResponseList.getData().get(2).getData().getName(), "fileB.properties");
176+
exportOptions = fileResponseList.getData().get(2).getData().getExportOptions();
177+
assertTrue(exportOptions instanceof PropertyFileExportOptions);
178+
assertEquals(((PropertyFileExportOptions) exportOptions).getExportPattern(), "/files/fileB.properties");
179+
assertEquals(((PropertyFileExportOptions) exportOptions).getEscapeQuotes(), null);
180+
assertEquals(((PropertyFileExportOptions) exportOptions).getEscapeSpecialCharacters(), Integer.valueOf(1));
159181
}
160182

161183
@Test

src/test/resources/api/sourcefiles/listFiles.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,48 @@
2828
"createdAt": "2019-09-19T15:10:43+00:00",
2929
"updatedAt": "2019-09-19T15:10:46+00:00"
3030
}
31+
},
32+
{
33+
"data": {
34+
"id": 45,
35+
"projectId": 2,
36+
"branchId": 34,
37+
"directoryId": 4,
38+
"name": "fileA.properties",
39+
"title": "File A",
40+
"type": "properties",
41+
"revisionId": 1,
42+
"status": "active",
43+
"priority": "normal",
44+
"importOptions": {},
45+
"exportOptions": {
46+
"escapeQuotes": 3,
47+
"exportPattern": "/files/fileA.properties"
48+
},
49+
"createdAt": "2019-09-19T15:10:43+00:00",
50+
"updatedAt": "2019-09-19T15:10:46+00:00"
51+
}
52+
},
53+
{
54+
"data": {
55+
"id": 46,
56+
"projectId": 2,
57+
"branchId": 34,
58+
"directoryId": 4,
59+
"name": "fileB.properties",
60+
"title": "File B",
61+
"type": "properties",
62+
"revisionId": 1,
63+
"status": "active",
64+
"priority": "normal",
65+
"importOptions": {},
66+
"exportOptions": {
67+
"escapeSpecialCharacters": 1,
68+
"exportPattern": "/files/fileB.properties"
69+
},
70+
"createdAt": "2019-09-19T15:10:43+00:00",
71+
"updatedAt": "2019-09-19T15:10:46+00:00"
72+
}
3173
}
3274
],
3375
"pagination": {

0 commit comments

Comments
 (0)