Updated Peristance layer to use the new error_hanler based on EWF error library.

Remove once use from DATABASE_ERROR_HANDLER.
Initial support transaction handling.
This commit is contained in:
jvelilla
2014-10-17 08:53:02 -03:00
parent 3c73202a0d
commit 5cb26f0b24
18 changed files with 254 additions and 674 deletions

View File

@@ -0,0 +1,81 @@
note
description: "[
Eiffel tests that can be executed by testing tool.
]"
author: "EiffelStudio test wizard"
date: "$Date$"
revision: "$Revision$"
testing: "type/manual"
class
DATABASE_HANDLER_TEST
inherit
EQA_TEST_SET
redefine
on_prepare,
on_clean
select
default_create
end
ABSTRACT_DB_TEST
rename
default_create as default_db_test
end
feature {NONE} -- Events
on_prepare
-- <Precursor>
do
(create {CLEAN_DB}).clean_db(connection)
end
on_clean
-- <Precursor>
do
end
feature -- Test routines
test_wrong_database_query
-- New test routine
local
l_parameters: STRING_TABLE[detachable ANY]
do
create l_parameters.make (0)
handler.set_query (create {DATABASE_QUERY}.data_reader ("Sellect from users", l_parameters))
handler.execute_query
assert ("Has error:", handler.has_error)
end
test_sequences_of_wrong_and_correct_queries
-- New test routine
local
l_parameters: STRING_TABLE[detachable ANY]
do
create l_parameters.make (0)
handler.set_query (create {DATABASE_QUERY}.data_reader ("Sellect from users;", l_parameters))
handler.execute_query
assert ("Has error:", handler.has_error)
handler.set_query (create {DATABASE_QUERY}.data_reader ("Select * from users;", l_parameters))
handler.execute_query
assert ("Not Has error:",not handler.has_error)
end
feature -- Handler
handler: DATABASE_HANDLER
once
create {DATABASE_HANDLER_IMPL} Result.make (connection )
end
end

View File

@@ -41,7 +41,9 @@ feature {NONE} -- Events
feature -- Test routines
test_new_node
do
note
testing: "execution/isolated"
do
assert ("Empty Nodes", node_provider.nodes.after)
node_provider.new_node (default_node)
assert ("Not empty Nodes after new_node", not node_provider.nodes.after)
@@ -53,6 +55,8 @@ feature -- Test routines
test_update_node
note
testing: "execution/isolated"
local
l_node: CMS_NODE
do
@@ -85,6 +89,8 @@ feature -- Test routines
end
test_update_title
note
testing: "execution/isolated"
local
l_node: CMS_NODE
do
@@ -104,6 +110,8 @@ feature -- Test routines
end
test_update_summary
note
testing: "execution/isolated"
local
l_node: CMS_NODE
do
@@ -123,11 +131,14 @@ feature -- Test routines
end
test_update_content
note
testing: "execution/isolated"
local
l_node: CMS_NODE
do
assert ("Empty Nodes", node_provider.nodes.after)
l_node := custom_node ("<h1> test node udpate </h1>", "Update node", "Test case update")
connection.begin_transaction
node_provider.new_node (l_node)
assert ("Not empty Nodes after new_node", not node_provider.nodes.after)
-- Exist node with id 1
@@ -139,6 +150,7 @@ feature -- Test routines
node_provider.update_node_content (l_un.id,"New Content")
assert ("Exist node with id 1", attached {CMS_NODE} node_provider.node (1) as ll_node and then not (ll_node.content ~ l_un.content) and then ll_node.content ~ "New Content" and then ll_node.summary ~ l_un.summary and then ll_node.title ~ l_un.title)
end
connection.commit
end

View File

@@ -7,6 +7,7 @@
</option>
<setting name="concurrency" value="thread"/>
<library name="base" location="$ISE_LIBRARY\library\base\base-safe.ecf"/>
<library name="model" location="..\..\..\..\model\model-safe.ecf"/>
<library name="crypto" location="$ISE_LIBRARY\unstable\library\text\encryption\crypto\crypto-safe.ecf"/>
<library name="persitence_mysql" location="..\persistence_mysql-safe.ecf" readonly="false"/>
<library name="testing" location="$ISE_LIBRARY\library\testing\testing-safe.ecf"/>

View File

@@ -66,77 +66,6 @@ feature -- Test routines
assert ("Not has nodes:", node_provider.count = 0)
end
test_user_node_nested_transaction_with_rollback_not_supported
note
testing: "execution/isolated"
do
connection.begin_transaction2
user_provider.new_user ("test", "test","test@admin.com")
assert ("Has user:", user_provider.has_user)
node_provider.new_node (default_node)
assert ("Has one node:", node_provider.count = 1)
connection.begin_transaction2
user_provider.new_user ("test1", "test1","test1@admin.com")
assert ("Has user: test1", attached user_provider.user_by_name ("test1"))
connection.rollback2
connection.commit2
assert ("Has user test:", attached user_provider.user_by_name ("test"))
assert ("Has nodes:", node_provider.count = 1)
assert ("Not has user: test1", user_provider.user_by_name ("test1") = Void)
end
test_user_node_nested_transaction_with_commit
note
testing: "execution/isolated"
do
connection.begin_transaction2
user_provider.new_user ("test", "test","test@admin.com")
assert ("Has user:", user_provider.has_user)
node_provider.new_node (default_node)
assert ("Has one node:", node_provider.count = 1)
connection.begin_transaction2
user_provider.new_user ("test1", "test1","test1@admin.com")
assert ("Has user: test1", attached user_provider.user_by_name ("test1"))
connection.commit2
connection.commit2
assert ("Has user test:", attached user_provider.user_by_name ("test"))
assert ("Has user test1:", attached user_provider.user_by_name ("test1"))
assert ("Has nodes:", node_provider.count = 1)
end
test_user_node_nested_transaction_with_rollback
note
testing: "execution/isolated"
do
connection.begin_transaction2
user_provider.new_user ("test", "test","test@admin.com")
assert ("Has user:", user_provider.has_user)
node_provider.new_node (default_node)
assert ("Has one node:", node_provider.count = 1)
connection.begin_transaction2
user_provider.new_user ("test1", "test1","test1@admin.com")
assert ("Has user: test1", attached user_provider.user_by_name ("test1"))
connection.commit2
connection.rollback2
assert ("Not Has user test:", user_provider.user_by_name ("test") = void)
assert ("Not Has user test1:", user_provider.user_by_name ("test1") = void)
assert ("Has 0 nodes:", node_provider.count = 0)
end
feature {NONE} -- Implementation
node_provider: NODE_DATA_PROVIDER