Sha256: 27c2146ee616fbeeee837f77cfc59d86e8d05b3a3b7c7a4e87d25119e1d36c34

Contents?: true

Size: 1.37 KB

Versions: 33

Compression:

Stored size: 1.37 KB

Contents

require 'spec_helper'

describe '#lrange(key, start, stop)' do
  before do
    @key = 'mock-redis-test:68036'

    @redises.lpush(@key, 'v4')
    @redises.lpush(@key, 'v3')
    @redises.lpush(@key, 'v2')
    @redises.lpush(@key, 'v1')
    @redises.lpush(@key, 'v0')
  end

  it 'returns a subset of the list inclusive of the right end' do
    @redises.lrange(@key, 0, 2).should == %w[v0 v1 v2]
  end

  it 'returns a subset of the list when start and end are strings' do
    @redises.lrange(@key, '0', '2').should == %w[v0 v1 v2]
  end

  it 'returns an empty list when start > end' do
    @redises.lrange(@key, 3, 2).should == []
  end

  it 'works with a negative stop index' do
    @redises.lrange(@key, 2, -1).should == %w[v2 v3 v4]
  end

  it 'works with negative start and stop indices' do
    @redises.lrange(@key, -2, -1).should == %w[v3 v4]
  end

  it 'works with negative start indices less than list length' do
    @redises.lrange(@key, -10, -2).should == %w[v0 v1 v2 v3]
  end

  it 'returns [] when run against a nonexistent value' do
    @redises.lrange('mock-redis-test:bogus-key', 0, 1).should == []
  end

  it 'returns [] when start is too large' do
    @redises.lrange(@key, 100, 100).should == []
  end

  it 'finds the end of the list correctly when end is too large' do
    @redises.lrange(@key, 4, 10).should == %w[v4]
  end

  it_should_behave_like 'a list-only command'
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
mock_redis-0.36.0 spec/commands/lrange_spec.rb
mock_redis-0.35.0 spec/commands/lrange_spec.rb
mock_redis-0.34.0 spec/commands/lrange_spec.rb
mock_redis-0.33.0 spec/commands/lrange_spec.rb
mock_redis-0.32.0 spec/commands/lrange_spec.rb
mock_redis-0.31.0 spec/commands/lrange_spec.rb
mock_redis-0.30.0 spec/commands/lrange_spec.rb
mock_redis-0.29.0 spec/commands/lrange_spec.rb
mock_redis-0.28.0 spec/commands/lrange_spec.rb
mock_redis-0.27.3 spec/commands/lrange_spec.rb
mock_redis-0.27.2 spec/commands/lrange_spec.rb
mock_redis-0.27.1 spec/commands/lrange_spec.rb
mock_redis-0.27.0 spec/commands/lrange_spec.rb
mock_redis-0.26.0 spec/commands/lrange_spec.rb
mock_redis-0.25.0 spec/commands/lrange_spec.rb
mock_redis-0.24.0 spec/commands/lrange_spec.rb
mock_redis-0.23.0 spec/commands/lrange_spec.rb
mock_redis-0.22.0 spec/commands/lrange_spec.rb
mock_redis-0.21.0 spec/commands/lrange_spec.rb
mock_redis-0.20.0 spec/commands/lrange_spec.rb