diff --git a/test/runtests.jl b/test/runtests.jl index af8d1df8eea1d4c76ec7646918b53338982d4c90..5d334e4f211d43fb07e0ba4c268ae706dec83307 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -147,9 +147,9 @@ using CaosDB # properties can be accessed as a list # TODO(henrik, daniel) - # @test CaosDB.Entity.get_value( - # CaosDB.Entity.get_properties(rec_with_parent_and_props)[1], - # ) == "2" + @test CaosDB.Entity.get_value( + CaosDB.Entity.get_properties(rec_with_parent_and_props)[1], + ) == "2" type, is_ref, is_list = CaosDB.Entity.get_datatype( CaosDB.Entity.get_properties(rec_with_parent_and_props)[2], ) @@ -180,22 +180,31 @@ using CaosDB ) string_prop = CaosDB.Entity.create_property_entity(name = "StringProp", datatype = "TEXT") + ref_prop = CaosDB.Entity.create_property_entity( + name = "RefProp", + datatype = "MyRefType", + is_reference = true, + ) CaosDB.Entity.set_value(int_prop, 123) CaosDB.Entity.set_value(double_prop, 10.246) CaosDB.Entity.set_value(bool_prop, true) CaosDB.Entity.set_value(string_prop, "Hello World") + CaosDB.Entity.set_value(ref_prop, "some_id") @test CaosDB.Entity.get_value(int_prop) == 123 @test CaosDB.Entity.get_value(double_prop) == 10.246 @test CaosDB.Entity.get_value(bool_prop) === true @test CaosDB.Entity.get_value(string_prop) == "Hello World" + @test CaosDB.Entity.get_value(ref_prop) == "some_id" @test isa(CaosDB.Entity.get_value(int_prop), Integer) @test isa(CaosDB.Entity.get_value(double_prop), Number) @test isa(CaosDB.Entity.get_value(bool_prop), Bool) @test isa(CaosDB.Entity.get_value(string_prop), String) + @test isa(CaosDB.Entity.get_value(ref_prop), String) @test CaosDB.Entity.get_datatype(int_prop) == ("INTEGER", false, false) @test CaosDB.Entity.get_datatype(double_prop) == ("DOUBLE", false, false) @test CaosDB.Entity.get_datatype(bool_prop) == ("BOOLEAN", false, false) @test CaosDB.Entity.get_datatype(string_prop) == ("TEXT", false, false) + @test CaosDB.Entity.get_datatype(ref_prop) == ("MyRefType", true, false) """ Test lists """ int_list_prop = CaosDB.Entity.create_property_entity( @@ -218,22 +227,32 @@ using CaosDB datatype = "TEXT", is_list = true, ) + ref_list_prop = CaosDB.Entity.create_property_entity( + name = "RefListProp", + datatype = "MyRefType", + is_list = true, + is_reference = true, + ) CaosDB.Entity.set_value(int_list_prop, [123, 456]) CaosDB.Entity.set_value(double_list_prop, [10.246, 3.14]) CaosDB.Entity.set_value(bool_list_prop, [true, false]) CaosDB.Entity.set_value(string_list_prop, ["Hello", "World"]) + CaosDB.Entity.set_value(ref_list_prop, ["some_id", "another_id"]) @test CaosDB.Entity.get_value(int_list_prop) == [123, 456] @test CaosDB.Entity.get_value(double_list_prop) == [10.246, 3.14] @test CaosDB.Entity.get_value(bool_list_prop) === [true, false] @test CaosDB.Entity.get_value(string_list_prop) == ["Hello", "World"] + @test CaosDB.Entity.get_value(ref_list_prop) == ["some_id", "another_id"] @test isa(CaosDB.Entity.get_value(int_list_prop), Vector{Cint}) @test isa(CaosDB.Entity.get_value(double_list_prop), Vector{Cdouble}) @test isa(CaosDB.Entity.get_value(bool_list_prop), Vector{Bool}) @test isa(CaosDB.Entity.get_value(string_list_prop), Vector{String}) + @test isa(CaosDB.Entity.get_value(ref_list_prop), Vector{String}) @test CaosDB.Entity.get_datatype(int_list_prop) == ("INTEGER", false, true) @test CaosDB.Entity.get_datatype(double_list_prop) == ("DOUBLE", false, true) @test CaosDB.Entity.get_datatype(bool_list_prop) == ("BOOLEAN", false, true) @test CaosDB.Entity.get_datatype(string_list_prop) == ("TEXT", false, true) + @test CaosDB.Entity.get_datatype(ref_list_prop) == ("MyRefType", true, true) end @testset "Property properties" begin int_prop = CaosDB.Entity.create_property(name = "IntProp", datatype = "INTEGER") @@ -243,22 +262,31 @@ using CaosDB CaosDB.Entity.create_property(name = "BoolProp", datatype = "BOOLEAN") string_prop = CaosDB.Entity.create_property(name = "StringProp", datatype = "TEXT") + ref_prop = CaosDB.Entity.create_property( + name = "RefProp", + datatype = "MyRefType", + is_reference = true, + ) CaosDB.Entity.set_value(int_prop, 123) CaosDB.Entity.set_value(double_prop, 10.246) CaosDB.Entity.set_value(bool_prop, true) CaosDB.Entity.set_value(string_prop, "Hello World") + CaosDB.Entity.set_value(ref_prop, "some_id") @test CaosDB.Entity.get_value(int_prop) == 123 @test CaosDB.Entity.get_value(double_prop) == 10.246 @test CaosDB.Entity.get_value(bool_prop) === true @test CaosDB.Entity.get_value(string_prop) == "Hello World" + @test CaosDB.Entity.get_value(ref_prop) == "some_id" @test isa(CaosDB.Entity.get_value(int_prop), Integer) @test isa(CaosDB.Entity.get_value(double_prop), Number) @test isa(CaosDB.Entity.get_value(bool_prop), Bool) @test isa(CaosDB.Entity.get_value(string_prop), String) + @test isa(CaosDB.Entity.get_value(ref_prop), String) @test CaosDB.Entity.get_datatype(int_prop) == ("INTEGER", false, false) @test CaosDB.Entity.get_datatype(double_prop) == ("DOUBLE", false, false) @test CaosDB.Entity.get_datatype(bool_prop) == ("BOOLEAN", false, false) @test CaosDB.Entity.get_datatype(string_prop) == ("TEXT", false, false) + @test CaosDB.Entity.get_datatype(ref_prop) == ("MyRefType", true, false) """ Test lists """ int_list_prop = CaosDB.Entity.create_property( @@ -281,22 +309,32 @@ using CaosDB datatype = "TEXT", is_list = true, ) + ref_list_prop = CaosDB.Entity.create_property( + name = "RefListProp", + datatype = "MyRefType", + is_list = true, + is_reference = true, + ) CaosDB.Entity.set_value(int_list_prop, [123, 456]) CaosDB.Entity.set_value(double_list_prop, [10.246, 3.14]) CaosDB.Entity.set_value(bool_list_prop, [true, false]) CaosDB.Entity.set_value(string_list_prop, ["Hello", "World"]) + CaosDB.Entity.set_value(ref_list_prop, ["some_id", "another_id"]) @test CaosDB.Entity.get_value(int_list_prop) == [123, 456] @test CaosDB.Entity.get_value(double_list_prop) == [10.246, 3.14] @test CaosDB.Entity.get_value(bool_list_prop) === [true, false] @test CaosDB.Entity.get_value(string_list_prop) == ["Hello", "World"] + @test CaosDB.Entity.get_value(ref_list_prop) == ["some_id", "another_id"] @test isa(CaosDB.Entity.get_value(int_list_prop), Vector{Cint}) @test isa(CaosDB.Entity.get_value(double_list_prop), Vector{Cdouble}) @test isa(CaosDB.Entity.get_value(bool_list_prop), Vector{Bool}) @test isa(CaosDB.Entity.get_value(string_list_prop), Vector{String}) + @test isa(CaosDB.Entity.get_value(ref_list_prop), Vector{String}) @test CaosDB.Entity.get_datatype(int_list_prop) == ("INTEGER", false, true) @test CaosDB.Entity.get_datatype(double_list_prop) == ("DOUBLE", false, true) @test CaosDB.Entity.get_datatype(bool_list_prop) == ("BOOLEAN", false, true) @test CaosDB.Entity.get_datatype(string_list_prop) == ("TEXT", false, true) + @test CaosDB.Entity.get_datatype(ref_list_prop) == ("MyRefType", true, true) end end end