@@ -243,6 +243,56 @@ public void shouldNotInsertAndUpdateInvalidDate() throws Exception {
243243 assertEquals (updatedDate , rows .get (0 ).getColumn ("test date" ));
244244 }
245245
246+ @ Test
247+ public void shouldNotInsertAndUpdateTooLongValue () throws Exception {
248+ ETDataExtension dataExtension = new ETDataExtension ();
249+ dataExtension .setName ("Test name" + RandomStringUtils .random (5 ));
250+ dataExtension .setKey ("Test_key" + RandomUtils .nextInt ());
251+ dataExtension .addColumn (LANGUAGE_COLUMN_NAME , true );
252+ dataExtension .addColumn ("test column" , ETDataExtensionColumn .Type .TEXT , 5 , null , null , false , false , null );
253+
254+ client .create (dataExtension );
255+
256+ // insert row with too long column value
257+ ETDataExtensionRow insertedRow = new ETDataExtensionRow ();
258+ insertedRow .setColumn (LANGUAGE_COLUMN_NAME , DEFAULT_SOURCE_LOCALE );
259+ insertedRow .setColumn ("test column" , RandomStringUtils .random (6 ));
260+ ETResponse <ETDataExtensionRow > response = dataExtension .insert (insertedRow );
261+ assertNotNull (response .getRequestId ());
262+ assertEquals (ERROR , response .getStatus ());
263+ assertTrue (StringUtils .isNotEmpty (response .getResultErrorMessage ()));
264+
265+ List <ETDataExtensionRow > rows = dataExtension .select ().getObjects ();
266+ assertNotNull (rows );
267+ assertEquals (0 , rows .size ());
268+
269+ insertedRow = new ETDataExtensionRow ();
270+ insertedRow .setColumn (LANGUAGE_COLUMN_NAME , TARGET_LOCALE );
271+ insertedRow .setColumn ("test column" , RandomStringUtils .random (5 ));
272+ response = dataExtension .insert (insertedRow );
273+ assertNotNull (response .getRequestId ());
274+ assertEquals (OK , response .getStatus ());
275+ assertTrue (StringUtils .isEmpty (response .getResultErrorMessage ()));
276+
277+ rows = dataExtension .select ().getObjects ();
278+ assertNotNull (rows );
279+ assertEquals (1 , rows .size ());
280+
281+ // update row with too long column value
282+ ETDataExtensionRow updatedRow = rows .get (0 );
283+ String oldValue = updatedRow .getColumn ("test column" );
284+ updatedRow .setColumn ("test column" , RandomStringUtils .random (6 ));
285+ response = dataExtension .update (updatedRow );
286+ assertNotNull (response .getRequestId ());
287+ assertEquals (ERROR , response .getStatus ());
288+ assertTrue (StringUtils .isNotEmpty (response .getResultErrorMessage ()));
289+
290+ rows = dataExtension .select ().getObjects ();
291+ assertNotNull (rows );
292+ assertEquals (1 , rows .size ());
293+ assertEquals (oldValue , rows .get (0 ).getColumn ("test column" ));
294+ }
295+
246296 private static Optional <ETDataExtensionRow > getDataExtensionRowByLanguage (List <ETDataExtensionRow > rows , String language )
247297 {
248298 return rows .stream ().filter (row -> language .equals (row .getColumn (LANGUAGE_COLUMN_NAME ))).findFirst ();
0 commit comments