Ensuring that the geo spatial adapters are successfully wired up and working with base import functionality.
[#47]
This commit is contained in:
parent
eec20355e5
commit
6697e2b4db
2
Rakefile
2
Rakefile
|
@ -36,7 +36,7 @@ namespace :display do
|
||||||
end
|
end
|
||||||
task :default => ["display:notice"]
|
task :default => ["display:notice"]
|
||||||
|
|
||||||
ADAPTERS = %w(mysql mysql2 jdbcmysql postgresql sqlite3 seamless_database_pool)
|
ADAPTERS = %w(mysql mysql2 jdbcmysql postgresql sqlite3 seamless_database_pool mysqlspatial mysql2spatial spatialite postgis)
|
||||||
ADAPTERS.each do |adapter|
|
ADAPTERS.each do |adapter|
|
||||||
namespace :test do
|
namespace :test do
|
||||||
desc "Runs #{adapter} database tests."
|
desc "Runs #{adapter} database tests."
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require "active_record/connection_adapters/mysql2_adapter"
|
require "active_record/connection_adapters/mysql2_adapter"
|
||||||
require "activerecord-import/adapters/mysql_adapter"
|
require "activerecord-import/adapters/mysql2_adapter"
|
||||||
|
|
||||||
class ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
class ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
||||||
include ActiveRecord::Import::MysqlAdapter
|
include ActiveRecord::Import::Mysql2Adapter
|
||||||
end
|
end
|
||||||
|
|
5
lib/activerecord-import/adapters/mysql2_adapter.rb
Normal file
5
lib/activerecord-import/adapters/mysql2_adapter.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
require File.dirname(__FILE__) + "/mysql_adapter"
|
||||||
|
|
||||||
|
module ActiveRecord::Import::Mysql2Adapter
|
||||||
|
include ActiveRecord::Import::MysqlAdapter
|
||||||
|
end
|
|
@ -8,6 +8,7 @@ module ActiveRecord::Import
|
||||||
def self.base_adapter(adapter)
|
def self.base_adapter(adapter)
|
||||||
case adapter
|
case adapter
|
||||||
when 'mysqlspatial' then 'mysql'
|
when 'mysqlspatial' then 'mysql'
|
||||||
|
when 'mysql2spatial' then 'mysql2'
|
||||||
when 'spatialite' then 'sqlite3'
|
when 'spatialite' then 'sqlite3'
|
||||||
when 'postgis' then 'postgresql'
|
when 'postgis' then 'postgresql'
|
||||||
else adapter
|
else adapter
|
||||||
|
|
1
test/adapters/mysql2spatial.rb
Normal file
1
test/adapters/mysql2spatial.rb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ENV["ARE_DB"] = "mysql2spatial"
|
1
test/adapters/mysqlspatial.rb
Normal file
1
test/adapters/mysqlspatial.rb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ENV["ARE_DB"] = "mysqlspatial"
|
1
test/adapters/postgis.rb
Normal file
1
test/adapters/postgis.rb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ENV["ARE_DB"] = "postgis"
|
1
test/adapters/spatialite.rb
Normal file
1
test/adapters/spatialite.rb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ENV["ARE_DB"] = "spatialite"
|
|
@ -13,6 +13,12 @@ mysql2:
|
||||||
<<: *common
|
<<: *common
|
||||||
adapter: mysql2
|
adapter: mysql2
|
||||||
|
|
||||||
|
mysqlspatial:
|
||||||
|
<<: *mysql
|
||||||
|
|
||||||
|
mysqlspatial2:
|
||||||
|
<<: *mysql2
|
||||||
|
|
||||||
seamless_database_pool:
|
seamless_database_pool:
|
||||||
<<: *common
|
<<: *common
|
||||||
adapter: seamless_database_pool
|
adapter: seamless_database_pool
|
||||||
|
@ -26,6 +32,9 @@ postgresql:
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
min_messages: warning
|
min_messages: warning
|
||||||
|
|
||||||
|
postgis:
|
||||||
|
<<: *postgresql
|
||||||
|
|
||||||
oracle:
|
oracle:
|
||||||
<<: *common
|
<<: *common
|
||||||
adapter: oracle
|
adapter: oracle
|
||||||
|
@ -38,3 +47,6 @@ sqlite:
|
||||||
sqlite3:
|
sqlite3:
|
||||||
adapter: sqlite3
|
adapter: sqlite3
|
||||||
database: test.db
|
database: test.db
|
||||||
|
|
||||||
|
spatialite:
|
||||||
|
<<: *sqlite3
|
||||||
|
|
6
test/mysqlspatial/import_test.rb
Normal file
6
test/mysqlspatial/import_test.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
||||||
|
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/mysql/assertions')
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/mysql/import_examples')
|
||||||
|
|
||||||
|
should_support_mysql_import_functionality
|
6
test/mysqlspatial2/import_test.rb
Normal file
6
test/mysqlspatial2/import_test.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
||||||
|
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/mysql/assertions')
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/mysql/import_examples')
|
||||||
|
|
||||||
|
should_support_mysql_import_functionality
|
4
test/postgis/import_test.rb
Normal file
4
test/postgis/import_test.rb
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/postgresql/import_examples')
|
||||||
|
|
||||||
|
should_support_postgresql_import_functionality
|
|
@ -1,20 +1,4 @@
|
||||||
require File.expand_path('../../test_helper', __FILE__)
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
||||||
|
require File.expand_path(File.dirname(__FILE__) + '/../support/postgresql/import_examples')
|
||||||
|
|
||||||
describe "#supports_imports?" do
|
should_support_postgresql_import_functionality
|
||||||
it "should support import" do
|
|
||||||
assert ActiveRecord::Base.supports_import?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#import" do
|
|
||||||
it "should import with a single insert" do
|
|
||||||
# see ActiveRecord::ConnectionAdapters::AbstractAdapter test for more specifics
|
|
||||||
assert_difference "Topic.count", +10 do
|
|
||||||
result = Topic.import Build(3, :topics)
|
|
||||||
assert_equal 1, result.num_inserts
|
|
||||||
|
|
||||||
result = Topic.import Build(7, :topics)
|
|
||||||
assert_equal 1, result.num_inserts
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
21
test/support/postgresql/import_examples.rb
Normal file
21
test/support/postgresql/import_examples.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# encoding: UTF-8
|
||||||
|
def should_support_postgresql_import_functionality
|
||||||
|
describe "#supports_imports?" do
|
||||||
|
it "should support import" do
|
||||||
|
assert ActiveRecord::Base.supports_import?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#import" do
|
||||||
|
it "should import with a single insert" do
|
||||||
|
# see ActiveRecord::ConnectionAdapters::AbstractAdapter test for more specifics
|
||||||
|
assert_difference "Topic.count", +10 do
|
||||||
|
result = Topic.import Build(3, :topics)
|
||||||
|
assert_equal 1, result.num_inserts
|
||||||
|
|
||||||
|
result = Topic.import Build(7, :topics)
|
||||||
|
assert_equal 1, result.num_inserts
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue