File: test_blob.rb

package info (click to toggle)
ruby-dbd-pg 0.3.9%2Bgem2deb-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 348 kB
  • ctags: 231
  • sloc: ruby: 2,214; sql: 91; makefile: 2
file content (36 lines) | stat: -rw-r--r-- 1,351 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class TestPostgresBlob < DBDConfig.testbase(:postgresql)
    DATA = "this is my new binary object"

    def test_insert
        assert @dbh
        assert @dbh.ping

        # test with DBI::Binary
        assert_equal 1, @dbh.do("INSERT INTO blob_test (name, data) VALUES (?,?)", "test", DBI::Binary.new(DATA))

        # test with blob_create directly
        blob = @dbh.func(:blob_create, PGconn::INV_WRITE)
        assert blob
        assert @dbh.func(:blob_write, blob, DATA)
        assert_equal 1, @dbh.do("INSERT INTO blob_test (name, data) VALUES (?,?)", "test (2)", blob)

        # test with blob_import directly
        File.open('/tmp/pg_dbi_import_test', 'w') { |f| f << DATA }
        blob = @dbh.func(:blob_import, '/tmp/pg_dbi_import_test')
        assert blob
        assert_equal 1, @dbh.do("INSERT INTO blob_test (name, data) VALUES (?,?)", "test (2)", blob)

        index = 0
        @dbh.select_all("SELECT name, data FROM blob_test") do |name, data|
            index += 1
            assert_equal DATA, @dbh.func(:blob_read, data, DATA.length)
            @dbh.func(:blob_export, data, '/tmp/pg_dbi_read_test')
            assert_equal DATA, File.read('/tmp/pg_dbi_read_test')
        end

        assert_equal 3, index

        File.unlink("/tmp/pg_dbi_read_test")
        File.unlink("/tmp/pg_dbi_import_test")
    end
end