Skip to content
Snippets Groups Projects

ENH: Test queries and entity retrieval

Merged Florian Spreckelsen requested to merge f-extended-c into dev
Files
5
+ 72
0
@@ -65,4 +65,76 @@ end
@test CaosDB.Connection.connect_manually() != nothing
end
@testset "Test transaction" begin
# transactions can be created from connection names or objects
connection = CaosDB.Connection.connect()
@test create_transaction(connection) != nothing
@test create_transaction() != nothing
@test create_transaction("julialib-integrationtest") != nothing
# Construct and execute a transaction manually
transaction = create_transaction()
add_query(transaction, "FIND ENTITY WITH id=-1")
execute(transaction)
result_set = get_result_set(transaction)
results = get_results(result_set)
# There is no entity with id=-1
@test length(results) == 0
# result-sets can be omitted
transaction_results = get_results(transaction)
@test length(transaction_results) == 0
# No count query, so this should be -1
@test get_count_result(transaction) == -1
# Also works directly, with or without connection being
# specified.
query_results1 = execute_query("FIND ENTITY WITH id=-1")
@test length(query_results1) == 0
query_results2 = execute_query("FIND ENTITY WITH id=-1", "julialib-integrationtest")
@test length(query_results2) == 0
query_results3 = execute_query("FIND ENTITY WITH id=-1", connection)
@test length(query_results3) == 0
# COUNT queries have to be conducted manually
count_transaction = create_transaction()
add_query(count_transaction, "COUNT ENTITY WITH id=-1")
execute(count_transaction)
# Still an empty result set
@test get_count_result(count_transaction) == 0
end
@testset "Test entity retrieval" begin
single_retrieve_transaction = create_transaction()
add_retrieve_by_id(single_retrieve_transaction, "20")
execute(single_retrieve_transaction)
results = get_results(single_retrieve_transaction)
@test length(results) == 1
@test has_errors(results[1]) == false
@test get_name(results[1]) == "name"
multi_retrieve_transaction = create_transaction()
add_retrieve_by_id(multi_retrieve_transaction, ["20", "21"])
execute(multi_retrieve_transaction)
results = get_results(multi_retrieve_transaction)
@test length(results) == 2
@test get_name(results[1]) == "name"
@test get_name(results[2]) == "unit"
# Helper functions
ent = retrieve("20")
@test get_name(ent) == "name"
results = retrieve(["20", "21"])
@test length(results) == 2
@test get_name(results[1]) == "name"
@test get_name(results[2]) == "unit"
# id=22 doesn't exist
@test_throws CaosDB.Exceptions.GenericCaosDBException retrieve("22")
@test_throws CaosDB.Exceptions.GenericCaosDBException retrieve(["20", "21", "22"])
end
end
Loading