Revisited the persistence layer.

Simplified schema to focus on user and node.
Now possible to have sqlite via ODBC and/or mysql support, and select using configuration file.
Updated demo example.
This commit is contained in:
2015-01-27 19:48:37 +01:00
parent db9e40cec4
commit 7d5869f3b9
71 changed files with 2665 additions and 3313 deletions

View File

@@ -3,8 +3,8 @@ note
Eiffel tests that can be executed by testing tool.
]"
author: "EiffelStudio test wizard"
date: "$Date$"
revision: "$Revision$"
date: "$Date: 2015-01-27 19:15:02 +0100 (mar., 27 janv. 2015) $"
revision: "$Revision: 96542 $"
testing: "type/manual"
class
@@ -30,7 +30,7 @@ feature {NONE} -- Events
on_prepare
-- <Precursor>
do
(create {CLEAN_DB}).clean_db(connection)
(create {CLEAN_DB}).clean_db (connection)
end
on_clean
@@ -43,55 +43,45 @@ feature -- Test routines
test_user_rollback
note
testing: "execution/isolated"
local
u: detachable CMS_USER
do
connection.begin_transaction
user_provider.new_user ("test", "test","test@admin.com")
assert ("Has user:", user_provider.has_user)
connection.rollback
assert ("Not has user:", not user_provider.has_user)
u := storage.user_by_name ("test")
if u = Void then
u := custom_user ("test", "test","test@admin.com")
storage.new_user (u)
end
assert ("Has user:", storage.has_user)
u.set_email ("test@example.com")
storage.sql_begin_transaction
storage.update_user (u)
assert ("Has user:", storage.user_by_email ("test@example.com") /= Void)
storage.sql_rollback_transaction
assert ("Not has user:", storage.user_by_email ("test@example.com") = Void)
end
test_user_node_rollback
note
testing: "execution/isolated"
local
u: detachable CMS_USER
do
u := storage.user_by_name ("test")
if u = Void then
u := custom_user ("test", "test","test@admin.com")
storage.new_user (u)
end
connection.begin_transaction
user_provider.new_user ("test", "test","test@admin.com")
assert ("Has user:", user_provider.has_user)
node_provider.new_node (default_node)
node_provider.add_author (1, 1)
assert ("Has one node:", node_provider.count = 1)
u.set_email ("test@example.com")
assert ("Has user:", storage.user_by_email ("test@example.com") /= Void)
storage.new_node (default_node)
assert ("Has one node:", storage.nodes_count = 1)
connection.rollback
assert ("Not has user:", not user_provider.has_user)
assert ("Not has nodes:", node_provider.count = 0)
assert ("Not has user:", storage.user_by_email ("test@example.com") = Void)
assert ("Has no node:", storage.nodes_count = 0)
end
feature {NONE} -- Implementation
node_provider: NODE_DATA_PROVIDER
-- node provider.
once
create Result.make (connection)
end
user_provider: USER_DATA_PROVIDER
-- user provider.
once
create Result.make (connection)
end
feature {NONE} -- Implementation Fixture Factories
default_node: CMS_NODE
do
Result := custom_node ("Default content", "default summary", "Default")
end
custom_node (a_content, a_summary, a_title: READABLE_STRING_32): CMS_NODE
do
create Result.make (a_content, a_summary, a_title)
end
end