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

https://github.com/delowong/logstash · Ruby · 58 lines · 43 code · 14 blank · 1 comment · 0 complexity · d4dc5ea8edf83a20eff68d71d009412a MD5 · raw file

  1. # encoding: UTF-8
  2. require File.expand_path("helper", File.dirname(__FILE__))
  3. class TestDistributed < Test::Unit::TestCase
  4. include Helper::Distributed
  5. def test_handle_multiple_servers
  6. @r = Redis::Distributed.new ["redis://127.0.0.1:#{PORT}/15", *NODES]
  7. 100.times do |idx|
  8. @r.set(idx.to_s, "foo#{idx}")
  9. end
  10. 100.times do |idx|
  11. assert_equal "foo#{idx}", @r.get(idx.to_s)
  12. end
  13. assert_equal "0", @r.keys("*").sort.first
  14. assert_equal "string", @r.type("1")
  15. end
  16. def test_add_nodes
  17. logger = Logger.new("/dev/null")
  18. @r = Redis::Distributed.new NODES, :logger => logger, :timeout => 10
  19. assert_equal "127.0.0.1", @r.nodes[0].client.host
  20. assert_equal PORT, @r.nodes[0].client.port
  21. assert_equal 15, @r.nodes[0].client.db
  22. assert_equal 10, @r.nodes[0].client.timeout
  23. assert_equal logger, @r.nodes[0].client.logger
  24. @r.add_node("redis://127.0.0.1:6380/14")
  25. assert_equal "127.0.0.1", @r.nodes[1].client.host
  26. assert_equal 6380, @r.nodes[1].client.port
  27. assert_equal 14, @r.nodes[1].client.db
  28. assert_equal 10, @r.nodes[1].client.timeout
  29. assert_equal logger, @r.nodes[1].client.logger
  30. end
  31. def test_pipelining_commands_cannot_be_distributed
  32. assert_raise Redis::Distributed::CannotDistribute do
  33. r.pipelined do
  34. r.lpush "foo", "s1"
  35. r.lpush "foo", "s2"
  36. end
  37. end
  38. end
  39. def test_unknown_commands_does_not_work_by_default
  40. assert_raise NoMethodError do
  41. r.not_yet_implemented_command
  42. end
  43. end
  44. end