object_cache_test.rb 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class ObjectCacheTest < ActiveSupport::TestCase
  4. test 'object cache' do
  5. name = 'object cache test ' + rand(9_999_999).to_s
  6. group = Group.create(
  7. name: name,
  8. updated_by_id: 1,
  9. created_by_id: 1,
  10. )
  11. group_new = Group.where( name: name ).first
  12. assert_equal( name, group_new[:name], 'verify by where' )
  13. # lookup by name
  14. cache_key = "#{group_new.name}"
  15. assert_nil( Group.cache_get(cache_key) )
  16. group_lookup_name = Group.lookup( name: group_new.name )
  17. assert_equal( group_new.name, group_lookup_name[:name], 'verify by lookup.name' )
  18. assert( Group.cache_get(cache_key) )
  19. # lookup by id
  20. cache_key = "#{group_new.id}"
  21. assert_nil( Group.cache_get(cache_key) )
  22. group_lookup_id = Group.lookup( id: group.id )
  23. assert_equal( group_new.name, group_lookup_id[:name], 'verify by lookup.id' )
  24. assert( Group.cache_get(cache_key) )
  25. # update / check if old name caches are deleted
  26. name_new = name + ' next'
  27. group.name = name_new
  28. group.save
  29. # lookup by name
  30. cache_key = "#{group.name}"
  31. assert_nil( Group.cache_get(cache_key) )
  32. group_lookup = Group.where( name: group_new.name ).first
  33. assert_nil( group_lookup, 'verify by where name_old' )
  34. assert_nil( Group.cache_get(cache_key) )
  35. group_lookup = Group.where( name: group.name ).first
  36. assert_equal( name_new, group_lookup[:name], 'verify by where name_new' )
  37. assert_nil( Group.cache_get(cache_key) )
  38. group_lookup_name = Group.lookup( name: group_new.name )
  39. assert_nil( group_lookup_name, 'verify by lookup.name name_old' )
  40. assert_nil( Group.cache_get(cache_key) )
  41. group_lookup_name = Group.lookup( name: group.name )
  42. assert_equal( name_new, group_lookup_name[:name], 'verify by lookup.name name_new' )
  43. assert( Group.cache_get(cache_key) )
  44. # lookup by id
  45. cache_key = "#{group_new.id}"
  46. assert_nil( Group.cache_get(cache_key) )
  47. group_lookup_id = Group.lookup( id: group.id )
  48. assert_equal( name_new, group_lookup_id[:name], 'verify by lookup.id' )
  49. assert( Group.cache_get(cache_key) )
  50. group.destroy
  51. # lookup by name
  52. group_lookup = Group.where( name: group_new.name ).first
  53. assert_nil( group_lookup, 'verify by where name_old' )
  54. group_lookup = Group.where( name: group.name ).first
  55. assert_nil( group_lookup, 'verify by where name_new' )
  56. group_lookup_name = Group.lookup( name: group_new.name )
  57. assert_nil( group_lookup_name, 'verify by lookup.name name_old' )
  58. group_lookup_name = Group.lookup( name: group.name )
  59. assert_nil( group_lookup_name, 'verify by lookup.name name_new' )
  60. # lookup by id
  61. group_lookup_id = Group.lookup( id: group.id )
  62. assert_nil( group_lookup_id, 'verify by lookup.id' )
  63. end
  64. end