-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathmigration_test.rb
75 lines (54 loc) · 2.2 KB
/
migration_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# frozen_string_literal: true
require "test_helper"
class MigrationTest < ActiveSupport::TestCase
test "migrate_all" do
3.times { |index| Kredis.proxy("mykey:#{index}").set "hello there #{index}" }
Kredis::Migration.migrate_all(Kredis.namespaced_key("mykey:*")) { |key| "thykey:#{key.split(":").last}" }
3.times do |index|
assert_equal "hello there #{index}", Kredis.proxy("thykey:#{index}").get
end
end
test "migrate" do
@original_global_namespace, Kredis.global_namespace = Kredis.global_namespace, nil
old_proxy = Kredis.string "old_proxy"
old_proxy.set "hello there"
new_proxy = Kredis.string "new_proxy"
assert_not new_proxy.assigned?
Kredis::Migration.migrate from: Kredis.namespaced_key("old_proxy"), to: "new_proxy"
assert_equal "hello there", new_proxy.value
assert old_proxy.assigned?, "just copying the data"
ensure
Kredis.global_namespace = @original_global_namespace
end
test "migrate with blank keys" do
assert_nothing_raised do
Kredis::Migration.migrate from: Kredis.namespaced_key("old_key"), to: nil
Kredis::Migration.migrate from: Kredis.namespaced_key("old_key"), to: ""
end
end
test "migrate with namespace" do
Kredis.proxy("key").set "x"
Kredis.namespace = "migrate"
Kredis::Migration.migrate from: "#{Kredis.global_namespace}:key", to: "key"
assert_equal "x", Kredis.proxy("key").get
ensure
Kredis.namespace = nil
end
test "migrate with automatic id extraction" do
Kredis.proxy("mykey:1").set "hey"
Kredis::Migration.migrate_all Kredis.namespaced_key("mykey:*") do |key, id|
assert_equal 1, id
key
end
end
test "delete_all with pattern" do
3.times { |index| Kredis.proxy("mykey:#{index}").set "hello there #{index}" }
Kredis::Migration.delete_all Kredis.namespaced_key("mykey:*")
3.times { |index| assert_nil Kredis.proxy("mykey:#{index}").get }
end
test "delete_all with keys" do
3.times { |index| Kredis.proxy("mykey:#{index}").set "hello there #{index}" }
Kredis::Migration.delete_all(*3.times.map { |index| Kredis.namespaced_key("mykey:#{index}") })
3.times { |index| assert_nil Kredis.proxy("mykey:#{index}").get }
end
end