memcache-auth 0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,102 @@
1
+
2
+ require "#{File.dirname(__FILE__)}/../test_helper"
3
+
4
+ class RailsTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @servers = ['127.0.0.1:43042', '127.0.0.1:43043', "#{UNIX_SOCKET_NAME}0"]
8
+ @namespace = 'rails_test'
9
+ @cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace)
10
+ @value = OpenStruct.new(:a => 1, :b => 2, :c => GenericClass)
11
+ @marshalled_value = Marshal.dump(@value)
12
+ end
13
+
14
+ def test_get
15
+ @cache.set key, @value
16
+ result = @cache.get key
17
+ assert_equal @value, result
18
+ end
19
+
20
+ def test_get_multi
21
+ @cache.set key, @value
22
+ result = @cache.get_multi([key])
23
+ assert_equal(
24
+ {key => @value},
25
+ result
26
+ )
27
+ end
28
+
29
+ def test_delete
30
+ @cache.set key, @value
31
+ assert_nothing_raised do
32
+ @cache.delete key
33
+ end
34
+ assert_nil(@cache.get(key))
35
+ end
36
+
37
+ def test_delete_missing
38
+ assert_nothing_raised do
39
+ @cache.delete key
40
+ assert_nil(@cache.delete(key))
41
+ end
42
+ end
43
+
44
+ def test_bracket_accessors
45
+ @cache[key] = @value
46
+ result = @cache[key]
47
+ assert_equal @value, result
48
+ end
49
+
50
+ def test_cas
51
+ cache = Memcached::Rails.new(:servers => @servers, :namespace => @namespace, :support_cas => true)
52
+ value2 = OpenStruct.new(:d => 3, :e => 4, :f => GenericClass)
53
+
54
+ # Existing set
55
+ cache.set key, @value
56
+ cache.cas(key) do |current|
57
+ assert_equal @value, current
58
+ value2
59
+ end
60
+ assert_equal value2, cache.get(key)
61
+
62
+ # Missing set
63
+ cache.delete key
64
+ assert_nothing_raised do
65
+ cache.cas(key) { @called = true }
66
+ end
67
+ assert_nil cache.get(key)
68
+ assert_nil @called
69
+
70
+ # Conflicting set
71
+ cache.set key, @value
72
+ assert_raises(Memcached::ConnectionDataExists) do
73
+ cache.cas(key) do |current|
74
+ cache.set key, value2
75
+ current
76
+ end
77
+ end
78
+ end
79
+
80
+ def test_get_missing
81
+ @cache.delete key rescue nil
82
+ result = @cache.get key
83
+ assert_equal nil, result
84
+ end
85
+
86
+ def test_get_nil
87
+ @cache.set key, nil, 0
88
+ result = @cache.get key
89
+ assert_equal nil, result
90
+ end
91
+
92
+ def test_namespace
93
+ assert_equal @namespace, @cache.namespace
94
+ end
95
+
96
+ private
97
+
98
+ def key
99
+ caller.first[/.*[` ](.*)'/, 1] # '
100
+ end
101
+
102
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memcache-auth
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.2"
5
+ platform: ruby
6
+ authors:
7
+ - Evan Weaver - updated by NorthScale for auth support
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-19 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: An interface to the libmemcached C client + sasl auth support.
17
+ email: ""
18
+ executables: []
19
+
20
+ extensions:
21
+ - ext/extconf.rb
22
+ extra_rdoc_files:
23
+ - BENCHMARKS
24
+ - CHANGELOG
25
+ - LICENSE
26
+ - README
27
+ - TODO
28
+ - lib/memcached.rb
29
+ - lib/memcached/behaviors.rb
30
+ - lib/memcached/exceptions.rb
31
+ - lib/memcached/memcached.rb
32
+ - lib/memcached/rails.rb
33
+ files:
34
+ - BENCHMARKS
35
+ - CHANGELOG
36
+ - LICENSE
37
+ - Manifest
38
+ - README
39
+ - Rakefile
40
+ - TODO
41
+ - ext/extconf.rb
42
+ - ext/libmemcached-0.35+sasl.tar.gz
43
+ - ext/rlibmemcached.i
44
+ - ext/rlibmemcached_wrap.c
45
+ - lib/memcached.rb
46
+ - lib/memcached/auth.rb
47
+ - lib/memcached/behaviors.rb
48
+ - lib/memcached/exceptions.rb
49
+ - lib/memcached/integer.rb
50
+ - lib/memcached/memcached.rb
51
+ - lib/memcached/rails.rb
52
+ - test/profile/benchmark.rb
53
+ - test/profile/profile.rb
54
+ - test/profile/valgrind.rb
55
+ - test/setup.rb
56
+ - test/teardown.rb
57
+ - test/test_helper.rb
58
+ - test/unit/binding_test.rb
59
+ - test/unit/memcached_test.rb
60
+ - test/unit/rails_test.rb
61
+ - memcache-auth.gemspec
62
+ has_rdoc: true
63
+ homepage: http://github.com/seanlynch/libmemcached-ruby
64
+ licenses: []
65
+
66
+ post_install_message:
67
+ rdoc_options:
68
+ - --line-numbers
69
+ - --inline-source
70
+ - --title
71
+ - Memcache-auth
72
+ - --main
73
+ - README
74
+ require_paths:
75
+ - lib
76
+ - ext
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
82
+ version:
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "1.2"
88
+ version:
89
+ requirements: []
90
+
91
+ rubyforge_project: Memcache-Auth
92
+ rubygems_version: 1.3.5
93
+ signing_key:
94
+ specification_version: 3
95
+ summary: An interface to the libmemcached C client + sasl auth support.
96
+ test_files:
97
+ - test/test_helper.rb
98
+ - test/unit/binding_test.rb
99
+ - test/unit/memcached_test.rb
100
+ - test/unit/rails_test.rb