Title: [597] trunk/activerecord-jdbc: - simpler error messaging when types can't be found
Revision
597
Author
nicksieger
Date
2007-05-23 20:13:45 -0400 (Wed, 23 May 2007)

Log Message

- simpler error messaging when types can't be found
- multibyte tests and fixes -- make sure your default charset is set to utf-8 in MySQL

Modified Paths

Added Paths

Diff

Modified: trunk/activerecord-jdbc/Rakefile (596 => 597)


--- trunk/activerecord-jdbc/Rakefile	2007-05-19 01:20:56 UTC (rev 596)
+++ trunk/activerecord-jdbc/Rakefile	2007-05-24 00:13:45 UTC (rev 597)
@@ -46,28 +46,23 @@
 end
 
 Rake::TestTask.new(:test_mysql) do |t|
-  t.test_files = FileList['test/mysql_simple_test.rb']
+  t.test_files = FileList['test/mysql_*_test.rb']
   t.libs << 'test'
 end
 
-Rake::TestTask.new(:test_mysql_multibyte) do |t|
-  t.test_files = FileList['test/mysql_multibyte_test.rb']
-  t.libs << 'test'
-end
-
 Rake::TestTask.new(:test_hsqldb) do |t|
   t.test_files = FileList['test/hsqldb_simple_test.rb']
   t.libs << 'test'
 end
 
 Rake::TestTask.new(:test_derby) do |t|
-  t.test_files = FileList['test/derby_simple_test.rb', 
+  t.test_files = FileList['test/derby_*_test.rb', 
     'test/activerecord/connection_adapters/type_conversion_test.rb']
   t.libs << 'test'
 end
 
 Rake::TestTask.new(:test_postgresql) do |t|
-  t.test_files = FileList['test/postgres_simple_test.rb']
+  t.test_files = FileList['test/postgres_*_test.rb']
   t.libs << 'test'
 end
 

Modified: trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb (596 => 597)


--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb	2007-05-19 01:20:56 UTC (rev 596)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb	2007-05-24 00:13:45 UTC (rev 597)
@@ -140,7 +140,7 @@
           return new_types.first if new_types.length == 1
           types = new_types if new_types.length > 0
         end
-        raise "unable to choose type from: #{types.collect{|t| [t['type_name'],t]}.inspect} for #{ar_type}"        
+        raise "unable to choose type for #{ar_type} from:\n#{types.collect{|t| t['type_name']}.inspect}"
       end
     end
 

Added: trunk/activerecord-jdbc/test/derby_multibyte_test.rb (0 => 597)


--- trunk/activerecord-jdbc/test/derby_multibyte_test.rb	                        (rev 0)
+++ trunk/activerecord-jdbc/test/derby_multibyte_test.rb	2007-05-24 00:13:45 UTC (rev 597)
@@ -0,0 +1,12 @@
+# To run this script, run the following in a mysql instance:
+#
+#   drop database if exists weblog_development;
+#   create database weblog_development;
+#   grant all on weblog_development.* to [EMAIL PROTECTED];
+
+require 'jdbc_common'
+require 'db/derby'
+
+class DerbyMultibyteTest < Test::Unit::TestCase
+  include MultibyteTestMethods
+end

Modified: trunk/activerecord-jdbc/test/mysql_multibyte_test.rb (596 => 597)


--- trunk/activerecord-jdbc/test/mysql_multibyte_test.rb	2007-05-19 01:20:56 UTC (rev 596)
+++ trunk/activerecord-jdbc/test/mysql_multibyte_test.rb	2007-05-24 00:13:45 UTC (rev 597)
@@ -7,44 +7,6 @@
 require 'jdbc_common'
 require 'db/mysql'
 
-require 'java'
-
-include_class 'java.util.Properties'
-include_class 'java.sql.DriverManager'
-
-class ActiveRecord::Base
-  cattr_accessor :defined_connections
-end
-
 class MysqlMultibyteTest < Test::Unit::TestCase
-  include MigrationSetup
-
-  def setup
-    super
-    config = ActiveRecord::Base.defined_connections["ActiveRecord::Base"].config
-    props = Properties.new
-    props.setProperty("user", config[:username])
-    props.setProperty("password", config[:password])
-    @java_con = DriverManager.getConnection(config[:url], props)
-    @java_con.setAutoCommit(true)
-  end
-
-  def teardown
-    @java_con.close
-    super
-  end
-
-  def test_select_multibyte_string
-    @java_con.createStatement().execute("insert into entries (title) values ('テスト')")
-    entry = Entry.find(:first)
-    assert_equal "テスト", entry.title
-    assert_equal entry, Entry.find_by_title("テスト")
-  end
-
-  def test_update_multibyte_string
-    Entry.create!(:title => "テスト")
-    rs = @java_con.createStatement().executeQuery("select title from entries")
-    assert rs.next
-    assert_equal "テスト", rs.getString(1)
-  end
+  include MultibyteTestMethods
 end

Added: trunk/activerecord-jdbc/test/postgres_multibyte_test.rb (0 => 597)


--- trunk/activerecord-jdbc/test/postgres_multibyte_test.rb	                        (rev 0)
+++ trunk/activerecord-jdbc/test/postgres_multibyte_test.rb	2007-05-24 00:13:45 UTC (rev 597)
@@ -0,0 +1,12 @@
+# To run this script, set up the following postgres user and database:
+#
+#   sudo -u postgres createuser -D -A -P blog
+#   sudo -u postgres createdb -O blog weblog_development
+#
+
+require 'jdbc_common'
+require 'db/postgres'
+
+class PostgresMultibyteTest < Test::Unit::TestCase
+  include MultibyteTestMethods
+end

Modified: trunk/activerecord-jdbc/test/simple.rb (596 => 597)


--- trunk/activerecord-jdbc/test/simple.rb	2007-05-19 01:20:56 UTC (rev 596)
+++ trunk/activerecord-jdbc/test/simple.rb	2007-05-24 00:13:45 UTC (rev 597)
@@ -114,3 +114,40 @@
   end
 
 end
+
+class ActiveRecord::Base
+  cattr_accessor :defined_connections
+end
+
+module MultibyteTestMethods
+  include MigrationSetup
+
+  def setup
+    super
+    config = ActiveRecord::Base.defined_connections["ActiveRecord::Base"].config
+    props = java.util.Properties.new
+    props.setProperty("user", config[:username])
+    props.setProperty("password", config[:password])
+    @java_con = java.sql.DriverManager.getConnection(config[:url], props)
+    @java_con.setAutoCommit(true)
+  end
+
+  def teardown
+    @java_con.close
+    super
+  end
+
+  def test_select_multibyte_string
+    @java_con.createStatement().execute("insert into entries (title) values ('テスト')")
+    entry = Entry.find(:first)
+    assert_equal "テスト", entry.title
+    assert_equal entry, Entry.find_by_title("テスト")
+  end
+
+  def test_update_multibyte_string
+    Entry.create!(:title => "テスト")
+    rs = @java_con.createStatement().executeQuery("select title from entries")
+    assert rs.next
+    assert_equal "テスト", rs.getString(1)
+  end
+end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to