socialforge/lib/dalli-2.7.2/test/test_compressor.rb

54 lines
1.4 KiB
Ruby

# encoding: utf-8
require 'helper'
require 'json'
require 'memcached_mock'
class NoopCompressor
def self.compress(data)
data
end
def self.decompress(data)
data
end
end
describe 'Compressor' do
it 'default to Dalli::Compressor' do
memcached_kill(29199) do |dc|
memcache = Dalli::Client.new('127.0.0.1:29199')
memcache.set 1,2
assert_equal Dalli::Compressor, memcache.instance_variable_get('@ring').servers.first.compressor
end
end
it 'support a custom compressor' do
memcached_kill(29199) do |dc|
memcache = Dalli::Client.new('127.0.0.1:29199', :compressor => NoopCompressor)
memcache.set 1,2
begin
assert_equal NoopCompressor, memcache.instance_variable_get('@ring').servers.first.compressor
memcached(19127) do |newdc|
assert newdc.set("string-test", "a test string")
assert_equal("a test string", newdc.get("string-test"))
end
end
end
end
end
describe 'GzipCompressor' do
it 'compress and uncompress data using Zlib::GzipWriter/Reader' do
memcached(19127,nil,{:compress=>true,:compressor=>Dalli::GzipCompressor}) do |dc|
data = (0...1025).map{65.+(rand(26)).chr}.join
assert dc.set("test", data)
assert_equal Dalli::GzipCompressor, dc.instance_variable_get('@ring').servers.first.compressor
assert_equal(data, dc.get("test"))
end
end
end