aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-03-22 19:41:29 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2013-03-22 19:41:29 -0700
commit7a872e9d84be2f0205d8ca811698be92195ef0e1 (patch)
treefaceaaedddf84672e014617c57f3698672cacc70 /activerecord/test
parentdb3a6e6a7fc80e85afe239abf5d01aa30685c1c1 (diff)
parentbc8ebefe9825dbff2cffa29ff015a1e7a31f9812 (diff)
downloadrails-7a872e9d84be2f0205d8ca811698be92195ef0e1.tar.gz
rails-7a872e9d84be2f0205d8ca811698be92195ef0e1.tar.bz2
rails-7a872e9d84be2f0205d8ca811698be92195ef0e1.zip
Merge branch 'schema'
* schema: add uuid primary key support separate primary key from column type push the mysql add_column up to the abstract adapter allow multiple add columns pull add_column_options! off the pg connection class add a pg visitor for dealing with schema modification push alter table add column sql in to the schema modification visitor there is no reason to check for an already defined column push column initialization down to the factory method @columns list is no longer necessary keep ivars private, do not manipulate them outside their owner object factory methods should not alter object state push SQL generation inside the schema creation object mostly decouple TableDefinition from the database connection remove to_sql from TableDefinition decouple column definition from the database connection stop depending on sql_type in pg remove knowledge of SQL from the column definition object
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/adapters/postgresql/uuid_test.rb10
-rw-r--r--activerecord/test/cases/column_definition_test.rb13
2 files changed, 17 insertions, 6 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/uuid_test.rb b/activerecord/test/cases/adapters/postgresql/uuid_test.rb
index 53002c5265..c0c0e8898c 100644
--- a/activerecord/test/cases/adapters/postgresql/uuid_test.rb
+++ b/activerecord/test/cases/adapters/postgresql/uuid_test.rb
@@ -35,6 +35,16 @@ class PostgresqlUUIDTest < ActiveRecord::TestCase
@connection.execute 'drop table if exists pg_uuids'
end
+ def test_id_is_uuid
+ assert_equal :uuid, UUID.columns_hash['id'].type
+ assert UUID.primary_key
+ end
+
+ def test_id_has_a_default
+ u = UUID.create
+ assert_not_nil u.id
+ end
+
def test_auto_create_uuid
u = UUID.create
u.reload
diff --git a/activerecord/test/cases/column_definition_test.rb b/activerecord/test/cases/column_definition_test.rb
index bd2fbaa7db..dbb2f223cd 100644
--- a/activerecord/test/cases/column_definition_test.rb
+++ b/activerecord/test/cases/column_definition_test.rb
@@ -8,6 +8,7 @@ module ActiveRecord
def @adapter.native_database_types
{:string => "varchar"}
end
+ @viz = @adapter.schema_creation
end
def test_can_set_coder
@@ -35,25 +36,25 @@ module ActiveRecord
def test_should_not_include_default_clause_when_default_is_null
column = Column.new("title", nil, "varchar(20)")
column_def = ColumnDefinition.new(
- @adapter, column.name, "string",
+ column.name, "string",
column.limit, column.precision, column.scale, column.default, column.null)
- assert_equal "title varchar(20)", column_def.to_sql
+ assert_equal "title varchar(20)", @viz.accept(column_def)
end
def test_should_include_default_clause_when_default_is_present
column = Column.new("title", "Hello", "varchar(20)")
column_def = ColumnDefinition.new(
- @adapter, column.name, "string",
+ column.name, "string",
column.limit, column.precision, column.scale, column.default, column.null)
- assert_equal %Q{title varchar(20) DEFAULT 'Hello'}, column_def.to_sql
+ assert_equal %Q{title varchar(20) DEFAULT 'Hello'}, @viz.accept(column_def)
end
def test_should_specify_not_null_if_null_option_is_false
column = Column.new("title", "Hello", "varchar(20)", false)
column_def = ColumnDefinition.new(
- @adapter, column.name, "string",
+ column.name, "string",
column.limit, column.precision, column.scale, column.default, column.null)
- assert_equal %Q{title varchar(20) DEFAULT 'Hello' NOT NULL}, column_def.to_sql
+ assert_equal %Q{title varchar(20) DEFAULT 'Hello' NOT NULL}, @viz.accept(column_def)
end
if current_adapter?(:MysqlAdapter)