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;
+