aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorStephen Bannasch <stephen.bannasch@gmail.com>2008-12-27 15:37:47 -0500
committerMichael Koziarski <michael@koziarski.com>2009-01-26 16:08:44 +1300
commit4ef9845aa324679b88e19b8223dd90b774215bc6 (patch)
tree5f2eb22515bececed544fb0db5dd6d5701b181d6 /activerecord
parent617ad23574770310fd037529af3d4bd7e722f72a (diff)
downloadrails-4ef9845aa324679b88e19b8223dd90b774215bc6.tar.gz
rails-4ef9845aa324679b88e19b8223dd90b774215bc6.tar.bz2
rails-4ef9845aa324679b88e19b8223dd90b774215bc6.zip
Adding AR tests for JDBC connections
New connections: jdbcmysql jdbcpostgresql jdbcsqlite3 jdbcderby jdbch2 jdbchsqldb jdbcpostgresql To test you will need the native database installed (if one is required), activerecord-jdbc-adapter and the specific activerecord-jdbc<database>-adapter for the database you are testing. Run the tests like this: jruby -S rake test_jdbcmysql Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1685 state:committed]
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/Rakefile8
-rw-r--r--activerecord/test/connections/jdbc_jdbcderby/connection.rb18
-rw-r--r--activerecord/test/connections/jdbc_jdbch2/connection.rb18
-rw-r--r--activerecord/test/connections/jdbc_jdbchsqldb/connection.rb18
-rw-r--r--activerecord/test/connections/jdbc_jdbcmysql/connection.rb26
-rw-r--r--activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb26
-rw-r--r--activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb25
7 files changed, 137 insertions, 2 deletions
diff --git a/activerecord/Rakefile b/activerecord/Rakefile
index f47674d5b7..1c7e2603ee 100644
--- a/activerecord/Rakefile
+++ b/activerecord/Rakefile
@@ -32,9 +32,13 @@ task :default => :test
desc 'Run mysql, sqlite, and postgresql tests'
task :test => %w(test_mysql test_sqlite3 test_postgresql)
-for adapter in %w( mysql postgresql sqlite sqlite3 firebird db2 oracle sybase openbase frontbase )
+for adapter in %w( mysql postgresql sqlite sqlite3 firebird db2 oracle sybase openbase frontbase jdbcmysql jdbcpostgresql jdbcsqlite3 jdbcderby jdbch2 jdbchsqldb )
Rake::TestTask.new("test_#{adapter}") { |t|
- t.libs << "test" << "test/connections/native_#{adapter}"
+ if adapter =~ /jdbc/
+ t.libs << "test" << "test/connections/jdbc_#{adapter}"
+ else
+ t.libs << "test" << "test/connections/native_#{adapter}"
+ end
adapter_short = adapter == 'db2' ? adapter : adapter[/^[a-z]+/]
t.test_files=Dir.glob( "test/cases/**/*_test{,_#{adapter_short}}.rb" ).sort
t.verbose = true
diff --git a/activerecord/test/connections/jdbc_jdbcderby/connection.rb b/activerecord/test/connections/jdbc_jdbcderby/connection.rb
new file mode 100644
index 0000000000..222ef5db38
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbcderby/connection.rb
@@ -0,0 +1,18 @@
+print "Using Derby via JRuby, activerecord-jdbc-adapter and activerecord-jdbcderby-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+ActiveRecord::Base.configurations = {
+ 'arunit' => {
+ :adapter => 'jdbcderby',
+ :database => 'activerecord_unittest'
+ },
+ 'arunit2' => {
+ :adapter => 'jdbcderby',
+ :database => 'activerecord_unittest2'
+ }
+}
+
+ActiveRecord::Base.establish_connection 'arunit'
+Course.establish_connection 'arunit2'
diff --git a/activerecord/test/connections/jdbc_jdbch2/connection.rb b/activerecord/test/connections/jdbc_jdbch2/connection.rb
new file mode 100644
index 0000000000..9d2875e8e7
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbch2/connection.rb
@@ -0,0 +1,18 @@
+print "Using H2 via JRuby, activerecord-jdbc-adapter and activerecord-jdbch2-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+ActiveRecord::Base.configurations = {
+ 'arunit' => {
+ :adapter => 'jdbch2',
+ :database => 'activerecord_unittest'
+ },
+ 'arunit2' => {
+ :adapter => 'jdbch2',
+ :database => 'activerecord_unittest2'
+ }
+}
+
+ActiveRecord::Base.establish_connection 'arunit'
+Course.establish_connection 'arunit2'
diff --git a/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb b/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb
new file mode 100644
index 0000000000..fa943c2c76
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb
@@ -0,0 +1,18 @@
+print "Using HSQLDB via JRuby, activerecord-jdbc-adapter and activerecord-jdbchsqldb-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+ActiveRecord::Base.configurations = {
+ 'arunit' => {
+ :adapter => 'jdbchsqldb',
+ :database => 'activerecord_unittest'
+ },
+ 'arunit2' => {
+ :adapter => 'jdbchsqldb',
+ :database => 'activerecord_unittest2'
+ }
+}
+
+ActiveRecord::Base.establish_connection 'arunit'
+Course.establish_connection 'arunit2'
diff --git a/activerecord/test/connections/jdbc_jdbcmysql/connection.rb b/activerecord/test/connections/jdbc_jdbcmysql/connection.rb
new file mode 100644
index 0000000000..e2517a50eb
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbcmysql/connection.rb
@@ -0,0 +1,26 @@
+print "Using MySQL via JRuby, activerecord-jdbc-adapter and activerecord-jdbcmysql-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+# GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
+# GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
+
+ActiveRecord::Base.configurations = {
+ 'arunit' => {
+ :adapter => 'jdbcmysql',
+ :username => 'rails',
+ :encoding => 'utf8',
+ :database => 'activerecord_unittest',
+ },
+ 'arunit2' => {
+ :adapter => 'jdbcmysql',
+ :username => 'rails',
+ :database => 'activerecord_unittest2'
+ }
+}
+
+ActiveRecord::Base.establish_connection 'arunit'
+Course.establish_connection 'arunit2'
+
diff --git a/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb b/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb
new file mode 100644
index 0000000000..0685da4433
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb
@@ -0,0 +1,26 @@
+print "Using Postgrsql via JRuby, activerecord-jdbc-adapter and activerecord-postgresql-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+# createuser rails --createdb --no-superuser --no-createrole
+# createdb -O rails activerecord_unittest
+# createdb -O rails activerecord_unittest2
+
+ActiveRecord::Base.configurations = {
+ 'arunit' => {
+ :adapter => 'jdbcpostgresql',
+ :username => ENV['USER'] || 'rails',
+ :database => 'activerecord_unittest'
+ },
+ 'arunit2' => {
+ :adapter => 'jdbcpostgresql',
+ :username => ENV['USER'] || 'rails',
+ :database => 'activerecord_unittest2'
+ }
+}
+
+ActiveRecord::Base.establish_connection 'arunit'
+Course.establish_connection 'arunit2'
+
diff --git a/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb b/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb
new file mode 100644
index 0000000000..26d4676ff3
--- /dev/null
+++ b/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb
@@ -0,0 +1,25 @@
+print "Using SQLite3 via JRuby, activerecord-jdbc-adapter and activerecord-jdbcsqlite3-adapter\n"
+require_dependency 'models/course'
+require 'logger'
+ActiveRecord::Base.logger = Logger.new("debug.log")
+
+class SqliteError < StandardError
+end
+
+BASE_DIR = FIXTURES_ROOT
+sqlite_test_db = "#{BASE_DIR}/fixture_database.sqlite3"
+sqlite_test_db2 = "#{BASE_DIR}/fixture_database_2.sqlite3"
+
+def make_connection(clazz, db_file)
+ ActiveRecord::Base.configurations = { clazz.name => { :adapter => 'jdbcsqlite3', :database => db_file, :timeout => 5000 } }
+ unless File.exist?(db_file)
+ puts "SQLite3 database not found at #{db_file}. Rebuilding it."
+ sqlite_command = %Q{sqlite3 "#{db_file}" "create table a (a integer); drop table a;"}
+ puts "Executing '#{sqlite_command}'"
+ raise SqliteError.new("Seems that there is no sqlite3 executable available") unless system(sqlite_command)
+ end
+ clazz.establish_connection(clazz.name)
+end
+
+make_connection(ActiveRecord::Base, sqlite_test_db)
+make_connection(Course, sqlite_test_db2)