[libgda] Adding test for unsupported operation



commit 586f0425abf95414977f1d20d2738d3b825e9f62
Author: Pavlo Solntsev <p sun fun gmail com>
Date:   Thu May 28 13:05:33 2020 -0500

    Adding test for unsupported operation
    
    SQLite3 doesn't support DROP operation for a column.

 tests/test-server-operation-sqlite.c | 63 ++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
---
diff --git a/tests/test-server-operation-sqlite.c b/tests/test-server-operation-sqlite.c
index 25bccf838..f7e6ca562 100644
--- a/tests/test-server-operation-sqlite.c
+++ b/tests/test-server-operation-sqlite.c
@@ -1054,6 +1054,62 @@ test_server_operation_operations_db_rename_column (TestObjectFixture *fixture,
   g_object_unref (tproject);
 }
 
+static void
+test_server_operation_operations_db_unsupported (TestObjectFixture *fixture,
+                                                   G_GNUC_UNUSED gconstpointer user_data)
+{
+
+/* Define table Project */
+  GdaDbTable *tproject = gda_db_table_new ();
+  gda_db_base_set_name (GDA_DB_BASE (tproject), "Project");
+  gda_db_table_set_is_temp (tproject, FALSE);
+
+  /* Defining column id */
+  GdaDbColumn *pid = gda_db_column_new ();
+  gda_db_column_set_name (pid, "id");
+  gda_db_column_set_type (pid, G_TYPE_INT);
+  gda_db_column_set_nnul (pid, TRUE);
+  gda_db_column_set_autoinc (pid, TRUE);
+  gda_db_column_set_unique (pid, TRUE);
+  gda_db_column_set_pkey (pid, TRUE);
+
+  gda_db_table_append_column (tproject, pid);
+
+  g_object_unref (pid);
+
+  /* Defining column name */
+  GdaDbColumn *pname = gda_db_column_new ();
+  gda_db_column_set_name (pname, "name");
+  gda_db_column_set_type (pname, G_TYPE_STRING);
+  gda_db_column_set_size (pname, 50);
+  gda_db_column_set_nnul (pname, TRUE);
+  gda_db_column_set_autoinc (pname, FALSE);
+  gda_db_column_set_unique (pname, TRUE);
+  gda_db_column_set_pkey (pname, FALSE);
+  gda_db_column_set_default (pname, "Default_name");
+
+  gda_db_table_append_column (tproject, pname);
+
+  g_object_unref (pname);
+
+/* Create table */
+  gboolean res = gda_ddl_modifiable_create (GDA_DDL_MODIFIABLE (tproject), fixture->cnc, NULL, NULL);
+
+  g_assert_true (res);
+
+  GError *error = NULL;
+  res = gda_ddl_modifiable_drop (GDA_DDL_MODIFIABLE (pname), fixture->cnc, tproject, &error);
+
+  if (error != NULL) {
+    g_print ("Error: %s\n", error->message != NULL ? error->message : "No detail");
+    g_clear_error (&error);
+  }
+
+  g_assert_false (res);
+
+  g_object_unref (tproject);
+}
+
 gint
 main(gint argc, gchar *argv[])
 {
@@ -1081,6 +1137,13 @@ main(gint argc, gchar *argv[])
               test_server_operation_start,
               test_server_operation_operations_db_rename_column,
               test_server_operation_finish);
+
+  g_test_add ("/test-server-operation-sqlite/gda-db-unsupported",
+              TestObjectFixture,
+              NULL,
+              test_server_operation_start,
+              test_server_operation_operations_db_unsupported,
+              test_server_operation_finish);
   return g_test_run();
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]