Sha256: b1b349220f7e91e0e1be6ace013a2e558623577d7205dce9f11423bc4e78be81

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

require "spec_helper"

describe Mongoid::Criterion::WithinSpatial do

  let(:within) do
    {
      :box => Mongoid::Criterion::WithinSpatial.new(:key => :field, :operator => "box"),
      :polygon => Mongoid::Criterion::WithinSpatial.new(:key => :field, :operator => "polygon"),
      :center => Mongoid::Criterion::WithinSpatial.new(:key => :field, :operator => "center"),
      :center_sphere => Mongoid::Criterion::WithinSpatial.new(:key => :field, :operator => "box"),
    }
  end
  WITHIN = {
    :box =>
    {
      'Array of Arrays' => [[10,20], [15,25]],
      'Array of Hashes' => [{ x: 10, y: 20 }, { x: 15, y: 25 }],
      'Hash of Hashes'  => { a: { x: 10, y: 20 }, b: { x: 15, y: 25 }}
    },
      :polygon =>
    {
      'Array of Arrays' => [[10,20], [15,25]],
      'Array of Hashes' => [{ x: 10, y: 20 }, { x: 15, y: 25 }],
      'Hash of Hashes'  => { a: { x: 10, y: 20 }, b: { x: 15, y: 25 }}
    },
      :center =>
    {
      'Point'           => [[1,2],5],
      'Hash Point'      => {:point => [-73.98, 40.77], :max => 5},
      'Hash Point Unit' => {:point => [-73.98, 40.77], :max => 5, :unit => :km}
    },
      :center_sphere =>
    {
      'Point'           => [[1,2],5],
      'Hash Point'      => {:point => [-73.98, 40.77], :max => 5},
      'Hash Point Unit' => {:point => [-73.98, 40.77], :max => 5, :unit => :km}
    }
  }

  context "#to_mongo_query" do

    WITHIN.each do |shape, points|
      points.each do |input_name,input|
        it "#{shape} should generate a query with #{input_name}" do
          within[shape].to_mongo_query(input).should be_a_kind_of(Hash)
        end
      end
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mongoid_geospatial-1.0.0rc1 spec/unit/criterion/within_spatial_spec.rb
mongoid_geospatial-1.0.0rc0 spec/unit/criterion/within_spatial_spec.rb