aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/defaults_test.rb
diff options
context:
space:
mode:
authorJonathan Viney <jonathan.viney@gmail.com>2008-08-31 22:19:59 +1200
committerHongli Lai (Phusion) <hongli@phusion.nl>2008-11-03 20:55:33 +0100
commitb1b204abbb6d010284120598aec30cf5dcd096f6 (patch)
tree4b2dbad200ada8e8ea61b16f5809bc4e80ec63f2 /activerecord/test/cases/defaults_test.rb
parentb3420f5a2e3c38e5efc2b3d995354c39af09569e (diff)
downloadrails-b1b204abbb6d010284120598aec30cf5dcd096f6.tar.gz
rails-b1b204abbb6d010284120598aec30cf5dcd096f6.tar.bz2
rails-b1b204abbb6d010284120598aec30cf5dcd096f6.zip
Fix what looks like a Mysql bug with transactions, savepoints, and create table.
Diffstat (limited to 'activerecord/test/cases/defaults_test.rb')
-rw-r--r--activerecord/test/cases/defaults_test.rb47
1 files changed, 26 insertions, 21 deletions
diff --git a/activerecord/test/cases/defaults_test.rb b/activerecord/test/cases/defaults_test.rb
index ee84cb8af8..3c4309753e 100644
--- a/activerecord/test/cases/defaults_test.rb
+++ b/activerecord/test/cases/defaults_test.rb
@@ -48,8 +48,33 @@ class DefaultTest < ActiveRecord::TestCase
ensure
klass.connection.drop_table(klass.table_name) rescue nil
end
+ end
+
+ if current_adapter?(:PostgreSQLAdapter, :SQLServerAdapter, :FirebirdAdapter, :OpenBaseAdapter, :OracleAdapter)
+ def test_default_integers
+ default = Default.new
+ assert_instance_of Fixnum, default.positive_integer
+ assert_equal 1, default.positive_integer
+ assert_instance_of Fixnum, default.negative_integer
+ assert_equal -1, default.negative_integer
+ assert_instance_of BigDecimal, default.decimal_number
+ assert_equal BigDecimal.new("2.78"), default.decimal_number
+ end
+ end
+
+ if current_adapter?(:PostgreSQLAdapter)
+ def test_multiline_default_text
+ # older postgres versions represent the default with escapes ("\\012" for a newline)
+ assert ( "--- []\n\n" == Default.columns_hash['multiline_default'].default ||
+ "--- []\\012\\012" == Default.columns_hash['multiline_default'].default)
+ end
+ end
+end
-
+if current_adapter?(:MysqlAdapter)
+ class DefaultsTestWithoutTransactionalFixtures < ActiveRecord::TestCase
+ self.use_transactional_fixtures = false
+
# MySQL uses an implicit default 0 rather than NULL unless in strict mode.
# We use an implicit NULL so schema.rb is compatible with other databases.
def test_mysql_integer_not_null_defaults
@@ -77,24 +102,4 @@ class DefaultTest < ActiveRecord::TestCase
klass.connection.drop_table(klass.table_name) rescue nil
end
end
-
- if current_adapter?(:PostgreSQLAdapter, :SQLServerAdapter, :FirebirdAdapter, :OpenBaseAdapter, :OracleAdapter)
- def test_default_integers
- default = Default.new
- assert_instance_of Fixnum, default.positive_integer
- assert_equal 1, default.positive_integer
- assert_instance_of Fixnum, default.negative_integer
- assert_equal -1, default.negative_integer
- assert_instance_of BigDecimal, default.decimal_number
- assert_equal BigDecimal.new("2.78"), default.decimal_number
- end
- end
-
- if current_adapter?(:PostgreSQLAdapter)
- def test_multiline_default_text
- # older postgres versions represent the default with escapes ("\\012" for a newline)
- assert ( "--- []\n\n" == Default.columns_hash['multiline_default'].default ||
- "--- []\\012\\012" == Default.columns_hash['multiline_default'].default)
- end
- end
end