3232import cn .vika .client .api .http .ApiCredential ;
3333import cn .vika .client .api .model .ApiQueryParam ;
3434import cn .vika .client .api .model .CreateRecordRequest ;
35+ import cn .vika .client .api .model .FieldKey ;
3536import cn .vika .client .api .model .Pager ;
3637import cn .vika .client .api .model .Record ;
3738import 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 ();
0 commit comments