-
Timm Fitschen authoredTimm Fitschen authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test_reference_values.sql 4.76 KiB
USE _caosdb_schema_unit_tests;
BEGIN;
CALL tap.no_plan();
-- #####################################################################
-- TEST insertEntityProperty without Versioning
-- #####################################################################
-- SETUP
INSERT INTO transactions (srid,seconds,nanos,username,realm) VALUES
("SRIDbla", 1234, 2345, "me", "home"),
("SRIDblub", 2345, 3465, "me", "home"),
("SRIDblieb", 3456, 4576, "you", "home");
SET @EntityID=99;
SET @PropertyID=11;
SET @Value=50;
-- switch off versioning
DELETE FROM feature_config WHERE _key = "ENTITY_VERSIONING";
-- TEST insertEntityProperty without Versioning
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;
SELECT tap.eq(99, entity_id, "entity ok") FROM reference_data;
SELECT tap.eq(11, property_id, "property ok") FROM reference_data;
SELECT tap.eq(50, value, "value ok") FROM reference_data;
SELECT tap.eq("FIX", status, "status ok") FROM reference_data;
SELECT tap.eq("0", pidx, "pidx ok") FROM reference_data;
SELECT tap.eq(NULL, value_iversion, "value_iversion ok") FROM reference_data;
-- clean up
DELETE FROM reference_data WHERE domain_id=0 AND entity_id=99;
-- #####################################################################
-- TODO TEST insertEntityProperty with Versioning
-- #####################################################################
-- switch on versioning
INSERT INTO feature_config (_key, _value) VALUES ("ENTITY_VERSIONING", "ENABLED");
-- TEST insertEntityProperty with Versioning - REFERENCE HEAD
-- TODO assert throws
SET @VALUE="50@";
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;
SELECT tap.eq(99, entity_id, "entity ok") FROM reference_data;
SELECT tap.eq(11, property_id, "property ok") FROM reference_data;
SELECT tap.eq(50, value, "value ok") FROM reference_data;
SELECT tap.eq("FIX", status, "status ok") FROM reference_data;
SELECT tap.eq("0", pidx, "pidx ok") FROM reference_data;
SELECT tap.eq(value_iversion, NULL, "value_iversion ok") FROM reference_data;
DELETE FROM reference_data WHERE domain_id=0 AND entity_id=99;
SET @VALUE="50";
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;
SELECT tap.eq(99, entity_id, "entity ok") FROM reference_data;
SELECT tap.eq(11, property_id, "property ok") FROM reference_data;
SELECT tap.eq(50, value, "value ok") FROM reference_data;
SELECT tap.eq("FIX", status, "status ok") FROM reference_data;
SELECT tap.eq("0", pidx, "pidx ok") FROM reference_data;
SELECT tap.eq(value_iversion, NULL, "value_iversion ok") FROM reference_data;
DELETE FROM reference_data WHERE domain_id=0 AND entity_id=99;
-- TEST insertEntityProperty with Versioning - Reference version
CALL insert_single_child_version(@EntityID, "hashbla", "versionbla", NULL, "SRIDbla");
CALL insert_single_child_version(@EntityID, "hashblub", "versionblub", "versionbla", "SRIDblub");
SET @VALUE="50@versionbla";
CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data", @Value,
NULL, "FIX", NULL, NULL, NULL, NULL, 0);
SELECT tap.eq(0, domain_id, "domain ok") FROM reference_data;
SELECT tap.eq(99, entity_id, "entity ok") FROM reference_data;
SELECT tap.eq(11, property_id, "property ok") FROM reference_data;
SELECT tap.eq(50, value, "value ok") FROM reference_data;
SELECT tap.eq("FIX", status, "status ok") FROM reference_data;
SELECT tap.eq("0", pidx, "pidx ok") FROM reference_data;
SELECT tap.eq(value_iversion, "1", "value_iversion ok") FROM reference_data;
DELETE FROM reference_data WHERE domain_id=0 AND entity_id=99;
SET @VALUE="50@versionblub";
CALL insertEntityProperty(0, @EntityID, @PropertyID, "reference_data", @Value,
NULL, "FIX", NULL, NULL, NULL, NULL, 0);
SELECT tap.eq(0, domain_id, "domain ok") FROM reference_data;
SELECT tap.eq(99, entity_id, "entity ok") FROM reference_data;
SELECT tap.eq(11, property_id, "property ok") FROM reference_data;
SELECT tap.eq(50, value, "value ok") FROM reference_data;
SELECT tap.eq("FIX", status, "status ok") FROM reference_data;
SELECT tap.eq("0", pidx, "pidx ok") FROM reference_data;
SELECT tap.eq(value_iversion, "2", "value_iversion ok") FROM reference_data;
-- TODO switch expected/actual
-- #####################################################################
-- TEST retrieveEntityProperty without Versioning
-- #####################################################################
CALL tap.finish();
ROLLBACK;