From 03ceca3bee46026f2a5867db732c0d0328b36f4c Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Sat, 17 Feb 2024 23:19:35 +0100
Subject: [PATCH] TST: fix unit tests

---
 procedures/insertEntity.sql     |  1 +
 tests/test_autotap.sql          | 50 +++++++++++++++------------------
 tests/test_directory_patch.sql  | 39 -------------------------
 tests/test_reference_values.sql | 23 ++++++---------
 4 files changed, 32 insertions(+), 81 deletions(-)
 delete mode 100644 tests/test_directory_patch.sql

diff --git a/procedures/insertEntity.sql b/procedures/insertEntity.sql
index 9df606a..00de4f7 100644
--- a/procedures/insertEntity.sql
+++ b/procedures/insertEntity.sql
@@ -46,6 +46,7 @@ Select
 (Version)
 */
 CREATE PROCEDURE db_5_0.insertEntity(
+    in EntityID VARCHAR(255),
     in EntityName VARCHAR(255),
     in EntityDesc TEXT,
     in EntityRole VARCHAR(255),
diff --git a/tests/test_autotap.sql b/tests/test_autotap.sql
index 04c2320..117c9a6 100644
--- a/tests/test_autotap.sql
+++ b/tests/test_autotap.sql
@@ -724,7 +724,7 @@ SELECT tap.col_collation_is('_caosdb_schema_unit_tests','entities','description'
 -- COLUMN entities.role
 
 SELECT tap.has_column('_caosdb_schema_unit_tests','entities','role','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','role','enum(\'RECORDTYPE\',\'RECORD\',\'FILE\',\'_REPLACEMENT\',\'PROPERTY\',\'DATATYPE\',\'ROLE\',\'QUERYTEMPLATE\',\'DIRECTORY\')','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','entities','role','enum(\'RECORDTYPE\',\'RECORD\',\'FILE\',\'_REPLACEMENT\',\'PROPERTY\',\'DATATYPE\',\'ROLE\',\'QUERYTEMPLATE\')','');
 SELECT tap.col_extra_is('_caosdb_schema_unit_tests','entities','role','','');
 SELECT tap.col_default_is('_caosdb_schema_unit_tests','entities','role',NULL,'');
 SELECT tap.col_charset_is('_caosdb_schema_unit_tests','entities','role','utf8','');
@@ -909,15 +909,23 @@ SELECT tap.table_collation_is('_caosdb_schema_unit_tests','files','utf8_unicode_
 SELECT tap.table_engine_is('_caosdb_schema_unit_tests','files','InnoDB','');
 
 -- COLUMNS
-SELECT tap.columns_are('_caosdb_schema_unit_tests','files','`file_id`,`path`,`size`,`hash`,`checked_timestamp`,`parent_directory`,`mimetype`,`file_storage_id`,`file_key`','');
-
--- TODO COLUMN files.parent_directory
-SELECT tap.has_column('_caosdb_schema_unit_tests','files','parent_directory','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','parent_directory','int(10) unsigned','');
-SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','parent_directory','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','parent_directory','NULL','');
-SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','parent_directory',NULL,'');
-SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','parent_directory',NULL,'');
+SELECT tap.columns_are('_caosdb_schema_unit_tests','files','`file_id`,`path`,`size`,`hash`,`hash_algorithm`,`checked_timestamp`,`mimetype`,`file_storage_id`,`file_key`','');
+
+---- TODO COLUMN files.parent_directory
+--SELECT tap.has_column('_caosdb_schema_unit_tests','files','parent_directory','');
+--SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','parent_directory','int(10) unsigned','');
+--SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','parent_directory','','');
+--SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','parent_directory','NULL','');
+--SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','parent_directory',NULL,'');
+--SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','parent_directory',NULL,'');
+
+-- TODO COLUMN files.hash_algorithm
+SELECT tap.has_column('_caosdb_schema_unit_tests','files','hash_algorithm','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','hash_algorithm','varbinary(255)','');
+SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','hash_algorithm','','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','hash_algorithm','\'SHA-512\'','');
+SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','hash_algorithm',NULL,'');
+SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','hash_algorithm',NULL,'');
 
 -- TODO COLUMN files.mimetype
 SELECT tap.has_column('_caosdb_schema_unit_tests','files','mimetype','');
@@ -937,7 +945,7 @@ SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','file_storage_id
 
 -- TODO COLUMN files.file_key
 SELECT tap.has_column('_caosdb_schema_unit_tests','files','file_key','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','file_key','varbinary(16175)','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','file_key','varbinary(16000)','');
 SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','file_key','','');
 SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','file_key',NULL,'');
 SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','file_key',NULL,'');
@@ -955,7 +963,7 @@ SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','file_id',NULL,'
 -- COLUMN files.path
 
 SELECT tap.has_column('_caosdb_schema_unit_tests','files','path','');
-SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','path','varchar(16175)','');
+SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','path','varchar(16000)','');
 SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','path','','');
 SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','path',NULL,'');
 SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','path','utf8','');
@@ -966,7 +974,7 @@ SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','path','utf8_uni
 SELECT tap.has_column('_caosdb_schema_unit_tests','files','size','');
 SELECT tap.col_column_type_is('_caosdb_schema_unit_tests','files','size','bigint(20) unsigned','');
 SELECT tap.col_extra_is('_caosdb_schema_unit_tests','files','size','','');
-SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','size','NULL','');
+SELECT tap.col_default_is('_caosdb_schema_unit_tests','files','size',NULL,'');
 SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','size',NULL,'');
 SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','size',NULL,'');
 
@@ -989,7 +997,7 @@ SELECT tap.col_charset_is('_caosdb_schema_unit_tests','files','checked_timestamp
 SELECT tap.col_collation_is('_caosdb_schema_unit_tests','files','checked_timestamp',NULL,'');
 
 -- CONSTRAINTS
-SELECT tap.constraints_are('_caosdb_schema_unit_tests','files','`PRIMARY`,`fil_file_id_entity`,`path`,`files_ibfk_1`','');
+SELECT tap.constraints_are('_caosdb_schema_unit_tests','files','`PRIMARY`,`fil_file_id_entity`,`path`','');
 
 -- CONSTRAINT files.fil_file_id_entity
 
@@ -1009,13 +1017,6 @@ SELECT tap.col_is_pk('_caosdb_schema_unit_tests','files','`file_id`','');
 SELECT tap.has_constraint('_caosdb_schema_unit_tests','files','path','');
 SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','files','path','UNIQUE','');
 
--- CONSTRAINT files.files_ibfk_1
-
-SELECT tap.has_constraint('_caosdb_schema_unit_tests','files','files_ibfk_1','');
-SELECT tap.constraint_type_is('_caosdb_schema_unit_tests','files','files_ibfk_1','FOREIGN KEY','');
-SELECT tap.fk_on_delete('_caosdb_schema_unit_tests','files','files_ibfk_1','RESTRICT','');
-SELECT tap.fk_on_update('_caosdb_schema_unit_tests','files','files_ibfk_1','RESTRICT','');
-
 
 -- ***************************************************************
 -- TABLE _caosdb_schema_unit_tests.integer_data
@@ -2547,13 +2548,6 @@ SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getChildren',
 SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getChildren','DEFINER','');
 SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getChildren','CONTAINS SQL','');
 
--- PROCEDURES _caosdb_schema_unit_tests.getFileIdByPath
-
-SELECT tap.has_procedure('_caosdb_schema_unit_tests','getFileIdByPath','');
-SELECT tap.procedure_is_deterministic('_caosdb_schema_unit_tests','getFileIdByPath','NO','');
-SELECT tap.procedure_security_type_is('_caosdb_schema_unit_tests','getFileIdByPath','DEFINER','');
-SELECT tap.procedure_sql_data_access_is('_caosdb_schema_unit_tests','getFileIdByPath','CONTAINS SQL','');
-
 -- PROCEDURES _caosdb_schema_unit_tests.initBackReference
 
 SELECT tap.has_procedure('_caosdb_schema_unit_tests','initBackReference','');
diff --git a/tests/test_directory_patch.sql b/tests/test_directory_patch.sql
deleted file mode 100644
index 24da84e..0000000
--- a/tests/test_directory_patch.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-
-USE _caosdb_schema_unit_tests;
-
-BEGIN;
-CALL tap.no_plan();
-
--- SETUP
-INSERT INTO entities (id, role, acl) VALUES
-(52, "FILE", 0),
-(53, "FILE", 0),
-(54, "FILE", 0),
-(55, "FILE", 0),
-(56, "FILE", 0),
-(57, "FILE", 0);
-
-
-INSERT INTO files (file_id, path, size, file_key) VALUES
-(52, "file_at_root_a", 256, "file_at_root_a"),
-(53, "file_at_root_b", 256, "file_at_root_b"),
-(54, "level1/file_at_level1_a", 256, "level1/file_at_level1_a"),
-(55, "level1/file_at_level1_b", 256, "level1/file_at_level1_b"),
-(56, "level1/level2/file_at_level2_a", 256, "level1/level2/file_at_level2_a"),
-(57, "level1/level2/file_at_level2_b", 256, "level1/level2/file_at_level2_b");
-
-
-SELECT tap.eq(COUNT(*), 7, "7 rows in test_files") FROM files;
-
--- TEST _create_dirs
-
-CALL _create_dirs();
-
-SELECT tap.eq(COUNT(*), 9, "9 rows in test_files") FROM files;
-SELECT tap.eq(COUNT(*), 1, "one dir level1") FROM files WHERE path="level1";
-SELECT tap.eq(COUNT(*), 1, "one dir level1/level2") FROM files WHERE path="level1/level2";
-
-
-
-CALL tap.finish();
-ROLLBACK;
diff --git a/tests/test_reference_values.sql b/tests/test_reference_values.sql
index ac97e0b..2b9dcef 100644
--- a/tests/test_reference_values.sql
+++ b/tests/test_reference_values.sql
@@ -28,9 +28,6 @@ CALL tap.no_plan();
 -- #####################################################################
 
 -- SETUP
--- switch off versioning
-DELETE FROM feature_config WHERE _key = "ENTITY_VERSIONING";
-
 DELETE FROM entity_version;
 DELETE FROM transactions;
 INSERT INTO transactions (srid,seconds,nanos,username,realm) VALUES
@@ -112,9 +109,9 @@ SELECT tap.eq(value_iversion, "1", "value_iversion ok 3") FROM reference_data;
 
 DELETE FROM reference_data WHERE domain_id=0 AND entity_id=@InternalEntityID;
 
-SET @VersionedValue=CONCAT(@Value, "@versionblub");
-CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data",
-    @VersionedValue, NULL, "FIX", NULL, NULL, NULL, NULL, 0);
+SET @VALUE="50@versionblub";
+CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data", @Value,
+    NULL, "FIX", NULL, NULL, NULL, NULL, 0);
 
 -- TODO switch expected/actual
 SELECT tap.eq(0, domain_id, "domain ok") FROM reference_data;
@@ -127,17 +124,15 @@ SELECT tap.eq(value_iversion, "2", "value_iversion ok 4") FROM reference_data;
 
 
 -- invalid values throw errors
-SET @VersionedValue=CONCAT(@Value, "@");
+SET @VALUE="50@";
 CALL tap._assert_throws('
-    CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data",
-        @VersionedValue, NULL, "FIX", NULL, NULL, NULL, NULL, 0)', "@ but no
-    version id");
+    CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data", @Value,
+        NULL, "FIX", NULL, NULL, NULL, NULL, 0)', "@ but no version id");
 
-SET @VersionedValue=CONCAT(@Value, "@non-existing-version");
+SET @VALUE="50@non-existing-version";
 CALL tap._assert_throws('
-    CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data",
-        @VersionedValue, NULL, "FIX", NULL, NULL, NULL, NULL, 0)',
-    "non-existing-version id");
+    CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data", @Value,
+        NULL, "FIX", NULL, NULL, NULL, NULL, 0)', "non-existing-version id");
 
 
 -- #####################################################################
-- 
GitLab