Sha256: 893cc9e0416e41517abef21ca919b64921d911aaf0ad83a2259ee8e2d2f32aa0

Contents?: true

Size: 1.94 KB

Versions: 18

Compression:

Stored size: 1.94 KB

Contents

# frozen_string_literal: true
# encoding: utf-8

require "spec_helper"

describe Mongoid::Criteria::Queryable::Mergeable do

  let(:query) do
    Mongoid::Query.new
  end

  describe "#intersect" do

    before do
      query.intersect
    end

    it "sets the strategy to intersect" do
      expect(query.strategy).to eq(:__intersect__)
    end
  end

  describe "#override" do

    before do
      query.override
    end

    it "sets the strategy to override" do
      expect(query.strategy).to eq(:__override__)
    end
  end

  describe "#union" do

    before do
      query.union
    end

    it "sets the strategy to union" do
      expect(query.strategy).to eq(:__union__)
    end
  end

  describe '#_mongoid_expand_keys' do
    it 'expands simple keys' do
      query.send(:_mongoid_expand_keys, {a: 1}).should == {a: 1}
    end

    let(:gt) do
      Mongoid::Criteria::Queryable::Key.new("age", :__override__, "$gt")
    end

    let(:gtp) do
      Mongoid::Criteria::Queryable::Key.new("age", :__override__, "$gt")
    end

    let(:lt) do
      Mongoid::Criteria::Queryable::Key.new("age", :__override__, "$lt")
    end

    it 'expands Key instances' do
      query.send(:_mongoid_expand_keys, {gt => 42}).should == {'age' => {'$gt' => 42}}
    end

    it 'expands multiple Key instances on the same field' do
      query.send(:_mongoid_expand_keys, {gt => 42, lt => 50}).should == {
        'age' => {'$gt' => 42, '$lt' => 50}}
    end

    it 'expands simple and Key instances on the same field' do
      query.send(:_mongoid_expand_keys, {'age' => 42, lt => 50}).should == {
        'age' => {'$eq' => 42, '$lt' => 50}}
    end

    it 'expands Key and simple instances on the same field' do
      query.send(:_mongoid_expand_keys, {gt => 42, 'age' => 50}).should == {
        'age' => {'$gt' => 42, '$eq' => 50}}
    end

    it 'Ruby does not allow same symbol operator with different values' do
      {gt => 42, gtp => 50}.should == {gtp => 50}
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
mongoid-7.1.11 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.6 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.5 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.10 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.9 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.4 spec/mongoid/criteria/queryable/mergeable_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/mongoid-7.1.7/spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.3 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.8 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.2 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.1 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.7 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.0 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.6 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.5 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.2.0.rc1 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.4 spec/mongoid/criteria/queryable/mergeable_spec.rb
mongoid-7.1.2 spec/mongoid/criteria/queryable/mergeable_spec.rb