浏览代码

LibSQL: Test INSERT statement with wrong data types

Mahmoud Mandour 3 年之前
父节点
当前提交
4df85840c3
共有 1 个文件被更改,包括 20 次插入0 次删除
  1. 20 0
      Tests/LibSQL/TestSqlStatementExecution.cpp

+ 20 - 0
Tests/LibSQL/TestSqlStatementExecution.cpp

@@ -84,6 +84,26 @@ TEST_CASE(insert_into_table)
     EXPECT_EQ(count, 1);
     EXPECT_EQ(count, 1);
 }
 }
 
 
+TEST_CASE(insert_into_table_wrong_data_types)
+{
+    ScopeGuard guard([]() { unlink(db_name); });
+    auto database = SQL::Database::construct(db_name);
+    create_table(database);
+    auto result = execute(database, "INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES (43, 'Test_2');");
+    EXPECT(result->inserted() == 0);
+    EXPECT(result->error().code == SQL::SQLErrorCode::InvalidValueType);
+}
+
+TEST_CASE(insert_into_table_multiple_tuples_wrong_data_types)
+{
+    ScopeGuard guard([]() { unlink(db_name); });
+    auto database = SQL::Database::construct(db_name);
+    create_table(database);
+    auto result = execute(database, "INSERT INTO TestSchema.TestTable ( TextColumn, IntColumn ) VALUES ('Test_1', 42), (43, 'Test_2');");
+    EXPECT(result->inserted() == 0);
+    EXPECT(result->error().code == SQL::SQLErrorCode::InvalidValueType);
+}
+
 TEST_CASE(select_from_table)
 TEST_CASE(select_from_table)
 {
 {
     ScopeGuard guard([]() { unlink(db_name); });
     ScopeGuard guard([]() { unlink(db_name); });