diff options
author | Rob Worley <robert.worley@gmail.com> | 2013-01-04 21:22:34 +0000 |
---|---|---|
committer | Rob Worley <robert.worley@gmail.com> | 2013-01-04 21:22:34 +0000 |
commit | e209107a518c70c24d3d05ce246b8a79de9c7632 (patch) | |
tree | 4b81505089af848226931d13e5283bda7e4bd00d /activerecord/test/cases | |
parent | cfb3019a1a7d699282a650b68cba7201b5e9f379 (diff) | |
download | rails-e209107a518c70c24d3d05ce246b8a79de9c7632.tar.gz rails-e209107a518c70c24d3d05ce246b8a79de9c7632.tar.bz2 rails-e209107a518c70c24d3d05ce246b8a79de9c7632.zip |
Support for PostgreSQL's ltree data type.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/datatype_test.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/ltree_test.rb | 44 | ||||
-rw-r--r-- | activerecord/test/cases/schema_dumper_test.rb | 7 |
3 files changed, 54 insertions, 1 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/datatype_test.rb b/activerecord/test/cases/adapters/postgresql/datatype_test.rb index c7ce43d71e..06e0983780 100644 --- a/activerecord/test/cases/adapters/postgresql/datatype_test.rb +++ b/activerecord/test/cases/adapters/postgresql/datatype_test.rb @@ -30,6 +30,9 @@ end class PostgresqlUUID < ActiveRecord::Base end +class PostgresqlLtree < ActiveRecord::Base +end + class PostgresqlDataTypeTest < ActiveRecord::TestCase self.use_transactional_fixtures = false @@ -97,7 +100,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase assert_equal :inet, @first_network_address.column_for_attribute(:inet_address).type assert_equal :macaddr, @first_network_address.column_for_attribute(:mac_address).type end - def test_data_type_of_bit_string_types assert_equal :string, @first_bit_string.column_for_attribute(:bit_string).type assert_equal :string, @first_bit_string.column_for_attribute(:bit_string_varying).type diff --git a/activerecord/test/cases/adapters/postgresql/ltree_test.rb b/activerecord/test/cases/adapters/postgresql/ltree_test.rb new file mode 100644 index 0000000000..20228d1fc4 --- /dev/null +++ b/activerecord/test/cases/adapters/postgresql/ltree_test.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 + +require "cases/helper" +require 'active_record/base' +require 'active_record/connection_adapters/postgresql_adapter' + +class PostgresqlLtreeTest < ActiveRecord::TestCase + class Ltree < ActiveRecord::Base + self.table_name = 'ltrees' + end + + def setup + @connection = ActiveRecord::Base.connection + begin + @connection.transaction do + @connection.create_table('ltrees') do |t| + t.ltree 'path' + end + end + rescue ActiveRecord::StatementInvalid + return skip "do not test on PG without ltree" + end + @column = Ltree.columns.find { |c| c.name == 'path' } + end + + def teardown + @connection.execute 'drop table if exists ltrees' + end + + def test_column + assert_equal :ltree, @column.type + end + + def test_write + x = Ltree.new(:path => '1.2.3.4') + assert x.save! + end + + def test_select + @connection.execute "insert into ltrees (path) VALUES ('1.2.3')" + x = Ltree.first + assert_equal('1.2.3', x.path) + end +end diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb index 907b7bec30..cae12e0e3a 100644 --- a/activerecord/test/cases/schema_dumper_test.rb +++ b/activerecord/test/cases/schema_dumper_test.rb @@ -280,6 +280,13 @@ class SchemaDumperTest < ActiveRecord::TestCase end end + def test_schema_dump_includes_ltrees_shorthand_definition + output = standard_dump + if %r{create_table "postgresql_ltrees"} =~ output + assert_match %r[t.ltree "path"], output + end + end + def test_schema_dump_includes_arrays_shorthand_definition output = standard_dump if %r{create_table "postgresql_arrays"} =~ output |