-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathyehiafarghaly-database-engine.json
More file actions
2 lines (2 loc) · 121 KB
/
yehiafarghaly-database-engine.json
File metadata and controls
2 lines (2 loc) · 121 KB
1
2
{"repository": "YehiaFarghaly/database-engine", "language": "java", "clone_url": "https://github.com/YehiaFarghaly/database-engine.git", "collection_timestamp": "2023-11-24T16:02:46.515917Z", "commit_hash": "8314bfdec0aa431561d903d788ecdf31fd3c6c5c", "commit_message": "add some unit tests\n", "commit_timestamp": "2023-04-27T23:38:15Z", "previous_commit_hash": "acf65274fdb3a8432aa2c0d8759a47ed823a638e", "previous_commit_message": "solve checkStyle violations\n", "previous_commit_timestamp": "2023-04-27T19:41:26Z", "time_to_patch": "3:56:49", "bug_patch": "diff --git a/src/main/java/app/DBApp.java b/src/main/java/app/DBApp.java\nindex 61482c9..f42ee64 100644\n--- a/src/main/java/app/DBApp.java\n+++ b/src/main/java/app/DBApp.java\n@@ -72,7 +72,7 @@ public class DBApp implements IDatabase {\n \t * \n \t * @throws DBAppException If the table name is invalid or if the table already\n \t * exists.\n-\t * @throws ParseException \n+\t * @throws ParseException\n \t * @throws IOException If an error occurs while creating the table files.\n \t */\n \t@Override\n@@ -80,14 +80,13 @@ public class DBApp implements IDatabase {\n \t\t\tHashtable<String, String> htblColNameType, Hashtable<String, String> htblColNameMin,\n \t\t\tHashtable<String, String> htblColNameMax) throws DBAppException {\n \n-\t\t\tValidator.validateTableCreation(myTables, strTableName,\n-\t\t strClusteringKeyColumn, htblColNameType, htblColNameMin,\n-\t\t htblColNameMax);\n+\t\tValidator.validateTableCreation(myTables, strTableName, strClusteringKeyColumn, htblColNameType, htblColNameMin,\n+\t\t\t\thtblColNameMax);\n \n \t\tTable table = new Table(strTableName, strClusteringKeyColumn, htblColNameType, htblColNameMin, htblColNameMax);\n \t\tmyTables.add(strTableName);\n \t\twriter.write(table);\n-\t\n+\n \t\ttry {\n \t\t\ttable.createTableFiles();\n \t\t\tSerializer.serializeTable(table);\n@@ -176,22 +175,22 @@ public class DBApp implements IDatabase {\n \tprivate void takeAction(Action action, String strTableName, Hashtable<String, Object> htblColNameValue)\n \t\t\tthrows DBAppException {\n \t\ttry {\n+\t\t\tValidator.validateTable(strTableName, myTables);\n \t\t\tTable table = Serializer.deserializeTable(strTableName);\n \t\t\tif (action == Action.INSERT) {\n-\t\t\t\tValidator.validateInsertionInput(table, htblColNameValue, myTables); \n+\t\t\t\tValidator.validateInsertionInput(table, htblColNameValue, myTables);\n \t\t\t\ttable.insertTuple(htblColNameValue);\n \t\t\t} else if (action == Action.DELETE) {\n-\t\t\t\tValidator.validateDeletionInput(table, htblColNameValue, myTables); \n+\t\t\t\tValidator.validateDeletionInput(table, htblColNameValue, myTables);\n \t\t\t\ttable.deleteTuples(htblColNameValue);\n \t\t\t} else {\n \t\t\t\tcastClusteringKeyType(table);\n \t\t\t\thtblColNameValue.put(table.getPKColumn(), clusteringKey);\n-\t\t\t\tValidator.validateUpdateInput(table, htblColNameValue, myTables); \n+\t\t\t\tValidator.validateUpdateInput(table, htblColNameValue, myTables);\n \t\t\t\ttable.updateRecordsInTaple(clusteringKey, htblColNameValue);\n \t\t\t}\n \t\t\tSerializer.serializeTable(table);\n-\t\t} catch (Exception e) {\n-\t\t\te.printStackTrace();\n+\t\t} catch (CsvValidationException | ClassNotFoundException | IOException | ParseException e1) {\n \t\t}\n \t}\n \n@@ -202,4 +201,23 @@ public class DBApp implements IDatabase {\n \tpublic Iterator selectFromTable(SQLTerm[] arrSQLTerms, String[] strarrOperators) throws DBAppException {\n \t\treturn new Selector(arrSQLTerms, strarrOperators).getResult();\n \t}\n+\n+\tpublic static void main(String[] args) throws DBAppException {\n+\t\tDBApp engine = new DBApp();\n+\t\tengine.init();\n+\t\tHashtable<String, String> htblColNameType = new Hashtable<>();\n+\t\thtblColNameType.put(\"course_id\", \"java.lang.String\");\n+\t\thtblColNameType.put(\"courseName\", \"java.lang.String\");\n+\n+\t\tHashtable<String, String> htblColNameMin = new Hashtable<>();\n+\t\thtblColNameMin.put(\"course_id\", \"9999\");\n+\t\thtblColNameMin.put(\"courseName\", \"AAAAA\");\n+\n+\t\tHashtable<String, String> htblColNameMax = new Hashtable<>();\n+\t\thtblColNameMax.put(\"course_id\", \"0000\");\n+\t\thtblColNameMax.put(\"courseName\", \"zzzz\");\n+\n+\t\tengine.createTable(\"newTable\", \"course_id\", htblColNameType, htblColNameMin, htblColNameMax);\n+\n+\t}\n }\ndiff --git a/src/main/java/util/validation/Validator.java b/src/main/java/util/validation/Validator.java\nindex 515a390..f9504eb 100644\n--- a/src/main/java/util/validation/Validator.java\n+++ b/src/main/java/util/validation/Validator.java\n@@ -25,10 +25,10 @@ public class Validator {\n \t\t\tString strClusteringKeyColumn, Hashtable<String, String> htblColNameType,\n \t\t\tHashtable<String, String> htblColNameMin, Hashtable<String, String> htblColNameMax) throws DBAppException {\n \n-\t\tif (validTable(strTableName, appTables)) {\n+\t\tif (isValidTable(strTableName, appTables)) {\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_REPEATED_TABLE_NAME);\n \n-\t\t} else if (!validClusteringKey(strClusteringKeyColumn, htblColNameMax)) {\n+\t\t} else if (!validClusteringKey(strClusteringKeyColumn, htblColNameType)) {\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_INVALID_CLUSTERINGKEY);\n \n \t\t} else if (!validDataTypes(htblColNameType)) {\n@@ -41,6 +41,12 @@ public class Validator {\n \t\t}\n \t}\n \n+\tpublic static void validateTable(String tableName, HashSet<String> myTables) throws DBAppException {\n+\t\tif (!isValidTable(tableName, myTables)) {\n+\t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TABLE_NAME);\n+\t\t}\n+\t}\n+\n \tprivate static boolean validClusteringKey(String strClusteringKeyColumn,\n \t\t\tHashtable<String, String> htblColNameType) {\n \t\tif (strClusteringKeyColumn != null && htblColNameType.containsKey(strClusteringKeyColumn)) {\n@@ -87,9 +93,6 @@ public class Validator {\n \tpublic static void validateInsertionInput(Table table, Hashtable<String, Object> htblColNameValue,\n \t\t\tHashSet<String> appTables)\n \t\t\tthrows DBAppException, CsvValidationException, ClassNotFoundException, IOException, ParseException {\n-\n-\t\tif (!validTable(table.getName(), appTables))\n-\t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TABLE_NAME);\n \t\tif (!validTuple(table, htblColNameValue))\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TUPLE_DATA);\n \t}\n@@ -97,22 +100,18 @@ public class Validator {\n \tpublic static void validateDeletionInput(Table table, Hashtable<String, Object> htblColNameValue,\n \t\t\tHashSet<String> appTables) throws DBAppException {\n \t\tgetTableInfo(table);\n-\t\tif (!validTable(table.getName(), appTables))\n-\t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TABLE_NAME);\n-\t\telse if (!validTupleDelete(htblColNameValue))\n+\t\tif (!validTupleDelete(htblColNameValue))\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TUPLE_DATA);\n \t}\n \n \tpublic static void validateUpdateInput(Table table, Hashtable<String, Object> htblColNameValue,\n \t\t\tHashSet<String> appTables)\n \t\t\tthrows DBAppException, CsvValidationException, ClassNotFoundException, IOException, ParseException {\n-\t\tif (!validTable(table.getName(), appTables))\n-\t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TABLE_NAME);\n \t\tif (!validTupleUpdate(table, htblColNameValue))\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TUPLE_DATA);\n \t}\n \n-\tprivate static boolean validTable(String tableName, HashSet<String> myTables) {\n+\tprivate static boolean isValidTable(String tableName, HashSet<String> myTables) {\n \t\treturn myTables.contains(tableName);\n \t}\n \n@@ -210,16 +209,15 @@ public class Validator {\n \tprivate static boolean isTheSameDataType(Hashtable<String, Object> tuple) {\n \t\tfor (int i = 0; i < columns.length; i++) {\n \t\t\tif (!sameSuffix(tuple, columns[i], i))\n-\t\t\t\t\n+\n \t\t\t\treturn false;\n \t\t}\n \t\treturn true;\n \t}\n-\t\n+\n \tprivate static boolean validTupleDelete(Hashtable<String, Object> htblColNameValue) {\n-\t\tif (!isTheSameDataTypeMissingCol(htblColNameValue) ||\n-\t\t\t!checkTupleSize(htblColNameValue) ||\n-\t\t !containsAllColumns(htblColNameValue))\n+\t\tif (!isTheSameDataTypeMissingCol(htblColNameValue) || !checkTupleSize(htblColNameValue)\n+\t\t\t\t|| !containsAllColumns(htblColNameValue))\n \t\t\treturn false;\n \t\treturn true;\n \t}\n@@ -227,7 +225,7 @@ public class Validator {\n \tprivate static boolean checkTupleSize(Hashtable<String, Object> tuple) {\n \t\treturn tuple.size() <= columns.length;\n \t}\n-\t\n+\n \tprivate static boolean isTheSameDataTypeMissingCol(Hashtable<String, Object> tuple) {\n \t\tint index = 0;\n \t\tfor (String column : columns) {\n@@ -262,7 +260,7 @@ public class Validator {\n \t\tint index = 0;\n \t\tfor (String s : columns) {\n \t\t\tif (tuple.containsKey(s)) {\n-\t\t\t\tparseMinMax(tuple, s, index);\n+\t\t\t\treturn parseMinMax(tuple, s, index);\n \t\t\t}\n \t\t\tindex++;\n \t\t}\n", "bug_patch_file_extensions": ["java"], "test_patch": "diff --git a/src/test/java/app/DBAppTest.java b/src/test/java/app/DBAppTest.java\nindex dcebba3..e251a83 100644\n--- a/src/test/java/app/DBAppTest.java\n+++ b/src/test/java/app/DBAppTest.java\n@@ -59,6 +59,72 @@ public class DBAppTest {\n \t\tengine.createTable(newTableName, id, htblColNameType, htblColNameMin, htblColNameMax);\n \t}\n \n+\t@Test\n+\tvoid testCreateTable_AlreadyExistingName_ShouldFailCreation() throws DBAppException {\n+\t\t// Given\n+\t\tHashtable<String, String> htblColNameType = new Hashtable<>();\n+\t\thtblColNameType.put(\"id\", \"java.lang.String\");\n+\t\thtblColNameType.put(\"courseName\", \"java.lang.String\");\n+\n+\t\tHashtable<String, String> htblColNameMin = new Hashtable<>();\n+\t\thtblColNameMin.put(\"id\", \"0000\");\n+\t\thtblColNameMin.put(\"courseName\", \"AAAAA\");\n+\n+\t\tHashtable<String, String> htblColNameMax = new Hashtable<>();\n+\t\thtblColNameMin.put(\"id\", \"9999\");\n+\t\thtblColNameMin.put(\"courseName\", \"zzzz\");\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.createTable(newTableName, \"id\", htblColNameType, htblColNameMin, htblColNameMax);\n+\t\t});\n+\t\t// Then\n+\t\tassertThat(exception.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_REPEATED_TABLE_NAME);\n+\t}\n+\n+\t@Test\n+\tvoid testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation() throws DBAppException {\n+\t\t// Given\n+\t\tHashtable<String, String> htblColNameType = new Hashtable<>();\n+\t\thtblColNameType.put(\"id\", \"java.lang.String\");\n+\t\thtblColNameType.put(\"courseName\", \"java.lang.String\");\n+\n+\t\tHashtable<String, String> htblColNameMin = new Hashtable<>();\n+\t\thtblColNameMin.put(\"id\", \"0000\");\n+\t\thtblColNameMin.put(\"courseName\", \"AAAAA\");\n+\n+\t\tHashtable<String, String> htblColNameMax = new Hashtable<>();\n+\t\thtblColNameMin.put(\"id\", \"9999\");\n+\t\thtblColNameMin.put(\"courseName\", \"zzzz\");\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.createTable(\"newTable\", \"price\", htblColNameType, htblColNameMin, htblColNameMax);\n+\t\t});\n+\t\t// Then\n+\t\tassertThat(exception.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_INVALID_CLUSTERINGKEY);\n+\t}\n+\n+\t@Test\n+\tvoid testCreateTable_InvalidMinMax_ShouldFailCreation() throws DBAppException {\n+\t\t// Given\n+\t\tHashtable<String, String> htblColNameType = new Hashtable<>();\n+\t\thtblColNameType.put(\"course_id\", \"java.lang.String\");\n+\t\thtblColNameType.put(\"courseName\", \"java.lang.String\");\n+\n+\t\tHashtable<String, String> htblColNameMin = new Hashtable<>();\n+\t\thtblColNameMin.put(\"course_id\", \"9999\");\n+\t\thtblColNameMin.put(\"courseName\", \"AAAAA\");\n+\n+\t\tHashtable<String, String> htblColNameMax = new Hashtable<>();\n+\t\thtblColNameMax.put(\"course_id\", \"0000\");\n+\t\thtblColNameMax.put(\"courseName\", \"zzzz\");\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.createTable(\"newTable\", \"course_id\", htblColNameType, htblColNameMin, htblColNameMax);\n+\t\t});\n+\t\t// Then\n+\t\tassertThat(exception.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_MIN_OR_MAX_NOT_VALID);\n+\t}\n+\n \tprivate static void insertRow(int id) throws DBAppException {\n \n \t\tHashtable<String, Object> htblColNameValue = createRow(id, TEST_NAME, TEST_AGE);\n@@ -118,20 +184,61 @@ public class DBAppTest {\n \t\tassertThat(page.getSize() == 100);\n \t}\n \n-//\t@Test\n-//\tvoid testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert() throws CsvValidationException, ClassNotFoundException, DBAppException, IOException {\n-//\t\t// Given\n-//\t\tinsertRow(1);\n-//\t\tHashtable<String,Object> htblColNameValue = createRow(1, \"Mohamed\", TEST_AGE);\n-//\t\t\n-//\t\t// When\n-//\t\ttry {\n-//\t\t engine.insertIntoTable(newTableName, htblColNameValue);\n-//\t\t fail(\"Expected DBAppException but no exception was thrown\");\n-//\t\t} catch (DBAppException e) {\n-//\t\t System.out.println(e.getMessage());\n-//\t\t}\n-//\t}\n+\t@Test\n+\tvoid testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert()\n+\t\t\tthrows CsvValidationException, ClassNotFoundException, DBAppException, IOException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = createRow(1, \"Mohamed\", TEST_AGE);\n+\n+\t\t// When\n+\t\ttry {\n+\t\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\t\t\tfail(\"Expected DBAppException but no exception was thrown\");\n+\t\t} catch (DBAppException e) {\n+\n+\t\t\t// Then\n+\t\t\tassertThat(e.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_TUPLE_DATA);\n+\t\t}\n+\t}\n+\n+\t@Test\n+\tvoid testInsertIntoTable_InvalidDataType_ShouldFailInsertion() throws DBAppException {\n+\t\t// Given\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, \"Foo\");\n+\t\thtblColNameValue.put(age, \"boo\");\n+\t\thtblColNameValue.put(id, 55);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n+\tvoid testInsertIntoTable_InvalidTableName_ShouldFailInsertion() {\n+\t\t// Given\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, \"Foo\");\n+\t\thtblColNameValue.put(age, TEST_AGE);\n+\t\thtblColNameValue.put(id, 55);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.insertIntoTable(\"someRandomTableName\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TABLE_NAME;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n \n \t@Test\n \tvoid testUpdateTable_ValidInput_ShouldUpdateSuccessfully()\n@@ -151,30 +258,69 @@ public class DBAppTest {\n \t\tassertThat(updated.getCells().get(2).getValue()).isEqualTo(updatedName);\n \t}\n \n-//\t@Test\n-//\tvoid testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate() throws DBAppException {\n-//\t\t// Given\n-//\t\tString updatedName = \"Mohamed\";\n-//\t\tHashtable<String, Object> htblColNameValue = new Hashtable();\n-//\t\thtblColNameValue.put(name, updatedName);\n-//\n-//\t\t// When\n-//\t\tException exception = assertThrows(DBAppException.class, () -> {\n-//\t\t\tengine.updateTable(newTableName, \"0\", htblColNameValue);\n-//\t\t});\n-//\n-//\t\t// Then\n-//\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n-//\t\tString outputMessage = exception.getMessage();\n-//\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n-//\t}\n+\t@Test\n+\tvoid testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tString updatedName = \"Mohamed\";\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, updatedName);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"0\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n+\tvoid testUpdateTable_ExtraInput_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, \"Foo\");\n+\t\thtblColNameValue.put(age, 25);\n+\t\thtblColNameValue.put(\"University\", \"GUC\");\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"0\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n+\tvoid testUpdateTable_MoreThanMax_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(age, 2500);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"1\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n \n \t@Test\n \tvoid testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully()\n \t\t\tthrows DBAppException, ClassNotFoundException, IOException, InterruptedException {\n \t\t// Given\n \t\tinsertRow(1);\n-\t\tHashtable<String,Object> htblColNameValue = new Hashtable<>();\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n \t\thtblColNameValue.put(id, 1);\n \n \t\t// When\n@@ -191,34 +337,55 @@ public class DBAppTest {\n \t\t// Given\n \t\tfor (int i = 0; i < 100; i++)\n \t\t\tinsertRow(i);\n-\t\tHashtable<String,Object> htblColNameValue = new Hashtable<>();\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n \t\thtblColNameValue.put(name, TEST_NAME);\n+\t\thtblColNameValue.put(id, 0);\n \n \t\t// When\n \t\tengine.deleteFromTable(newTableName, htblColNameValue);\n \n \t\t// Then\n \t\tTable table = Serializer.deserializeTable(newTableName);\n-\t\tassertThat(table.isEmpty());\n+\t\tassertThat(table.getSize()).isEqualTo(99);\n+\t}\n+\n+\t@Test\n+\tvoid testDeleteFromTable_InvalidColumnName_ShouldFailDelete()\n+\t\t\tthrows DBAppException, ClassNotFoundException, IOException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(\"middle_name\", \"Mohamed\");\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.deleteFromTable(newTableName, htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n \t}\n \n-//\t@Test\n-//\tvoid testDeleteFromTable_InvalidName_ShouldFailDelete() throws DBAppException, ClassNotFoundException, IOException {\n-//\t\t// Given\n-//\t\tinsertRow(1);\n-//\t\tHashtable<String,Object> htblColNameValue = new Hashtable<>();\n-//\t\thtblColNameValue.put(name, \"Mohamed\");\n-//\n-//\t\t// When\n-//\t\tException exception = assertThrows(DBAppException.class, () -> {\n-//\t\t\tengine.deleteFromTable(newTableName, htblColNameValue);\n-//\t\t});\n-//\n-//\t\t// Then\n-//\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n-//\t\tString outputMessage = exception.getMessage();\n-//\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n-//\t}\n+\t@Test\n+\tvoid testDeleteFromTable_InvalidDataType_ShouldFailDelete() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(id, 1);\n+\t\thtblColNameValue.put(\"age\", \"Foo\");\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.deleteFromTable(newTableName, htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n \n \t@AfterEach\n \tvoid deleteCreatedTable() throws ClassNotFoundException, IOException, InterruptedException {\n", "test_patch_file_extensions": ["java"], "non_code_patch": "", "non_code_patch_file_extensions": [], "change_type": "SOURCE_ONLY", "actions_runs": [[{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.173, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.019, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuples_ShouldDeleteSuccessfully", "time": 1.655, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 6.282, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.006, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/2eba8e0b-a40c-41f2-8ef9-282946e78a98/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "26390e9c-b103-43f8-927d-7a00a598d831", "build_tool": "maven", "elapsed_time": 46.13105630874634, "default_actions": false}], [{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.179, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidDataType_ShouldFailDelete", "time": 0.029, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateDeletionInput(Validator.java:103)\n\tat app.DBApp.takeAction(DBApp.java:184)\n\tat app.DBApp.deleteFromTable(DBApp.java:159)\n\tat app.DBAppTest.lambda$testDeleteFromTable_InvalidDataType_ShouldFailDelete$9(DBAppTest.java:381)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testDeleteFromTable_InvalidDataType_ShouldFailDelete(DBAppTest.java:380)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation", "time": 0.014, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate", "time": 0.069, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateUpdateInput(Validator.java:112)\n\tat app.DBApp.takeAction(DBApp.java:189)\n\tat app.DBApp.updateTable(DBApp.java:141)\n\tat app.DBAppTest.lambda$testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate$5(DBAppTest.java:271)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate(DBAppTest.java:270)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidColumnName_ShouldFailDelete", "time": 0.022, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateDeletionInput(Validator.java:103)\n\tat app.DBApp.takeAction(DBApp.java:184)\n\tat app.DBApp.deleteFromTable(DBApp.java:159)\n\tat app.DBAppTest.lambda$testDeleteFromTable_InvalidColumnName_ShouldFailDelete$8(DBAppTest.java:362)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testDeleteFromTable_InvalidColumnName_ShouldFailDelete(DBAppTest.java:361)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.019, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuples_ShouldDeleteSuccessfully", "time": 1.414, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 4.894, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert", "time": 0.005, "results": [{"result": "Failure", "message": "Expected DBAppException but no exception was thrown", "type": "java.lang.AssertionError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateInsertionInput(Validator.java:94)\n\tat app.DBApp.takeAction(DBApp.java:181)\n\tat app.DBApp.insertIntoTable(DBApp.java:118)\n\tat app.DBAppTest.testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert(DBAppTest.java:196)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ExtraInput_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateUpdateInput(Validator.java:112)\n\tat app.DBApp.takeAction(DBApp.java:189)\n\tat app.DBApp.updateTable(DBApp.java:141)\n\tat app.DBAppTest.lambda$testUpdateTable_ExtraInput_ShouldFailUpdate$6(DBAppTest.java:291)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testUpdateTable_ExtraInput_ShouldFailUpdate(DBAppTest.java:290)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidDataType_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "exceptions.DBAppException: The input row contains invalid data, please insert a valid one\n\tat util.validation.Validator.validateInsertionInput(Validator.java:94)\n\tat app.DBApp.takeAction(DBApp.java:181)\n\tat app.DBApp.insertIntoTable(DBApp.java:118)\n\tat app.DBAppTest.lambda$testInsertIntoTable_InvalidDataType_ShouldFailInsertion$3(DBAppTest.java:215)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testInsertIntoTable_InvalidDataType_ShouldFailInsertion(DBAppTest.java:214)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidTableName_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": "java.io.FileNotFoundException: someRandomTableName/someRandomTableName.ser (No such file or directory)\n\tat java.base/java.io.FileInputStream.open0(Native Method)\n\tat java.base/java.io.FileInputStream.open(FileInputStream.java:219)\n\tat java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)\n\tat java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)\n\tat util.filecontroller.Serializer.getInputStream(Serializer.java:57)\n\tat util.filecontroller.Serializer.deserializeTable(Serializer.java:26)\n\tat app.DBApp.takeAction(DBApp.java:179)\n\tat app.DBApp.insertIntoTable(DBApp.java:118)\n\tat app.DBAppTest.lambda$testInsertIntoTable_InvalidTableName_ShouldFailInsertion$4(DBAppTest.java:234)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)\n\tat org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)\n\tat org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3083)\n\tat app.DBAppTest.testInsertIntoTable_InvalidTableName_ShouldFailInsertion(DBAppTest.java:233)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)\n\tat org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)\n\tat org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)\n\tat org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)\n\tat org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)\n\tat org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat java.base/java.util.ArrayList.forEach(ArrayList.java:1541)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)\n\tat org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)\n\tat org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)\n\tat org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)\n\tat org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)\n\tat org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)\n\tat org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)\n\tat org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)\n\tat org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)\n\tat org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)\n\tat org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)\n\tat org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)\n"}, {"classname": "app.DBAppTest", "name": "testCreateTable_AlreadyExistingName_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_MoreThanMax_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidMinMax_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/2eba8e0b-a40c-41f2-8ef9-282946e78a98/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "ea51ae3b-353c-430b-a11a-5ce8eaf46564", "build_tool": "maven", "elapsed_time": 34.75182390213013, "default_actions": false}], [{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.165, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidDataType_ShouldFailDelete", "time": 0.019, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate", "time": 0.069, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidColumnName_ShouldFailDelete", "time": 0.009, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.011, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuples_ShouldDeleteSuccessfully", "time": 1.006, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 5.449, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ExtraInput_ShouldFailUpdate", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidDataType_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidTableName_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_AlreadyExistingName_ShouldFailCreation", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_MoreThanMax_ShouldFailUpdate", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidMinMax_ShouldFailCreation", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/2eba8e0b-a40c-41f2-8ef9-282946e78a98/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "3c741377-5424-429f-987c-7c62489bc83b", "build_tool": "maven", "elapsed_time": 31.819107055664062, "default_actions": false}]], "strategy": "PASS_PASS", "issues": []}
{"repository": "YehiaFarghaly/database-engine", "language": "java", "clone_url": "https://github.com/YehiaFarghaly/database-engine.git", "collection_timestamp": "2023-11-24T16:03:18.455168Z", "commit_hash": "c5f961f27373a552d506ba0380d3898188971523", "commit_message": "Adding more cases in unit tests\n", "commit_timestamp": "2023-04-29T16:48:22Z", "previous_commit_hash": "403a4c0b3b6ce9c1890524224b210fc619cf057d", "previous_commit_message": "solve checkStyle violation\n", "previous_commit_timestamp": "2023-04-28T13:49:50Z", "time_to_patch": "1 day, 2:58:32", "bug_patch": "diff --git a/src/main/java/app/DBApp.java b/src/main/java/app/DBApp.java\nindex 9094d5e..96beffc 100644\n--- a/src/main/java/app/DBApp.java\n+++ b/src/main/java/app/DBApp.java\n@@ -178,22 +178,39 @@ public class DBApp implements IDatabase {\n \t\t\tValidator.validateTable(strTableName, myTables);\n \t\t\tTable table = Serializer.deserializeTable(strTableName);\n \t\t\tif (action == Action.INSERT) {\n-\t\t\t\tValidator.validateInsertionInput(table, htblColNameValue, myTables);\n-\t\t\t\ttable.insertTuple(htblColNameValue);\n+\t\t\t\ttakeInsertAction(table, htblColNameValue);\n \t\t\t} else if (action == Action.DELETE) {\n-\t\t\t\tValidator.validateDeletionInput(table, htblColNameValue, myTables);\n-\t\t\t\ttable.deleteTuples(htblColNameValue);\n+\t\t\t\ttakeDeleteAction(table, htblColNameValue);\n \t\t\t} else {\n-\t\t\t\tcastClusteringKeyType(table);\n-\t\t\t\thtblColNameValue.put(table.getPKColumn(), clusteringKey);\n-\t\t\t\tValidator.validateUpdateInput(table, htblColNameValue, myTables);\n-\t\t\t\ttable.updateRecordsInTaple(clusteringKey, htblColNameValue);\n+\t\t\t\ttakeUpdateAction(table, htblColNameValue);\n \t\t\t}\n \t\t\tSerializer.serializeTable(table);\n \t\t} catch (CsvValidationException | ClassNotFoundException | IOException | ParseException e1) {\n+\t\t\tthrow new DBAppException();\n \t\t}\n \t}\n \n+\tprivate void takeInsertAction(Table table, Hashtable<String, Object> htblColNameValue)\n+\t\t\tthrows ClassNotFoundException, DBAppException, IOException, ParseException, CsvValidationException {\n+\t\tValidator.validateInsertionInput(table, htblColNameValue, myTables);\n+\t\ttable.insertTuple(htblColNameValue);\n+\t}\n+\n+\tprivate void takeDeleteAction(Table table, Hashtable<String, Object> htblColNameValue)\n+\t\t\tthrows ClassNotFoundException, DBAppException, IOException, ParseException, CsvValidationException {\n+\t\tValidator.validateDeletionInput(table, htblColNameValue, myTables);\n+\t\ttable.deleteTuples(htblColNameValue);\n+\t}\n+\n+\tprivate void takeUpdateAction(Table table, Hashtable<String, Object> htblColNameValue)\n+\t\t\tthrows DBAppException, CsvValidationException, ClassNotFoundException, IOException, ParseException {\n+\t\tcastClusteringKeyType(table);\n+\t\tValidator.checkNoClusteringKey(htblColNameValue, table);\n+\t\thtblColNameValue.put(table.getPKColumn(), clusteringKey);\n+\t\tValidator.validateUpdateInput(table, htblColNameValue, myTables);\n+\t\ttable.updateRecordsInTaple(clusteringKey, htblColNameValue);\n+\t}\n+\n \tprivate void castClusteringKeyType(Table table) {\n \t\tclusteringKey = TypeCaster.castClusteringKey(table, clusteringKeyValue);\n \t}\ndiff --git a/src/main/java/util/validation/Validator.java b/src/main/java/util/validation/Validator.java\nindex 2330f9f..450343c 100644\n--- a/src/main/java/util/validation/Validator.java\n+++ b/src/main/java/util/validation/Validator.java\n@@ -34,8 +34,8 @@ public class Validator {\n \t\t} else if (!validDataTypes(htblColNameType)) {\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_DATATYPE);\n \n-\t\t} else if (!validMinAndMax(htblColNameType, htblColNameMin, htblColNameMax)\n-\t\t\t\t|| !sameColMinMax(htblColNameMin, htblColNameMax)) {\n+\t\t} else if (!sameCol(htblColNameMin, htblColNameMax, htblColNameType)\n+\t\t\t\t|| !validMinAndMax(htblColNameType, htblColNameMin, htblColNameMax)) {\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_MIN_OR_MAX_NOT_VALID);\n \n \t\t}\n@@ -86,9 +86,10 @@ public class Validator {\n \t\treturn true;\n \t}\n \n-\tprivate static boolean sameColMinMax(Hashtable<String, String> htblColNameMin,\n-\t\t\tHashtable<String, String> htblColNameMax) {\n-\t\treturn htblColNameMin.keySet().equals(htblColNameMax.keySet());\n+\tprivate static boolean sameCol(Hashtable<String, String> htblColNameMin, Hashtable<String, String> htblColNameMax,\n+\t\t\tHashtable<String, String> htblColNameType) {\n+\t\treturn htblColNameMin.keySet().equals(htblColNameMax.keySet())\n+\t\t\t\t&& htblColNameMin.keySet().equals(htblColNameType.keySet());\n \n \t}\n \n@@ -113,6 +114,13 @@ public class Validator {\n \t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TUPLE_DATA);\n \t}\n \n+\tpublic static void checkNoClusteringKey(Hashtable<String, Object> htblColNameValue, Table table)\n+\t\t\tthrows DBAppException {\n+\t\tif (htblColNameValue.containsKey(table.getPKColumn()))\n+\t\t\tthrow new DBAppException(Constants.ERROR_MESSAGE_TUPLE_DATA);\n+\n+\t}\n+\n \tprivate static boolean isValidTable(String tableName, HashSet<String> myTables) {\n \t\treturn myTables.contains(tableName);\n \t}\n@@ -292,5 +300,4 @@ public class Validator {\n \tprivate static boolean isFirstGreaterThanSecond(Object comp1, Object comp2) {\n \t\treturn Compare.compare(comp1, comp2) > 0;\n \t}\n-\n }\n\\ No newline at end of file\n", "bug_patch_file_extensions": ["java"], "test_patch": "diff --git a/src/test/java/app/DBAppTest.java b/src/test/java/app/DBAppTest.java\nindex 6680895..0e51ca7 100644\n--- a/src/test/java/app/DBAppTest.java\n+++ b/src/test/java/app/DBAppTest.java\n@@ -102,7 +102,7 @@ public class DBAppTest {\n \t\t// Then\n \t\tassertThat(exception.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_INVALID_CLUSTERINGKEY);\n \t}\n-\t\n+\n \t@Test\n \tvoid testCreateTable_InvalidDataType_ShouldFailCreation() throws DBAppException {\n \t\t// Given\n@@ -148,6 +148,28 @@ public class DBAppTest {\n \t}\n \n \t@Test\n+\tvoid testCreateTable_InconsistentColumns_ShouldFailCreation() throws DBAppException {\n+\t\t// Given\n+\t\tHashtable<String, String> htblColNameType = new Hashtable<>();\n+\t\thtblColNameType.put(\"course_id\", \"java.lang.String\");\n+\t\thtblColNameType.put(\"courseName\", \"java.lang.String\");\n+\n+\t\tHashtable<String, String> htblColNameMin = new Hashtable<>();\n+\t\thtblColNameMin.put(\"id\", \"0000\");\n+\t\thtblColNameMin.put(\"name\", \"AAAAA\");\n+\n+\t\tHashtable<String, String> htblColNameMax = new Hashtable<>();\n+\t\thtblColNameMax.put(\"course_id\", \"9999\");\n+\t\thtblColNameMax.put(\"courseName\", \"zzzz\");\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.createTable(\"newTable\", \"course_id\", htblColNameType, htblColNameMin, htblColNameMax);\n+\t\t});\n+\t\t// Then\n+\t\tassertThat(exception.getMessage()).isEqualTo(Constants.ERROR_MESSAGE_MIN_OR_MAX_NOT_VALID);\n+\t}\n+\n+\t@Test\n \tvoid testInsertIntoTable_OneTuple_ShouldInsertSuccessfully() throws ClassNotFoundException, IOException,\n \t\t\tCsvValidationException, DBAppException, ParseException, InterruptedException {\n \t\t// Given\n@@ -158,7 +180,7 @@ public class DBAppTest {\n \n \t\t// Then\n \t\tTable table = Serializer.deserializeTable(newTableName);\n-\t\tassertThat(table.getPagesName().size() == 1);\n+\t\tassertThat(table.getPagesName().size()).isEqualTo(1);\n \t\tPage page = table.getPageAtPosition(0);\n \t\tassertThat(page.getSize() == 1);\n \t}\n@@ -176,11 +198,56 @@ public class DBAppTest {\n \t\t}\n \t\t// Then\n \t\tTable table = Serializer.deserializeTable(newTableName);\n-\t\tassertThat(table.getPagesName().size() == 2);\n+\t\tassertThat(table.getPagesName().size()).isEqualTo(2);\n+\t\tPage page = table.getPageAtPosition(1);\n+\t\tassertThat(page.getSize()).isEqualTo(99);\n+\t\tpage = table.getPageAtPosition(0);\n+\t\tassertThat(page.isFull());\n+\t}\n+\n+\t@Test\n+\tvoid testInsertIntoTable_InsertingLastRecordIntoFullPage_ShouldInsertSuccessfully() throws ClassNotFoundException,\n+\t\t\tIOException, CsvValidationException, DBAppException, ParseException, InterruptedException {\n+\t\t// Given\n+\t\tfor (int i = 2; i < 402; i += 2) {\n+\t\t\tHashtable<String, Object> htblColNameValue = createRow(i, TEST_NAME, TEST_AGE);\n+\t\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\t\t}\n+\n+\t\t// When\n+\t\tHashtable<String, Object> htblColNameValue = createRow(399, TEST_NAME, TEST_AGE);\n+\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\n+\t\t// Then\n+\t\tTable table = Serializer.deserializeTable(newTableName);\n+\t\tassertThat(table.getPagesName().size()).isEqualTo(2);\n \t\tPage page = table.getPageAtPosition(0);\n \t\tassertThat(page.isFull());\n+\t\tassertThat(page.getTuples().get(199).getPrimaryKey()).isEqualTo(399);\n+\t}\n+\n+\t@Test\n+\tvoid testInsertIntoTable_InsertingRecordShiftingTwoPages_ShouldInsertSuccessfully() throws ClassNotFoundException,\n+\t\t\tIOException, CsvValidationException, DBAppException, ParseException, InterruptedException {\n+\t\t// Given\n+\t\tfor (int i = 2; i <= 802; i += 2) {\n+\t\t\tHashtable<String, Object> htblColNameValue = createRow(i, TEST_NAME, TEST_AGE);\n+\t\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\t\t}\n+\n+\t\t// When\n+\t\tHashtable<String, Object> htblColNameValue = createRow(399, TEST_NAME, TEST_AGE);\n+\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\n+\t\t// Then\n+\t\tTable table = Serializer.deserializeTable(newTableName);\n+\t\tassertThat(table.getPagesName().size()).isEqualTo(3);\n+\t\tPage page = table.getPageAtPosition(0);\n+\t\tassertThat(page.getTuples().get(199).getPrimaryKey()).isEqualTo(399);\n \t\tpage = table.getPageAtPosition(1);\n-\t\tassertThat(page.getSize() == 100);\n+\t\tassertThat(page.getTuples().get(0).getPrimaryKey()).isEqualTo(400);\n+\t\tpage = table.getPageAtPosition(2);\n+\t\tassertThat(page.getTuples().get(0).getPrimaryKey()).isEqualTo(800);\n \t}\n \n \t@Test\n@@ -238,7 +305,7 @@ public class DBAppTest {\n \t\tString outputMessage = exception.getMessage();\n \t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n \t}\n-\t\n+\n \t@Test\n \tvoid testInsertIntoTable_LessThanMin_ShouldFailInsertion() {\n \t\t// Given\n@@ -257,7 +324,26 @@ public class DBAppTest {\n \t\tString outputMessage = exception.getMessage();\n \t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n \t}\n-\t\n+\n+\t@Test\n+\tvoid testInsertIntoTable_MoreThanMax_ShouldFailInsertion() {\n+\t\t// Given\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, \"{abc\");\n+\t\thtblColNameValue.put(age, TEST_AGE);\n+\t\thtblColNameValue.put(id, 3);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.insertIntoTable(newTableName, htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n \t@Test\n \tvoid testInsertIntoTable_MissingColumn_ShouldFailInsertion() {\n \t\t// Given\n@@ -275,7 +361,7 @@ public class DBAppTest {\n \t\tString outputMessage = exception.getMessage();\n \t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n \t}\n-\t\n+\n \t@Test\n \tvoid testInsertIntoTable_ExtraColumn_ShouldFailInsertion() {\n \t\t// Given\n@@ -334,6 +420,25 @@ public class DBAppTest {\n \t}\n \n \t@Test\n+\tvoid testUpdateTable_PrimaryKeyUpdate_ShouldFailUpdate()\n+\t\t\tthrows DBAppException, ClassNotFoundException, IOException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(id, 2);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"1\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n \tvoid testUpdateTable_ExtraInput_ShouldFailUpdate() throws DBAppException {\n \t\t// Given\n \t\tinsertRow(1);\n@@ -372,6 +477,60 @@ public class DBAppTest {\n \t}\n \n \t@Test\n+\tvoid testUpdateTable_LessThanMin_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(age, 0);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"1\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n+\tvoid testUpdateTable_InvalidDataType_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(age, \"Foo\");\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(newTableName, \"1\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TUPLE_DATA;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n+\tvoid testUpdateTable_InvalidTableName_ShouldFailUpdate() throws DBAppException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(age, 25);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.updateTable(\"randomName\", \"1\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TABLE_NAME;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n+\t@Test\n \tvoid testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully()\n \t\t\tthrows DBAppException, ClassNotFoundException, IOException, InterruptedException {\n \t\t// Given\n@@ -388,7 +547,7 @@ public class DBAppTest {\n \t}\n \n \t@Test\n-\tvoid testDeleteFromTable_ManyTuples_ShouldDeleteSuccessfully()\n+\tvoid testDeleteFromTable_ManyTuplesDeleteOne_ShouldDeleteSuccessfully()\n \t\t\tthrows DBAppException, ClassNotFoundException, IOException {\n \t\t// Given\n \t\tfor (int i = 0; i < 100; i++)\n@@ -406,6 +565,23 @@ public class DBAppTest {\n \t}\n \n \t@Test\n+\tvoid testDeleteFromTable_ManyTuplesDeleteAll_ShouldDeleteSuccessfully()\n+\t\t\tthrows DBAppException, ClassNotFoundException, IOException {\n+\t\t// Given\n+\t\tfor (int i = 0; i < 100; i++)\n+\t\t\tinsertRow(i);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(name, TEST_NAME);\n+\n+\t\t// When\n+\t\tengine.deleteFromTable(newTableName, htblColNameValue);\n+\n+\t\t// Then\n+\t\tTable table = Serializer.deserializeTable(newTableName);\n+\t\tassertThat(table.isEmpty());\n+\t}\n+\n+\t@Test\n \tvoid testDeleteFromTable_InvalidColumnName_ShouldFailDelete()\n \t\t\tthrows DBAppException, ClassNotFoundException, IOException {\n \t\t// Given\n@@ -442,7 +618,26 @@ public class DBAppTest {\n \t\tString outputMessage = exception.getMessage();\n \t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n \t}\n-\t\n+\n+\t@Test\n+\tvoid testDeleteFromTable_InvalidTable_ShouldFailDelete()\n+\t\t\tthrows DBAppException, ClassNotFoundException, IOException, InterruptedException {\n+\t\t// Given\n+\t\tinsertRow(1);\n+\t\tHashtable<String, Object> htblColNameValue = new Hashtable<>();\n+\t\thtblColNameValue.put(id, 1);\n+\n+\t\t// When\n+\t\tException exception = assertThrows(DBAppException.class, () -> {\n+\t\t\tengine.deleteFromTable(\"randomTableName\", htblColNameValue);\n+\t\t});\n+\n+\t\t// Then\n+\t\tString expectedMessage = Constants.ERROR_MESSAGE_TABLE_NAME;\n+\t\tString outputMessage = exception.getMessage();\n+\t\tassertThat(outputMessage).isEqualTo(expectedMessage);\n+\t}\n+\n \tprivate static void insertRow(int id) throws DBAppException {\n \n \t\tHashtable<String, Object> htblColNameValue = createRow(id, TEST_NAME, TEST_AGE);\n@@ -466,7 +661,6 @@ public class DBAppTest {\n \t\treturn htblColNameValue;\n \t}\n \n-\n \t@AfterEach\n \tvoid deleteCreatedTable() throws ClassNotFoundException, IOException, InterruptedException {\n \t\tTable table = Serializer.deserializeTable(newTableName);\n", "test_patch_file_extensions": ["java"], "non_code_patch": "", "non_code_patch_file_extensions": [], "change_type": "SOURCE_ONLY", "actions_runs": [[{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.158, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidDataType_ShouldFailDelete", "time": 0.021, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation", "time": 0.008, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate", "time": 0.094, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_LessThanMin_ShouldFailInsertion", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidColumnName_ShouldFailDelete", "time": 0.009, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.009, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuples_ShouldDeleteSuccessfully", "time": 1.233, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 6.238, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ExtraInput_ShouldFailUpdate", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidDataType_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ExtraColumn_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidTableName_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_AlreadyExistingName_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_MoreThanMax_ShouldFailUpdate", "time": 0.006, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidDataType_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidMinMax_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_MissingColumn_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.01, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/9c366cb8-9e90-4e20-ac6c-cf149868912c/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "413b0af7-f4e0-41b8-87d7-708825277f04", "build_tool": "maven", "elapsed_time": 44.151849031448364, "default_actions": false}], [{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.169, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InconsistentColumns_ShouldFailCreation", "time": 0.009, "results": [{"result": "Failure", "message": "Unexpected exception type thrown, expected: <exceptions.DBAppException> but was: <java.lang.NullPointerException>", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuplesDeleteAll_ShouldDeleteSuccessfully", "time": 1.34, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidTableName_ShouldFailUpdate", "time": 0.007, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidDataType_ShouldFailDelete", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_LessThanMin_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidColumnName_ShouldFailDelete", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_MoreThanMax_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InsertingLastRecordIntoFullPage_ShouldInsertSuccessfully", "time": 3.272, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_PrimaryKeyUpdate_ShouldFailUpdate", "time": 0.006, "results": [{"result": "Failure", "message": "Expected exceptions.DBAppException to be thrown, but nothing was thrown.", "type": "org.opentest4j.AssertionFailedError"}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_LessThanMin_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidTable_ShouldFailDelete", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 4.862, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ExtraInput_ShouldFailUpdate", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuplesDeleteOne_ShouldDeleteSuccessfully", "time": 0.733, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidDataType_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ExtraColumn_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidTableName_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InsertingRecordShiftingTwoPages_ShouldInsertSuccessfully", "time": 11.036, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_AlreadyExistingName_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_MoreThanMax_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidDataType_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidDataType_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidMinMax_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_MissingColumn_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/9c366cb8-9e90-4e20-ac6c-cf149868912c/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "d4ed98da-4b0f-40f5-a85d-6a4faa859fac", "build_tool": "maven", "elapsed_time": 48.99732780456543, "default_actions": false}], [{"failed": false, "tests": [{"classname": "app.DBAppTest", "name": "testInsertIntoTable_OneTuple_ShouldInsertSuccessfully", "time": 0.159, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InconsistentColumns_ShouldFailCreation", "time": 0.01, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuplesDeleteAll_ShouldDeleteSuccessfully", "time": 1.629, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidTableName_ShouldFailUpdate", "time": 0.006, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidDataType_ShouldFailDelete", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidPrimaryKeyColumn_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidPrimaryKey_ShouldFailUpdate", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_LessThanMin_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidColumnName_ShouldFailDelete", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_OneTuple_ShouldDeleteSuccessfully", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_MoreThanMax_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InsertingLastRecordIntoFullPage_ShouldInsertSuccessfully", "time": 3.062, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_PrimaryKeyUpdate_ShouldFailUpdate", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_LessThanMin_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_InvalidTable_ShouldFailDelete", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ManyTuples_ShouldInsertSuccessfully", "time": 5.874, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_RepeatedPrimaryKey_ShouldFailInsert", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ExtraInput_ShouldFailUpdate", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testDeleteFromTable_ManyTuplesDeleteOne_ShouldDeleteSuccessfully", "time": 0.788, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidDataType_ShouldFailInsertion", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_ExtraColumn_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InvalidTableName_ShouldFailInsertion", "time": 0.001, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_InsertingRecordShiftingTwoPages_ShouldInsertSuccessfully", "time": 9.509, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_AlreadyExistingName_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_MoreThanMax_ShouldFailUpdate", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidDataType_ShouldFailCreation", "time": 0.002, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_InvalidDataType_ShouldFailUpdate", "time": 0.004, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testCreateTable_InvalidMinMax_ShouldFailCreation", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testInsertIntoTable_MissingColumn_ShouldFailInsertion", "time": 0.003, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}, {"classname": "app.DBAppTest", "name": "testUpdateTable_ValidInput_ShouldUpdateSuccessfully", "time": 0.005, "results": [{"result": "Passed", "message": "", "type": ""}], "stdout": null, "stderr": null}], "workflow": {"path": "/tmp/9c366cb8-9e90-4e20-ac6c-cf149868912c/.github/workflows/maven-crawler.yml", "type": "maven"}, "workflow_name": "7e4df884-e28b-49ce-80d1-bff26128cccc", "build_tool": "maven", "elapsed_time": 48.1496467590332, "default_actions": false}]], "strategy": "PASS_PASS", "issues": []}