diff --git a/tests/test_insert_update_delete.sql b/tests/test_insert_update_delete.sql new file mode 100644 index 0000000000000000000000000000000000000000..7a8dc38ab0059b931d4215fdbbc344d8db5c7aed --- /dev/null +++ b/tests/test_insert_update_delete.sql @@ -0,0 +1,73 @@ +USE _caosdb_schema_unit_tests; +BEGIN; +CALL tap.no_plan(); + +-- SETUP + +CALL entityACL(@ACLID1, "{acl1}"); +CALL entityACL(@ACLID2, "{acl2}"); +SELECT id into @TextDatatypeID FROM entities WHERE name ="TEXT" and role="DATATYPE"; + +-- TESTS + +-- TEST insertEntity +SELECT COUNT(id) INTO @x FROM entities WHERE id>100; +SELECT tap.eq(@x, 0, "No entities"); +CALL insertEntity("EntityName", "EntityDesc", "RECORDTYPE", "{acl1}"); + + +SELECT COUNT(id) INTO @x FROM entities WHERE name="EntityName"; +SELECT tap.eq(@x, 1, "Entity has been inserted"); + +SELECT acl INTO @x FROM entities WHERE name="EntityName"; +SELECT tap.eq(@x, @ACLID1, "correct acl id had been assigned"); + +SELECT id INTO @EntityID FROM entities WHERE name="EntityName"; +SELECT tap.ok(@EntityID > 100, "EntityID greater 100"); + + +-- TEST insertEntityProperty + +CALL insertEntity("AProperty", "APropDesc", "PROPERTY", "{acl1}"); +SELECT id INTO @PropID FROM entities WHERE name="AProperty"; +INSERT INTO data_type (domain_id, entity_id, property_id, datatype) VALUES (0, 0, @PropID, @TextDatatypeID); + +SELECT COUNT(*) INTO @x FROM null_data; +SELECT tap.eq(@x, 0, "No data in null_data table"); +CALL insertEntityProperty(0, @EntityID, @PropID, "null_data", NULL, NULL, "RECOMMENDED", NULL, NULL, NULL, NULL, 0); +SELECT COUNT(*) INTO @x FROM null_data; +SELECT tap.eq(@x, 1, "One row in null_data table"); + +-- TEST updateEntity + +CALL updateEntity(@EntityID, "NewEntityName", "NewEntityDesc", "RECORD", NULL, NULL, "{acl2}"); + +SELECT COUNT(id) INTO @x FROM entities WHERE name="EntityName"; +SELECT tap.eq(@x, 0, "Old Entity name not present"); +SELECT COUNT(id) INTO @x FROM entities WHERE name="NewEntityName"; +SELECT tap.eq(@x, 1, "Entity name has been updated"); + +SELECT acl INTO @x FROM entities WHERE name="NewEntityName"; +SELECT tap.eq(@x, @ACLID2, "acl has been updated"); + + +-- TEST deleteEntityProperties + +CALL deleteEntityProperties(@EntityID); +SELECT COUNT(*) INTO @x FROM null_data; +SELECT tap.eq(@x, 0, "data removed from null_data table"); + +-- TEST deleteEntity + +CALL deleteEntity(@EntityID); +CALL deleteEntity(@PropID); +SELECT COUNT(id) INTO @x FROM entities WHERE id>100; +SELECT tap.eq(@x, 0, "entity deleted"); + + + +-- TESTS END + +CALL tap.finish(); +ROLLBACK; +