Skip to content

Commit 0991d07

Browse files
committed
update unit test for record
1 parent 08691b9 commit 0991d07

File tree

3 files changed

+134
-15
lines changed

3 files changed

+134
-15
lines changed

client/src/test/java/cn/vika/client/api/RecordOperationTest.java

Lines changed: 94 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import cn.vika.client.api.http.ApiCredential;
3333
import cn.vika.client.api.model.ApiQueryParam;
3434
import cn.vika.client.api.model.CreateRecordRequest;
35+
import cn.vika.client.api.model.FieldKey;
3536
import cn.vika.client.api.model.Pager;
3637
import cn.vika.client.api.model.Record;
3738
import cn.vika.client.api.model.RecordMap;
@@ -81,12 +82,41 @@ void testDeleteData() {
8182

8283
@Test
8384
@Order(10)
84-
void testCreateRecordFromFile() throws IOException, ApiException {
85+
void testCreateRecordByNameFromFile() throws IOException, ApiException {
8586
ClassLoader classLoader = getClass().getClassLoader();
8687
InputStream inputStream = classLoader.getResourceAsStream("create-record.json");
8788
assertThat(inputStream).isNotNull();
8889
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalInputStreamToList(RecordMap.class, inputStream);
89-
CreateRecordRequest recordRequest = new CreateRecordRequest().withRecords(recordMaps);
90+
CreateRecordRequest recordRequest = new CreateRecordRequest()
91+
.withRecords(recordMaps);
92+
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, recordRequest);
93+
assertThat(newRecords).isNotNull();
94+
assertThat(newRecords).isNotEmpty();
95+
// compare result for create record
96+
int i = 0;
97+
for (Record newRecord : newRecords) {
98+
Map<String, Object> recordMap = recordMaps.get(i).getFields();
99+
for (Entry<String, Object> entry : newRecord.getFields().entrySet()) {
100+
if (recordMap.containsKey(entry.getKey())) {
101+
assertThat(recordMap.get(entry.getKey())).isEqualTo(entry.getValue());
102+
}
103+
}
104+
i++;
105+
}
106+
deleteRecordIds = newRecords.stream().map(Record::getRecordId).collect(Collectors.toList());
107+
assertThat(deleteRecordIds).isNotEmpty();
108+
}
109+
110+
@Test
111+
@Order(11)
112+
void testCreateRecordByIdFromFile() throws IOException, ApiException {
113+
ClassLoader classLoader = getClass().getClassLoader();
114+
InputStream inputStream = classLoader.getResourceAsStream("create-record-by-id.json");
115+
assertThat(inputStream).isNotNull();
116+
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalInputStreamToList(RecordMap.class, inputStream);
117+
CreateRecordRequest recordRequest = new CreateRecordRequest()
118+
.withRecords(recordMaps)
119+
.withFieldKey(FieldKey.ID);
90120
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, recordRequest);
91121
assertThat(newRecords).isNotNull();
92122
assertThat(newRecords).isNotEmpty();
@@ -109,15 +139,16 @@ void testCreateRecordFromFile() throws IOException, ApiException {
109139
@Order(20)
110140
void testCreateRecordFromJson() throws IOException, ApiException {
111141
ObjectNode fieldMap = JsonNodeFactory.instance.objectNode()
112-
.put("ShortText", "Json manual builder")
113-
.put("LongText", "Json manual builder")
114-
.set("Options", JsonNodeFactory.instance.arrayNode().add("A"));
142+
.put("ShortText", "Json manual builder")
143+
.put("LongText", "Json manual builder")
144+
.set("Options", JsonNodeFactory.instance.arrayNode().add("A"));
115145
fieldMap.set("Options", JsonNodeFactory.instance.arrayNode().add("A"));
116146
fieldMap.set("MultiSelect", JsonNodeFactory.instance.arrayNode().add("GG"));
117147
ObjectNode fields = JsonNodeFactory.instance.objectNode().set("fields", fieldMap);
118148
ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode().add(fields);
119149
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalJsonNodeToList(RecordMap.class, arrayNode);
120-
CreateRecordRequest recordRequest = new CreateRecordRequest().withRecords(recordMaps);
150+
CreateRecordRequest recordRequest = new CreateRecordRequest()
151+
.withRecords(recordMaps);
121152
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, recordRequest);
122153
assertThat(newRecords).isNotNull();
123154
assertThat(newRecords).isNotEmpty();
@@ -146,7 +177,8 @@ void testCreateRecordFromBean() throws ApiException {
146177
fieldDTO.setMultiSelect(Collections.singletonList(("KK")));
147178

148179
List<RecordMap> recordMaps = Collections.singletonList(new RecordMap().withFields(JacksonConverter.toMap(fieldDTO)));
149-
CreateRecordRequest recordRequest = new CreateRecordRequest().withRecords(recordMaps);
180+
CreateRecordRequest recordRequest = new CreateRecordRequest()
181+
.withRecords(recordMaps);
150182
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, recordRequest);
151183
assertThat(newRecords).isNotNull();
152184
assertThat(newRecords).isNotEmpty();
@@ -172,7 +204,52 @@ void testUpdateRecord() throws IOException, ApiException {
172204
InputStream inputStream = classLoader.getResourceAsStream("update-record.json");
173205
assertThat(inputStream).isNotNull();
174206
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalInputStreamToList(RecordMap.class, inputStream);
175-
CreateRecordRequest createRecordRequest = new CreateRecordRequest().withRecords(recordMaps);
207+
CreateRecordRequest createRecordRequest = new CreateRecordRequest()
208+
.withRecords(recordMaps);
209+
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, createRecordRequest);
210+
assertThat(newRecords).isNotNull();
211+
assertThat(newRecords).isNotEmpty();
212+
assertThat(newRecords).hasSize(1);
213+
214+
Record recordResult = newRecords.get(0);
215+
assertThat(recordResult).isNotNull();
216+
217+
String recordId = recordResult.getRecordId();
218+
219+
UpdateRecord record = new UpdateRecord()
220+
.withRecordId(recordId)
221+
.withField("ShortText", "Ps: Test Update, content is 'This is from unit Test update record' before")
222+
// select can be set null or empty array if you want to clear field value
223+
.withField("Options", Collections.emptyList())
224+
.withField("MultiSelect", Arrays.asList("LL", "NN"));
225+
226+
UpdateRecordRequest updateRecordRequest = new UpdateRecordRequest()
227+
.withRecords(Collections.singletonList(record));
228+
229+
List<Record> updateRecords = vikaApiClient.getRecordApi().updateRecords(DATASHEET_ID, updateRecordRequest);
230+
assertThat(updateRecords).isNotNull();
231+
assertThat(updateRecords).isNotEmpty();
232+
assertThat(updateRecords).hasSize(1);
233+
234+
Record returnResult = updateRecords.get(0);
235+
assertThat(returnResult).isNotNull();
236+
assertThat(returnResult.getRecordId()).isEqualTo(recordId);
237+
assertThat(returnResult.getFields()).isNotNull();
238+
239+
deleteRecordIds = newRecords.stream().map(Record::getRecordId).collect(Collectors.toList());
240+
assertThat(deleteRecordIds).isNotEmpty();
241+
}
242+
243+
@Test
244+
@Order(41)
245+
void testUpdateRecordByFieldId() throws IOException, ApiException {
246+
ClassLoader classLoader = getClass().getClassLoader();
247+
InputStream inputStream = classLoader.getResourceAsStream("update-record-by-id.json");
248+
assertThat(inputStream).isNotNull();
249+
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalInputStreamToList(RecordMap.class, inputStream);
250+
CreateRecordRequest createRecordRequest = new CreateRecordRequest()
251+
.withRecords(recordMaps)
252+
.withFieldKey(FieldKey.ID);
176253
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, createRecordRequest);
177254
assertThat(newRecords).isNotNull();
178255
assertThat(newRecords).isNotEmpty();
@@ -184,14 +261,15 @@ void testUpdateRecord() throws IOException, ApiException {
184261
String recordId = recordResult.getRecordId();
185262

186263
UpdateRecord record = new UpdateRecord()
187-
.withRecordId(recordId)
188-
.withField("ShortText", "Ps: Test Update, content is 'This is from unit Test update record' before")
189-
// select can be set null or empty array if you want to clear field value
190-
.withField("Options", Collections.emptyList())
191-
.withField("MultiSelect", Arrays.asList("LL", "NN"));
264+
.withRecordId(recordId)
265+
.withField("fldjoQSlHfV2z", "Ps: Test Update, content is 'This is from unit Test update record' before")
266+
// select can be set null or empty array if you want to clear field value
267+
.withField("fldAY9mW7MUdW", Collections.emptyList())
268+
.withField("fld8w4C5fwDBl", Arrays.asList("LL", "NN"));
192269

193270
UpdateRecordRequest updateRecordRequest = new UpdateRecordRequest()
194-
.withRecords(Collections.singletonList(record));
271+
.withRecords(Collections.singletonList(record))
272+
.withFieldKey(FieldKey.ID);
195273

196274
List<Record> updateRecords = vikaApiClient.getRecordApi().updateRecords(DATASHEET_ID, updateRecordRequest);
197275
assertThat(updateRecords).isNotNull();
@@ -214,7 +292,8 @@ void testDeleteRecord() throws IOException, ApiException {
214292
InputStream inputStream = classLoader.getResourceAsStream("delete-one-record.json");
215293
assertThat(inputStream).isNotNull();
216294
List<RecordMap> recordMaps = JacksonJsonUtil.unmarshalInputStreamToList(RecordMap.class, inputStream);
217-
CreateRecordRequest createRecordRequest = new CreateRecordRequest().withRecords(recordMaps);
295+
CreateRecordRequest createRecordRequest = new CreateRecordRequest()
296+
.withRecords(recordMaps);
218297
List<Record> newRecords = vikaApiClient.getRecordApi().addRecords(DATASHEET_ID, createRecordRequest);
219298
assertThat(newRecords).isNotNull();
220299
assertThat(newRecords).isNotEmpty();
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
[
2+
{
3+
"fields": {
4+
"fldjoQSlHfV2z": "This is from unit Test create record 1 by field id",
5+
"fldo5VxaiCBUk": "This is from unit Test create record 1 by field id",
6+
"fldAY9mW7MUdW": [
7+
"A"
8+
],
9+
"fld8w4C5fwDBl": [
10+
"EE"
11+
]
12+
}
13+
},
14+
{
15+
"fields": {
16+
"fldjoQSlHfV2z": "This is from unit Test create record 2 by field id",
17+
"fldo5VxaiCBUk": "This is from unit Test create record 2 by field id",
18+
"fldAY9mW7MUdW": [
19+
"F"
20+
],
21+
"fld8w4C5fwDBl": [
22+
"LL"
23+
]
24+
}
25+
}
26+
]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[
2+
{
3+
"fields": {
4+
"fldjoQSlHfV2z": "This is from unit Test update record by field id",
5+
"fldo5VxaiCBUk": "This is from unit Test update record by field id",
6+
"fldAY9mW7MUdW": [
7+
"A"
8+
],
9+
"fld8w4C5fwDBl": [
10+
"FF"
11+
]
12+
}
13+
}
14+
]

0 commit comments

Comments
 (0)