trabajo-afectivo/test/unit/user_test.rb

291 lines
8.2 KiB
Ruby
Raw Normal View History

# encoding: utf-8
require 'test_helper'
2014-07-27 11:40:42 +00:00
class UserTest < ActiveSupport::TestCase
test 'user' do
tests = [
{
name: '#1 - simple create',
create: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'some@example.com',
login: 'some@example.com',
updated_by_id: 1,
created_by_id: 1,
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
image: nil,
fullname: 'Firstname Lastname',
email: 'some@example.com',
login: 'some@example.com',
},
},
{
name: '#2 - simple create - no lastname',
create: {
firstname: 'Firstname Lastname',
lastname: '',
email: 'some@example.com',
login: 'some@example.com',
updated_by_id: 1,
created_by_id: 1,
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
image: nil,
email: 'some@example.com',
login: 'some@example.com',
},
},
2012-11-02 07:14:59 +00:00
{
name: '#3 - simple create - nil as lastname',
create: {
firstname: 'Firstname Lastname',
lastname: '',
email: 'some@example.com',
login: 'some@example.com',
updated_by_id: 1,
created_by_id: 1,
2012-11-02 07:14:59 +00:00
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
image: nil,
email: 'some@example.com',
login: 'some@example.com',
2012-11-02 07:14:59 +00:00
},
},
{
name: '#4 - simple create - no lastname, firstname with ","',
create: {
firstname: 'Lastname, Firstname',
lastname: '',
email: 'some@example.com',
login: 'some@example.com',
updated_by_id: 1,
created_by_id: 1,
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'some@example.com',
login: 'some@example.com',
},
},
{
name: '#5 - simple create - no lastname/firstname',
create: {
firstname: '',
lastname: '',
email: 'firstname.lastname@example.com',
login: 'login-1',
updated_by_id: 1,
created_by_id: 1,
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
fullname: 'Firstname Lastname',
email: 'firstname.lastname@example.com',
login: 'login-1',
},
},
{
name: '#6 - simple create - no lastname/firstnam',
create: {
firstname: '',
lastname: '',
email: 'FIRSTNAME.lastname@example.com',
login: 'login-2',
updated_by_id: 1,
created_by_id: 1,
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'firstname.lastname@example.com',
login: 'login-2',
},
},
2012-11-02 07:14:59 +00:00
{
name: '#7 - simple create - nill as fristname and lastname',
create: {
firstname: '',
lastname: '',
email: 'FIRSTNAME.lastname@example.com',
login: 'login-3',
updated_by_id: 1,
created_by_id: 1,
2012-11-02 07:14:59 +00:00
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'firstname.lastname@example.com',
login: 'login-3',
2014-07-27 11:40:42 +00:00
},
},
{
name: '#8 - update with avatar check',
create: {
firstname: 'Bob',
lastname: 'Smith',
email: 'bob.smith@example.com',
login: 'login-4',
updated_by_id: 1,
created_by_id: 1,
2014-07-27 11:40:42 +00:00
},
create_verify: {
firstname: 'Bob',
lastname: 'Smith',
image: nil,
email: 'bob.smith@example.com',
login: 'login-4',
2014-07-27 11:40:42 +00:00
},
update: {
email: 'unit-test1@znuny.com',
2014-07-27 11:40:42 +00:00
},
update_verify: {
firstname: 'Bob',
lastname: 'Smith',
image: 'a6f7f7f9dac25b2c023d403ef998801c',
image_md5: 'a6f7f7f9dac25b2c023d403ef998801c',
email: 'unit-test1@znuny.com',
login: 'login-4',
2014-07-27 11:40:42 +00:00
}
},
{
name: '#9 - update create with avatar check',
create: {
firstname: 'Bob',
lastname: 'Smith',
email: 'unit-test2@znuny.com',
login: 'login-5',
updated_by_id: 1,
created_by_id: 1,
2012-11-02 07:14:59 +00:00
},
create_verify: {
firstname: 'Bob',
lastname: 'Smith',
image: '8765a1ac93f54405d8dfdd856c48c31f',
image_md5: '8765a1ac93f54405d8dfdd856c48c31f',
email: 'unit-test2@znuny.com',
login: 'login-5',
2014-07-27 11:40:42 +00:00
},
update: {
email: 'unit-test1@znuny.com',
2014-07-27 11:40:42 +00:00
},
update_verify: {
firstname: 'Bob',
lastname: 'Smith',
image: 'a6f7f7f9dac25b2c023d403ef998801c',
image_md5: 'a6f7f7f9dac25b2c023d403ef998801c',
email: 'unit-test1@znuny.com',
login: 'login-5',
2014-07-27 11:40:42 +00:00
}
2012-11-02 07:14:59 +00:00
},
2015-01-07 20:42:12 +00:00
{
name: '#10 - update create with login/email check',
create: {
firstname: '',
lastname: '',
email: 'caoyaoewfzfw@21222cn.com',
updated_by_id: 1,
created_by_id: 1,
2015-01-07 20:42:12 +00:00
},
create_verify: {
firstname: '',
lastname: '',
fullname: 'caoyaoewfzfw@21222cn.com',
email: 'caoyaoewfzfw@21222cn.com',
login: 'caoyaoewfzfw@21222cn.com',
2015-01-07 20:42:12 +00:00
},
update: {
email: 'caoyaoewfzfw@212224cn.com',
2015-01-07 20:42:12 +00:00
},
update_verify: {
firstname: '',
lastname: '',
email: 'caoyaoewfzfw@212224cn.com',
fullname: 'caoyaoewfzfw@212224cn.com',
login: 'caoyaoewfzfw@212224cn.com',
2015-01-07 20:42:12 +00:00
}
},
{
name: '#11 - update create with login/email check',
create: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'some_tEst11@example.com',
updated_by_id: 1,
created_by_id: 1,
2015-01-07 20:42:12 +00:00
},
create_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
fullname: 'Firstname Lastname',
email: 'some_test11@example.com',
2015-01-07 20:42:12 +00:00
},
update: {
email: 'some_Test11-1@example.com',
2015-01-07 20:42:12 +00:00
},
update_verify: {
firstname: 'Firstname',
lastname: 'Lastname',
email: 'some_test11-1@example.com',
fullname: 'Firstname Lastname',
login: 'some_test11-1@example.com',
2015-01-07 20:42:12 +00:00
}
},
]
tests.each { |test|
2014-07-27 11:40:42 +00:00
# check if user exists
user = User.where( login: test[:create][:login] ).first
2014-07-27 11:40:42 +00:00
if user
user.destroy
end
user = User.create( test[:create] )
test[:create_verify].each { |key, value|
2014-07-27 11:40:42 +00:00
next if key == :image_md5
2015-01-07 20:42:12 +00:00
if user.respond_to?( key )
assert_equal( value, user.send(key), "create check #{key} in (#{test[:name]})" )
2015-01-07 20:42:12 +00:00
else
assert_equal( value, user[key], "create check #{key} in (#{test[:name]})" )
2015-01-07 20:42:12 +00:00
end
}
2014-07-27 11:40:42 +00:00
if test[:create_verify][:image_md5]
2014-12-01 07:32:35 +00:00
file = Avatar.get_by_hash( user.image )
file_md5 = Digest::MD5.hexdigest( file.content )
assert_equal( test[:create_verify][:image_md5], file_md5, "create avatar md5 check in (#{test[:name]})" )
2014-07-27 11:40:42 +00:00
end
if test[:update]
user.update_attributes( test[:update] )
test[:update_verify].each { |key, value|
next if key == :image_md5
2015-01-07 20:42:12 +00:00
if user.respond_to?( key )
assert_equal( value, user.send(key), "update check #{key} in (#{test[:name]})" )
2015-01-07 20:42:12 +00:00
else
assert_equal( value, user[key], "update check #{key} in (#{test[:name]})" )
2015-01-07 20:42:12 +00:00
end
2014-07-27 11:40:42 +00:00
}
if test[:update_verify][:image_md5]
2014-12-01 07:32:35 +00:00
file = Avatar.get_by_hash( user.image )
file_md5 = Digest::MD5.hexdigest( file.content )
assert_equal( test[:update_verify][:image_md5], file_md5, "update avatar md5 check in (#{test[:name]})" )
2014-07-27 11:40:42 +00:00
end
end
user.destroy
2014-07-27 11:40:42 +00:00
}
end
end