123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- # encoding: utf-8
- require 'test_helper'
- class ObjectCacheTest < ActiveSupport::TestCase
- test 'organization cache' do
- org = Organization.create_or_update(
- name: 'some org cache member',
- updated_by_id: 1,
- created_by_id: 1,
- )
- roles = Role.where( name: %w(Agent Admin) )
- groups = Group.all
- user1 = User.create_or_update(
- login: 'object_cache1@example.org',
- firstname: 'object_cache1',
- lastname: 'object_cache1',
- email: 'object_cache1@example.org',
- password: 'some_pass',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- organization_id: org.id,
- roles: roles,
- groups: groups,
- )
- assets = org.assets({})
- assert_equal(org.member_ids.sort, assets[:Organization][org.id]['member_ids'].sort)
- user1.organization_id = nil
- user1.save
- assets = org.assets({})
- assert_equal(org.member_ids.sort, assets[:Organization][org.id]['member_ids'].sort)
- end
- test 'user cache' do
- roles = Role.where( name: %w(Agent Admin) )
- groups = Group.all
- user1 = User.create_or_update(
- login: 'object_cache1@example.org',
- firstname: 'object_cache1',
- lastname: 'object_cache1',
- email: 'object_cache1@example.org',
- password: 'some_pass',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- roles: roles,
- groups: groups,
- )
- assets = user1.assets({})
- assert_equal(user1.group_ids.sort, assets[:User][user1.id]['group_ids'].sort)
- # update group
- group1 = groups.first
- group1.note = "some note #{rand(9_999_999_999)}"
- group1.save
- assets = user1.assets({})
- assert_equal(group1.note, assets[:Group][group1.id]['note'])
- # update group
- assert_equal(user1.group_ids.sort, assets[:User][user1.id]['group_ids'].sort)
- user1.group_ids = []
- user1.save
- assets = user1.assets({})
- assert_equal(user1.group_ids.sort, assets[:User][user1.id]['group_ids'].sort)
- # update role
- assert_equal(user1.role_ids.sort, assets[:User][user1.id]['role_ids'].sort)
- user1.role_ids = []
- user1.save
- assets = user1.assets({})
- assert_equal(user1.role_ids.sort, assets[:User][user1.id]['role_ids'].sort)
- # update groups
- assert_equal(user1.organization_ids.sort, assets[:User][user1.id]['organization_ids'].sort)
- user1.organization_ids = [1]
- user1.save
- assets = user1.assets({})
- assert_equal(user1.organization_ids.sort, assets[:User][user1.id]['organization_ids'].sort)
- end
- test 'group cache' do
- name = 'object cache test ' + rand(9_999_999).to_s
- group = Group.create(
- name: name,
- updated_by_id: 1,
- created_by_id: 1,
- )
- group_new = Group.where( name: name).first
- assert_equal(name, group_new[:name], 'verify by where')
- # lookup by name
- cache_key = group_new.name.to_s
- assert_nil(Group.cache_get(cache_key))
- group_lookup_name = Group.lookup(name: group_new.name)
- assert_equal(group_new.name, group_lookup_name[:name], 'verify by lookup.name')
- assert(Group.cache_get(cache_key))
- # lookup by id
- cache_key = group_new.id.to_s
- assert_nil(Group.cache_get(cache_key))
- group_lookup_id = Group.lookup(id: group.id)
- assert_equal(group_new.name, group_lookup_id[:name], 'verify by lookup.id')
- assert(Group.cache_get(cache_key))
- # update / check if old name caches are deleted
- name_new = name + ' next'
- group.name = name_new
- group.save
- # lookup by name
- cache_key = group.name.to_s
- assert_nil(Group.cache_get(cache_key))
- group_lookup = Group.where(name: group_new.name).first
- assert_nil(group_lookup, 'verify by where name_old')
- assert_nil(Group.cache_get(cache_key))
- group_lookup = Group.where(name: group.name).first
- assert_equal(name_new, group_lookup[:name], 'verify by where name_new')
- assert_nil(Group.cache_get(cache_key))
- group_lookup_name = Group.lookup(name: group_new.name)
- assert_nil(group_lookup_name, 'verify by lookup.name name_old')
- assert_nil(Group.cache_get(cache_key))
- group_lookup_name = Group.lookup(name: group.name)
- assert_equal(name_new, group_lookup_name[:name], 'verify by lookup.name name_new')
- assert(Group.cache_get(cache_key))
- # lookup by id
- cache_key = group_new.id.to_s
- assert_nil(Group.cache_get(cache_key))
- group_lookup_id = Group.lookup(id: group.id)
- assert_equal(name_new, group_lookup_id[:name], 'verify by lookup.id')
- assert(Group.cache_get(cache_key))
- group.destroy
- # lookup by name
- group_lookup = Group.where(name: group_new.name).first
- assert_nil(group_lookup, 'verify by where name_old')
- group_lookup = Group.where(name: group.name).first
- assert_nil(group_lookup, 'verify by where name_new')
- group_lookup_name = Group.lookup(name: group_new.name)
- assert_nil(group_lookup_name, 'verify by lookup.name name_old')
- group_lookup_name = Group.lookup(name: group.name)
- assert_nil(group_lookup_name, 'verify by lookup.name name_new')
- # lookup by id
- group_lookup_id = Group.lookup(id: group.id)
- assert_nil(group_lookup_id, 'verify by lookup.id')
- end
- end
|