Sha256: 3bc3d3f552f8c2a48756dd9ce5ea2cc9a50e06dc3c2f4b64916a33c593789512

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

require 'spec_helper'

describe 'Secondary indexes', test_client: true, integration: true do
  let(:bucket){ random_bucket '2i-integration' }
  before do
    50.times do |i|
      bucket.new(i.to_s).tap do |obj|
        obj.indexes["index_int"] << i
        obj.indexes["index_bin"] << i.to_s
        obj.data = [i]
        obj.store
      end
    end
  end

  it "finds keys for an equality query" do
    expect(bucket.get_index('index_int', 20)).to eq(["20"])
  end

  it "finds keys for a range query" do
    expect(bucket.get_index('index_int', 19..21)).to match_array(["19","20", "21"])
  end

  it "returns an empty array for a query that does not match any keys" do
    expect(bucket.get_index('index_int', 10000)).to eq([])
  end

  it "returns terms" do
    results = nil
    expect do
      results = bucket.get_index('index_int',
                                 19..21, 
                                 return_terms: true)
    end.to_not raise_error

    expect(results).to be_a Array
    expect(results.with_terms).to be_a Hash
  end

  it "returns terms matching a term_regex" do
    results = nil
    expect do
      results = bucket.get_index('index_bin',
                                 '19'..'21', 
                                 return_terms: true,
                                 term_regex: '20')
    end.to_not raise_error

    terms = results.with_terms

    expect(terms['20']).to be
    expect(terms['19']).to be_empty
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
riak-client-2.1.0 spec/integration/riak/secondary_index_spec.rb
riak-client-2.0.0 spec/integration/riak/secondary_index_spec.rb
riak-client-2.0.0.rc2 spec/integration/riak/secondary_index_spec.rb