1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-10 12:27:35 +00:00

Tests: Prefer TRY_OR_FAIL() and MUST() over EXPECT(!.is_error())

Note that in some cases (in particular SQL::Result and PDFErrorOr),
there is no Formatter defined for the error type, hence TRY_OR_FAIL
cannot work as-is. Furthermore, this commit leaves untouched the places
where MUST could be replaced by TRY_OR_FAIL.

Inspired by:
https://github.com/SerenityOS/serenity/pull/18710#discussion_r1186892445
This commit is contained in:
Ben Wiederhake 2023-05-07 20:14:06 +02:00 committed by Andrew Kaster
parent 87a7299078
commit f890b70eae
23 changed files with 415 additions and 742 deletions

View file

@ -73,27 +73,25 @@ TEST_CASE(create_schema)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_schema(database);
auto schema_or_error = database->get_schema("TESTSCHEMA");
EXPECT(!schema_or_error.is_error());
auto schema = MUST(database->get_schema("TESTSCHEMA"));
}
TEST_CASE(create_table)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto table_or_error = database->get_table("TESTSCHEMA", "TESTTABLE");
EXPECT(!table_or_error.is_error());
auto table = MUST(database->get_table("TESTSCHEMA", "TESTTABLE"));
}
TEST_CASE(insert_into_table)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database, "INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES ( 'Test', 42 );");
EXPECT(result.size() == 1);
@ -101,9 +99,8 @@ TEST_CASE(insert_into_table)
auto table = MUST(database->get_table("TESTSCHEMA", "TESTTABLE"));
int count = 0;
auto rows_or_error = database->select_all(*table);
EXPECT(!rows_or_error.is_error());
for (auto& row : rows_or_error.value()) {
auto rows = TRY_OR_FAIL(database->select_all(*table));
for (auto& row : rows) {
EXPECT_EQ(row["TEXTCOLUMN"].to_deprecated_string(), "Test");
EXPECT_EQ(row["INTCOLUMN"].to_int<i32>(), 42);
count++;
@ -115,7 +112,7 @@ TEST_CASE(insert_into_table_wrong_data_types)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = try_execute(database, "INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES (43, 'Test_2');");
EXPECT(result.is_error());
@ -126,7 +123,7 @@ TEST_CASE(insert_into_table_multiple_tuples_wrong_data_types)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = try_execute(database, "INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES ('Test_1', 42), (43, 'Test_2');");
EXPECT(result.is_error());
@ -137,7 +134,7 @@ TEST_CASE(insert_wrong_number_of_values)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = try_execute(database, "INSERT INTO TestSchema.TestTable VALUES ( 42 );");
EXPECT(result.is_error());
@ -148,7 +145,7 @@ TEST_CASE(insert_identifier_as_value)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = try_execute(database, "INSERT INTO TestSchema.TestTable VALUES ( identifier, 42 );");
EXPECT(result.is_error());
@ -159,7 +156,7 @@ TEST_CASE(insert_quoted_identifier_as_value)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = try_execute(database, "INSERT INTO TestSchema.TestTable VALUES ( \"QuotedIdentifier\", 42 );");
EXPECT(result.is_error());
@ -170,15 +167,14 @@ TEST_CASE(insert_without_column_names)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database, "INSERT INTO TestSchema.TestTable VALUES ('Test_1', 42), ('Test_2', 43);");
EXPECT(result.size() == 2);
auto table = MUST(database->get_table("TESTSCHEMA", "TESTTABLE"));
auto rows_or_error = database->select_all(*table);
EXPECT(!rows_or_error.is_error());
EXPECT_EQ(rows_or_error.value().size(), 2u);
auto rows = TRY_OR_FAIL(database->select_all(*table));
EXPECT_EQ(rows.size(), 2u);
}
TEST_CASE(insert_with_placeholders)
@ -186,7 +182,7 @@ TEST_CASE(insert_with_placeholders)
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
{
@ -238,7 +234,7 @@ TEST_CASE(insert_and_retrieve_long_text_value)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
StringBuilder sb;
@ -256,7 +252,7 @@ TEST_CASE(select_from_empty_table)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database, "SELECT * FROM TestSchema.TestTable;");
EXPECT(result.is_empty());
@ -266,7 +262,7 @@ TEST_CASE(select_from_table)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -284,7 +280,7 @@ TEST_CASE(select_with_column_names)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -303,7 +299,7 @@ TEST_CASE(select_with_nonexisting_column_name)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -323,7 +319,7 @@ TEST_CASE(select_with_where)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -344,7 +340,7 @@ TEST_CASE(select_cross_join)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_two_tables(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable1 ( TextColumn1, IntColumn ) VALUES "
@ -377,7 +373,7 @@ TEST_CASE(select_inner_join)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_two_tables(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable1 ( TextColumn1, IntColumn ) VALUES "
@ -410,7 +406,7 @@ TEST_CASE(select_with_like)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -468,7 +464,7 @@ TEST_CASE(select_with_order)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -500,7 +496,7 @@ TEST_CASE(select_with_regexp)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -535,7 +531,7 @@ TEST_CASE(handle_regexp_errors)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -551,7 +547,7 @@ TEST_CASE(select_with_order_two_columns)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -580,7 +576,7 @@ TEST_CASE(select_with_order_by_column_not_in_result)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database,
"INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES "
@ -604,7 +600,7 @@ TEST_CASE(select_with_limit)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 100; count++) {
auto result = execute(database,
@ -620,7 +616,7 @@ TEST_CASE(select_with_limit_and_offset)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 100; count++) {
auto result = execute(database,
@ -635,7 +631,7 @@ TEST_CASE(select_with_order_limit_and_offset)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 100; count++) {
auto result = execute(database,
@ -660,7 +656,7 @@ TEST_CASE(select_with_limit_out_of_bounds)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 100; count++) {
auto result = execute(database,
@ -675,7 +671,7 @@ TEST_CASE(select_with_offset_out_of_bounds)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 100; count++) {
auto result = execute(database,
@ -690,7 +686,7 @@ TEST_CASE(describe_table)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
auto result = execute(database, "DESCRIBE TABLE TestSchema.TestTable;");
EXPECT_EQ(result.size(), 2u);
@ -706,7 +702,7 @@ TEST_CASE(binary_operator_execution)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -780,7 +776,7 @@ TEST_CASE(binary_operator_failure)
{
ScopeGuard guard([]() { unlink(db_name); });
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -831,14 +827,14 @@ TEST_CASE(describe_large_table_after_persist)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "CREATE TABLE Cookies ( name TEXT, value TEXT, same_site INTEGER, creation_time INTEGER, last_access_time INTEGER, expiry_time INTEGER, domain TEXT, path TEXT, secure INTEGER, http_only INTEGER, host_only INTEGER, persistent INTEGER );");
EXPECT_EQ(result.command(), SQL::SQLCommand::Create);
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "DESCRIBE TABLE Cookies;");
EXPECT_EQ(result.size(), 12u);
@ -850,7 +846,7 @@ TEST_CASE(delete_single_row)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -863,7 +859,7 @@ TEST_CASE(delete_single_row)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
execute(database, "DELETE FROM TestSchema.TestTable WHERE (IntColumn = 4);");
@ -877,7 +873,7 @@ TEST_CASE(delete_single_row)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT IntColumn FROM TestSchema.TestTable ORDER BY IntColumn;");
EXPECT_EQ(result.size(), 9u);
@ -894,7 +890,7 @@ TEST_CASE(delete_multiple_rows)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -907,7 +903,7 @@ TEST_CASE(delete_multiple_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
execute(database, "DELETE FROM TestSchema.TestTable WHERE (IntColumn >= 4);");
@ -919,7 +915,7 @@ TEST_CASE(delete_multiple_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT IntColumn FROM TestSchema.TestTable ORDER BY IntColumn;");
EXPECT_EQ(result.size(), 4u);
@ -934,7 +930,7 @@ TEST_CASE(delete_all_rows)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -947,7 +943,7 @@ TEST_CASE(delete_all_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
execute(database, "DELETE FROM TestSchema.TestTable;");
@ -956,7 +952,7 @@ TEST_CASE(delete_all_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT * FROM TestSchema.TestTable;");
EXPECT(result.is_empty());
@ -968,7 +964,7 @@ TEST_CASE(update_single_row)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -992,7 +988,7 @@ TEST_CASE(update_single_row)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT IntColumn FROM TestSchema.TestTable ORDER BY IntColumn;");
EXPECT_EQ(result.size(), 10u);
@ -1013,7 +1009,7 @@ TEST_CASE(update_multiple_rows)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -1035,7 +1031,7 @@ TEST_CASE(update_multiple_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT IntColumn FROM TestSchema.TestTable ORDER BY IntColumn;");
EXPECT_EQ(result.size(), 10u);
@ -1054,7 +1050,7 @@ TEST_CASE(update_all_rows)
ScopeGuard guard([]() { unlink(db_name); });
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
create_table(database);
for (auto count = 0; count < 10; ++count) {
@ -1072,7 +1068,7 @@ TEST_CASE(update_all_rows)
}
{
auto database = SQL::Database::construct(db_name);
EXPECT(!database->open().is_error());
MUST(database->open());
auto result = execute(database, "SELECT IntColumn FROM TestSchema.TestTable ORDER BY IntColumn;");
EXPECT_EQ(result.size(), 10u);