diff --git a/test/mongoid_test.rb b/test/mongoid_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..4b2bed0c220a5174d7bb1c1e7e313399ab5103ed
--- /dev/null
+++ b/test/mongoid_test.rb
@@ -0,0 +1,39 @@
+# encoding: utf-8
+require 'test_helper'
+
+begin
+require 'mongoid'
+require 'mongoid_test_helper'
+
+class MongoidTest < Test::Unit::TestCase
+
+  def setup
+    Geocoder::Configuration.set_defaults
+  end
+
+  def test_geocoded_check
+    p = Place.new(*venue_params(:msg))
+    p.location = [40.750354, -73.993371]
+
+		assert p.geocoded?
+	end
+
+  def test_distance_to_returns_float
+    p = Place.new(*venue_params(:msg))
+    p.location = [40.750354, -73.993371]
+
+    assert p.distance_to([30, -94]).is_a?(Float)
+  end
+
+	def test_custom_coordinate_field_near_scope
+		location = [40.750354, -73.993371]
+    p = Place.near(location)
+ 
+		assert p.selector[:location]
+		assert_equal p.selector[:location]['$nearSphere'], location.reverse
+ 	end
+end
+
+rescue LoadError => crash
+	warn 'Mongoid not installed, not tested.'
+end
diff --git a/test/mongoid_test_helper.rb b/test/mongoid_test_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..159f8a222d2b72c3c699189d161486b9bea3544c
--- /dev/null
+++ b/test/mongoid_test_helper.rb
@@ -0,0 +1,28 @@
+require 'rubygems'
+require 'test/unit'
+
+$LOAD_PATH.unshift(File.dirname(__FILE__))
+$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
+
+Mongoid.configure do |config| 
+  config.logger = Logger.new($stderr, :debug)
+end 
+
+##
+# Geocoded model.
+#
+class Place
+	include Mongoid::Document
+	include Geocoder::Model::Mongoid
+
+  geocoded_by :address, :coordinates => :location
+	field :name
+	field :address
+	field :location, :type => Array
+
+  def initialize(name, address)
+    super()
+    write_attribute :name, name
+    write_attribute :address, address
+  end
+end