Sha256: af6e1cd391eb484182ee229364f88bd0f510d034fea74d3aa13dce6dc614c559

Contents?: true

Size: 1.82 KB

Versions: 31

Compression:

Stored size: 1.82 KB

Contents

module Ddr::Index
  RSpec.describe Query do

    describe "initialized with attributes" do
      let(:id) { UniqueKeyField.instance }
      let(:foo) { Field.new("foo") }
      let(:spam) { Field.new("spam") }
      let(:filter) { Filter.where(spam=>"eggs") }
      let(:sort_order) { SortOrder.new(field: foo, order: "asc") }
      let(:fields) { [id, foo, spam] }

      subject {
        described_class.new(q: "foo:bar",
                            filters: [filter],
                            fields: fields,
                            sort: sort_order,
                            rows: 50)
      }

      its(:to_s) {
        is_expected.to eq "q=foo%3Abar&fq=spam%3Aeggs&fl=id%2Cfoo%2Cspam&sort=foo+asc&rows=50"
      }
      its(:params) {
        is_expected.to eq({q: "foo:bar", fl: "id,foo,spam", fq: ["spam:eggs"], sort: "foo asc", rows: 50})
      }
    end

    describe "initialized with a block" do
      subject {
        described_class.new do
          q "foo:bar"
          where "spam"=>"eggs"
          fields :id, "foo", "spam"
          asc "foo"
          limit 50
        end
      }

      its(:to_s) {
        is_expected.to eq "q=foo%3Abar&fq=spam%3Aeggs&fl=id%2Cfoo%2Cspam&sort=foo+asc&rows=50"
      }
      its(:params) {
        is_expected.to eq({q: "foo:bar", fl: "id,foo,spam", fq: ["spam:eggs"], sort: "foo asc", rows: 50})
      }
    end

    describe "equality" do
      subject {
        described_class.new do
          q "foo:bar"
          where "spam"=>"eggs"
          fields :id, "foo", "spam"
          asc "foo"
          limit 50
        end
      }
      let(:other) do
        described_class.new do
          q "foo:bar"
          where "spam"=>"eggs"
          fields :id, "foo", "spam"
          asc "foo"
          limit 50
        end
      end
      it { is_expected.to eq other }
    end

  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
ddr-models-3.0.8 spec/index/query_spec.rb
ddr-models-3.0.7 spec/index/query_spec.rb
ddr-models-3.0.6 spec/index/query_spec.rb
ddr-models-3.0.5 spec/index/query_spec.rb
ddr-models-3.0.4 spec/index/query_spec.rb
ddr-models-3.0.3 spec/index/query_spec.rb
ddr-models-3.0.2 spec/index/query_spec.rb
ddr-models-3.0.1 spec/index/query_spec.rb
ddr-models-3.0.0 spec/index/query_spec.rb
ddr-models-3.0.0.rc6 spec/index/query_spec.rb
ddr-models-3.0.0.rc5 spec/index/query_spec.rb
ddr-models-3.0.0.rc4 spec/index/query_spec.rb
ddr-models-3.0.0.rc3 spec/index/query_spec.rb
ddr-models-3.0.0.rc2 spec/index/query_spec.rb
ddr-models-3.0.0.rc1 spec/index/query_spec.rb
ddr-models-3.0.0.beta.22 spec/index/query_spec.rb
ddr-models-3.0.0.beta.21 spec/index/query_spec.rb
ddr-models-3.0.0.beta.20 spec/index/query_spec.rb
ddr-models-3.0.0.beta.18 spec/index/query_spec.rb
ddr-models-3.0.0.beta.17 spec/index/query_spec.rb