/vendor/bundle/jruby/2.1/gems/redis-3.0.7/test/commands_on_value_types_test.rb

https://github.com/delowong/logstash · Ruby · 131 lines · 87 code · 40 blank · 4 comment · 2 complexity · 394d13dc31407759436067835750dc09 MD5 · raw file

  1. # encoding: UTF-8
  2. require File.expand_path("helper", File.dirname(__FILE__))
  3. require "lint/value_types"
  4. class TestCommandsOnValueTypes < Test::Unit::TestCase
  5. include Helper::Client
  6. include Lint::ValueTypes
  7. def test_del
  8. r.set "foo", "s1"
  9. r.set "bar", "s2"
  10. r.set "baz", "s3"
  11. assert_equal ["bar", "baz", "foo"], r.keys("*").sort
  12. assert_equal 1, r.del("foo")
  13. assert_equal ["bar", "baz"], r.keys("*").sort
  14. assert_equal 2, r.del("bar", "baz")
  15. assert_equal [], r.keys("*").sort
  16. end
  17. def test_del_with_array_argument
  18. r.set "foo", "s1"
  19. r.set "bar", "s2"
  20. r.set "baz", "s3"
  21. assert_equal ["bar", "baz", "foo"], r.keys("*").sort
  22. assert_equal 1, r.del(["foo"])
  23. assert_equal ["bar", "baz"], r.keys("*").sort
  24. assert_equal 2, r.del(["bar", "baz"])
  25. assert_equal [], r.keys("*").sort
  26. end
  27. def test_randomkey
  28. assert r.randomkey.to_s.empty?
  29. r.set("foo", "s1")
  30. assert_equal "foo", r.randomkey
  31. r.set("bar", "s2")
  32. 4.times do
  33. assert ["foo", "bar"].include?(r.randomkey)
  34. end
  35. end
  36. def test_rename
  37. r.set("foo", "s1")
  38. r.rename "foo", "bar"
  39. assert_equal "s1", r.get("bar")
  40. assert_equal nil, r.get("foo")
  41. end
  42. def test_renamenx
  43. r.set("foo", "s1")
  44. r.set("bar", "s2")
  45. assert_equal false, r.renamenx("foo", "bar")
  46. assert_equal "s1", r.get("foo")
  47. assert_equal "s2", r.get("bar")
  48. end
  49. def test_dbsize
  50. assert_equal 0, r.dbsize
  51. r.set("foo", "s1")
  52. assert_equal 1, r.dbsize
  53. end
  54. def test_flushdb
  55. r.set("foo", "s1")
  56. r.set("bar", "s2")
  57. assert_equal 2, r.dbsize
  58. r.flushdb
  59. assert_equal 0, r.dbsize
  60. end
  61. def test_flushall
  62. redis_mock(:flushall => lambda { "+FLUSHALL" }) do |redis|
  63. assert_equal "FLUSHALL", redis.flushall
  64. end
  65. end
  66. def test_migrate
  67. redis_mock(:migrate => lambda { |*args| args }) do |redis|
  68. options = { :host => "127.0.0.1", :port => 1234 }
  69. assert_raise(RuntimeError, /host not specified/) do
  70. redis.migrate("foo", options.reject { |key, _| key == :host })
  71. end
  72. assert_raise(RuntimeError, /port not specified/) do
  73. redis.migrate("foo", options.reject { |key, _| key == :port })
  74. end
  75. default_db = redis.client.db.to_i
  76. default_timeout = redis.client.timeout.to_i
  77. # Test defaults
  78. actual = redis.migrate("foo", options)
  79. expected = ["127.0.0.1", "1234", "foo", default_db.to_s, default_timeout.to_s]
  80. assert_equal expected, actual
  81. # Test db override
  82. actual = redis.migrate("foo", options.merge(:db => default_db + 1))
  83. expected = ["127.0.0.1", "1234", "foo", (default_db + 1).to_s, default_timeout.to_s]
  84. assert_equal expected, actual
  85. # Test timeout override
  86. actual = redis.migrate("foo", options.merge(:timeout => default_timeout + 1))
  87. expected = ["127.0.0.1", "1234", "foo", default_db.to_s, (default_timeout + 1).to_s]
  88. assert_equal expected, actual
  89. end
  90. end
  91. end