mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
pg test, extract network address type tests into separate file.
This commit is contained in:
parent
a3897f9c06
commit
3ac07aa1d7
3 changed files with 79 additions and 51 deletions
|
@ -10,9 +10,6 @@ end
|
|||
class PostgresqlTime < ActiveRecord::Base
|
||||
end
|
||||
|
||||
class PostgresqlNetworkAddress < ActiveRecord::Base
|
||||
end
|
||||
|
||||
class PostgresqlBitString < ActiveRecord::Base
|
||||
end
|
||||
|
||||
|
@ -45,9 +42,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
@connection.execute("INSERT INTO postgresql_times (id, time_interval, scaled_time_interval) VALUES (1, '1 year 2 days ago', '3 weeks ago')")
|
||||
@first_time = PostgresqlTime.find(1)
|
||||
|
||||
@connection.execute("INSERT INTO postgresql_network_addresses (id, cidr_address, inet_address, mac_address) VALUES(1, '192.168.0/24', '172.16.1.254/32', '01:23:45:67:89:0a')")
|
||||
@first_network_address = PostgresqlNetworkAddress.find(1)
|
||||
|
||||
@connection.execute("INSERT INTO postgresql_bit_strings (id, bit_string, bit_string_varying) VALUES (1, B'00010101', X'15')")
|
||||
@first_bit_string = PostgresqlBitString.find(1)
|
||||
|
||||
|
@ -58,7 +52,7 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
end
|
||||
|
||||
teardown do
|
||||
[PostgresqlTsvector, PostgresqlNumber, PostgresqlTime, PostgresqlNetworkAddress,
|
||||
[PostgresqlTsvector, PostgresqlNumber, PostgresqlTime,
|
||||
PostgresqlBitString, PostgresqlOid, PostgresqlTimestampWithZone].each(&:delete_all)
|
||||
end
|
||||
|
||||
|
@ -76,12 +70,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
assert_equal :string, @first_time.column_for_attribute(:scaled_time_interval).type
|
||||
end
|
||||
|
||||
def test_data_type_of_network_address_types
|
||||
assert_equal :cidr, @first_network_address.column_for_attribute(:cidr_address).type
|
||||
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
|
||||
|
@ -119,15 +107,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
assert_equal '-21 days', @first_time.scaled_time_interval
|
||||
end
|
||||
|
||||
def test_network_address_values_ipaddr
|
||||
cidr_address = IPAddr.new '192.168.0.0/24'
|
||||
inet_address = IPAddr.new '172.16.1.254'
|
||||
|
||||
assert_equal cidr_address, @first_network_address.cidr_address
|
||||
assert_equal inet_address, @first_network_address.inet_address
|
||||
assert_equal '01:23:45:67:89:0a', @first_network_address.mac_address
|
||||
end
|
||||
|
||||
def test_bit_string_values
|
||||
assert_equal '00010101', @first_bit_string.bit_string
|
||||
assert_equal '00010101', @first_bit_string.bit_string_varying
|
||||
|
@ -155,20 +134,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
assert_equal '2 years 00:03:00', @first_time.time_interval
|
||||
end
|
||||
|
||||
def test_update_network_address
|
||||
new_inet_address = '10.1.2.3/32'
|
||||
new_cidr_address = '10.0.0.0/8'
|
||||
new_mac_address = 'bc:de:f0:12:34:56'
|
||||
@first_network_address.cidr_address = new_cidr_address
|
||||
@first_network_address.inet_address = new_inet_address
|
||||
@first_network_address.mac_address = new_mac_address
|
||||
assert @first_network_address.save
|
||||
assert @first_network_address.reload
|
||||
assert_equal @first_network_address.cidr_address, new_cidr_address
|
||||
assert_equal @first_network_address.inet_address, new_inet_address
|
||||
assert_equal @first_network_address.mac_address, new_mac_address
|
||||
end
|
||||
|
||||
def test_update_bit_string
|
||||
new_bit_string = '11111111'
|
||||
new_bit_string_varying = '0xFF'
|
||||
|
@ -186,20 +151,6 @@ class PostgresqlDataTypeTest < ActiveRecord::TestCase
|
|||
assert_raise(ActiveRecord::StatementInvalid) { assert @first_bit_string.save }
|
||||
end
|
||||
|
||||
def test_invalid_network_address
|
||||
@first_network_address.cidr_address = 'invalid addr'
|
||||
assert_nil @first_network_address.cidr_address
|
||||
assert_equal 'invalid addr', @first_network_address.cidr_address_before_type_cast
|
||||
assert @first_network_address.save
|
||||
|
||||
@first_network_address.reload
|
||||
|
||||
@first_network_address.inet_address = 'invalid addr'
|
||||
assert_nil @first_network_address.inet_address
|
||||
assert_equal 'invalid addr', @first_network_address.inet_address_before_type_cast
|
||||
assert @first_network_address.save
|
||||
end
|
||||
|
||||
def test_update_oid
|
||||
new_value = 567890
|
||||
@first_oid.obj_id = new_value
|
||||
|
|
|
@ -4,7 +4,7 @@ require "cases/helper"
|
|||
require 'active_record/base'
|
||||
require 'active_record/connection_adapters/postgresql_adapter'
|
||||
|
||||
class PostgresqlByteaTest < ActiveRecord::TestCase
|
||||
class PostgresqlMoneyTest < ActiveRecord::TestCase
|
||||
class PostgresqlMoney < ActiveRecord::Base; end
|
||||
|
||||
setup do
|
||||
|
|
77
activerecord/test/cases/adapters/postgresql/network_test.rb
Normal file
77
activerecord/test/cases/adapters/postgresql/network_test.rb
Normal file
|
@ -0,0 +1,77 @@
|
|||
# encoding: utf-8
|
||||
|
||||
require "cases/helper"
|
||||
require 'active_record/base'
|
||||
require 'active_record/connection_adapters/postgresql_adapter'
|
||||
|
||||
class PostgresqlNetworkTest < ActiveRecord::TestCase
|
||||
class PostgresqlNetworkAddress < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def test_cidr_column
|
||||
column = PostgresqlNetworkAddress.columns_hash["cidr_address"]
|
||||
assert_equal :cidr, column.type
|
||||
assert_equal "cidr", column.sql_type
|
||||
assert_not column.number?
|
||||
assert_not column.text?
|
||||
assert_not column.binary?
|
||||
assert_not column.array
|
||||
end
|
||||
|
||||
def test_inet_column
|
||||
column = PostgresqlNetworkAddress.columns_hash["inet_address"]
|
||||
assert_equal :inet, column.type
|
||||
assert_equal "inet", column.sql_type
|
||||
assert_not column.number?
|
||||
assert_not column.text?
|
||||
assert_not column.binary?
|
||||
assert_not column.array
|
||||
end
|
||||
|
||||
def test_macaddr_column
|
||||
column = PostgresqlNetworkAddress.columns_hash["mac_address"]
|
||||
assert_equal :macaddr, column.type
|
||||
assert_equal "macaddr", column.sql_type
|
||||
assert_not column.number?
|
||||
assert_not column.text?
|
||||
assert_not column.binary?
|
||||
assert_not column.array
|
||||
end
|
||||
|
||||
def test_network_types
|
||||
PostgresqlNetworkAddress.create(cidr_address: '192.168.0.0/24',
|
||||
inet_address: '172.16.1.254/32',
|
||||
mac_address: '01:23:45:67:89:0a')
|
||||
|
||||
address = PostgresqlNetworkAddress.first
|
||||
assert_equal IPAddr.new('192.168.0.0/24'), address.cidr_address
|
||||
assert_equal IPAddr.new('172.16.1.254'), address.inet_address
|
||||
assert_equal '01:23:45:67:89:0a', address.mac_address
|
||||
|
||||
address.cidr_address = '10.1.2.3/32'
|
||||
address.inet_address = '10.0.0.0/8'
|
||||
address.mac_address = 'bc:de:f0:12:34:56'
|
||||
|
||||
address.save!
|
||||
assert address.reload
|
||||
assert_equal IPAddr.new('10.1.2.3/32'), address.cidr_address
|
||||
assert_equal IPAddr.new('10.0.0.0/8'), address.inet_address
|
||||
assert_equal 'bc:de:f0:12:34:56', address.mac_address
|
||||
end
|
||||
|
||||
def test_invalid_network_address
|
||||
invalid_address = PostgresqlNetworkAddress.new(cidr_address: 'invalid addr',
|
||||
inet_address: 'invalid addr')
|
||||
assert_nil invalid_address.cidr_address
|
||||
assert_nil invalid_address.inet_address
|
||||
assert_equal 'invalid addr', invalid_address.cidr_address_before_type_cast
|
||||
assert_equal 'invalid addr', invalid_address.inet_address_before_type_cast
|
||||
assert invalid_address.save
|
||||
|
||||
invalid_address.reload
|
||||
assert_nil invalid_address.cidr_address
|
||||
assert_nil invalid_address.inet_address
|
||||
assert_nil invalid_address.cidr_address_before_type_cast
|
||||
assert_nil invalid_address.inet_address_before_type_cast
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue