Sha256: b6d7d70413058d62d73559543ab5b573c5e6ab9a46cf6b1324d5e42a784c0041

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 KB

Contents

require 'postgres'
require 'date'
require 'test/unit'
class TC_MyTest < Test::Unit::TestCase
  def setup
    @conn = PGconn.new('dbname' => 'template1')
  end

  def test_conversion
    query = <<-EOT
select true as true_value,
       false as false_value,
       '12345\\\\111\\\\000\\\\111TEST'::bytea as bytea_value,
       '2005-11-30'::date as date_value,
       '12:00:00'::time as time_value,
       now() as date_time_value,
       1.5::float as float_value,
       12345.5678::numeric as numeric_value,
       1234.56::numeric(10) as numeric_10_value,
       12345.12345::numeric(10,5) as numeric_10_5_value
EOT
    res = @conn.exec(query)
    assert_equal(res.num_tuples, 1)
    assert_equal(res.num_fields, 10)
    tuple = res.result[0]
    puts tuple
    assert_equal(true, tuple['true_value'])
    assert_equal(false, tuple['false_value'])
    assert_equal("12345\111\000\111TEST", tuple['bytea_value'])
    puts PGconn.escape_bytea(tuple['bytea_value'])
    assert_equal("12345I\\\\000ITEST", PGconn.escape_bytea(tuple['bytea_value']))
    assert_equal(Date.parse('2005-11-30'), tuple['date_value'])
    puts tuple['date_value']
    assert_kind_of(Time, tuple['time_value'])
    puts tuple['time_value']
    assert_kind_of(DateTime, tuple['date_time_value'])
    puts tuple['date_time_value']
    assert_equal(1.5, tuple['float_value'])
    puts PGconn.quote(tuple['numeric_value'])
    assert_equal(BigDecimal("12345.5678"), tuple['numeric_value'])
    assert_equal(1235, tuple['numeric_10_value'])
    assert_kind_of(Integer, tuple['numeric_10_value'])
    assert_equal(BigDecimal("12345.12345"), tuple['numeric_10_5_value'])
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ruby-postgres-0.7.1.2005.11.26 test.rb