blob: e99af07970937a80b29fcb82059ee558eccf2d94 (
plain) (
tree)
|
|
# 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
|