Added node collaborators, author.

Added test cases.
This commit is contained in:
jvelilla
2014-09-18 21:00:08 -03:00
parent cf3c4060c8
commit 17ceed1c91
5 changed files with 220 additions and 29 deletions

View File

@@ -20,36 +20,68 @@ feature {NONE} -- Initialization
user: USER_DATA_PROVIDER
node: NODE_DATA_PROVIDER
l_security: SECURITY_PROVIDER
l_profile, l_db_profile: CMS_USER_PROFILE
l_cursor: TABLE_ITERATION_CURSOR [READABLE_STRING_8, READABLE_STRING_8]
l_list: LIST[CMS_NODE]
do
create connection.login_with_schema ("cms", "root", "")
-- create user.make (connection)
---- user.new_user ("jv", "test","test@test.com")
-- if attached user.user (3) as l_user then
-- if attached user.user_salt ("jv") as l_salt then
-- create l_security
-- if attached l_user.password as l_password then
-- print (l_password)
-- io.put_new_line
-- print (l_security.password_hash ("test", l_salt))
-- check same_string: l_security.password_hash ("test", l_salt).is_case_insensitive_equal (l_password) end
-- end
-- end
-- end
-- if attached user.user_by_name ("jv") as l_user then
-- check l_user.id = 3 end
-- end
create connection.login_with_schema ("cms_dev", "root", "")
create user.make (connection)
create node.make (connection)
across node.recent_nodes (0, 5) as c loop
print (c.item)
(create {CLEAN_DB}).clean_db(connection)
user.new_user ("test", "test","test@admin.com")
if attached {CMS_USER} user.user_by_name ("test") as l_user then
create l_profile.make
l_profile.force ("Eiffel", "language")
l_profile.force ("Argentina", "country")
l_profile.force ("GMT-3", "time zone")
user.save_profile (l_user.id, l_profile)
l_db_profile := user.user_profile (l_user.id)
from
l_cursor := l_db_profile.new_cursor
until
l_cursor.after
loop
print (l_cursor.item + " - " + l_cursor.key + "%N")
l_cursor.forth
end
create {ARRAYED_LIST[CMS_NODE]} l_list.make (0)
node.new_node (default_node)
node.new_node (custom_node ("content1", "summary1", "title1"))
node.new_node (custom_node ("content2", "summary2", "title2"))
node.new_node (custom_node ("content3", "summary3", "title3"))
user.new_user ("u1", "u1", "email")
if attached user.user_by_name ("u1") as ll_user then
node.add_collaborator (l_user.id, 1)
node.add_collaborator (l_user.id, 2)
node.add_collaborator (l_user.id, 3)
node.add_collaborator (l_user.id, 4)
across node.node_collaborators (1) as c loop
print (c.item.name)
end
end
end
end
feature {NONE} -- Implementation
connection: DATABASE_CONNECTION_MYSQL
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

View File

@@ -5,7 +5,7 @@ note
author: "EiffelStudio test wizard"
date: "$Date$"
revision: "$Revision$"
testing: "type/manual"
testing:"execution/isolated"
class
NODE_TEST_SET
@@ -195,9 +195,49 @@ feature -- Test routines
-- Scenrario 10..10 empty
assert ("Empty", node_provider.recent_nodes (10, 10).after)
end
test_new_node_without_user
do
node_provider.new_node (default_node)
user_provider.new_user ("u1", "u1", "email")
if attached user_provider.user_by_name ("u1") as l_user then
assert ("Empty nodes", node_provider.user_nodes (l_user.id).after)
end
end
test_new_node_add_author
do
node_provider.new_node (default_node)
user_provider.new_user ("u1", "u1", "email")
if attached user_provider.user_by_name ("u1") as l_user then
node_provider.add_collaborator (l_user.id, 1)
assert ("Not Empty nodes", not node_provider.node_collaborators (1).after)
end
end
test_multiple_nodes_add_author
local
l_list: LIST[CMS_NODE]
do
create {ARRAYED_LIST[CMS_NODE]} l_list.make (0)
node_provider.new_node (default_node)
node_provider.new_node (custom_node ("content1", "summary1", "title1"))
node_provider.new_node (custom_node ("content2", "summary2", "title2"))
node_provider.new_node (custom_node ("content3", "summary3", "title3"))
user_provider.new_user ("u1", "u1", "email")
if attached user_provider.user_by_name ("u1") as l_user then
node_provider.add_collaborator (l_user.id, 1)
node_provider.add_collaborator (l_user.id, 2)
node_provider.add_collaborator (l_user.id, 3)
node_provider.add_collaborator (l_user.id, 4)
end
end
feature {NONE} -- Implementation
node_provider: NODE_DATA_PROVIDER
@@ -206,6 +246,12 @@ feature {NONE} -- Implementation
create Result.make (connection)
end
user_provider: USER_DATA_PROVIDER
-- user provider.
once
create Result.make (connection)
end
feature {NONE} -- Implementation Fixture Factories

View File

@@ -5,7 +5,7 @@ note
author: "EiffelStudio test wizard"
date: "$Date$"
revision: "$Revision$"
testing:"execution/serial"
testing:"execution/isolated"
class
USER_TEST_SET

View File

@@ -33,6 +33,12 @@ feature
db_handler(a_connection).set_query (create {DATABASE_QUERY}.data_reader (Sql_delete_permissions, l_parameters))
db_handler(a_connection).execute_change
-- Clean Users Nodes
db_handler(a_connection).set_query (create {DATABASE_QUERY}.data_reader (Sql_delete_users_nodes, l_parameters))
db_handler(a_connection).execute_change
-- Clean Users Roles
db_handler(a_connection).set_query (create {DATABASE_QUERY}.data_reader (Sql_delete_users_roles, l_parameters))
db_handler(a_connection).execute_change
@@ -96,9 +102,11 @@ feature -- Sql delete queries
Sql_delete_users_roles: STRING = "delete from Users_roles"
-- Clean User roles.
Sql_delete_user_profiles: STRING = "delete from profiles"
Sql_delete_user_profiles: STRING = "delete from profiles"
-- Clean profiles.
Sql_delete_users_nodes: STRING = "delete from users_nodes"
Rest_users_autoincrement: STRING = "ALTER TABLE Users AUTO_INCREMENT = 1"
-- reset autoincrement