Sha256: cb0764336dab03a99355c3af46452e97d79beac62e3a7c58f72b7d24e57225f4

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

require_relative 'helper'

describe 'Error' do
  supported_by Swift::DB::Postgres, Swift::DB::Mysql, Swift::DB::Sqlite3 do
    describe 'prepare' do
      before do
        Swift.db do |db|
          db.execute %q{drop table if exists users}
          db.execute %q{create table users(id integer, name text, primary key(id))}
        end
      end

      it 'throws a runtime error on invalid sql' do
        assert_raises(SwiftRuntimeError) do
          Swift.db.prepare('garble garble garble')
        end
      end

      it 'throws a runtime error on invalid bind parameters' do
        assert_raises(SwiftRuntimeError) do
          Swift.db.prepare('select * from users where id > ?').execute
        end
      end
    end
  end

  supported_by Swift::DB::Postgres do
    describe 'execute' do
      before do
        Swift.db do |db|
          db.execute %q{drop table if exists users}
          db.execute %q{create table users(id integer, name text, primary key(id))}
        end
      end

      it 'throws connection error on connection failures' do
        select1 = Swift.db.prepare("select * from users")
        select2 = Swift.db.prepare("select * from users where id > ?")

        Swift.db.close

        assert_raises(SwiftConnectionError) { select1.execute }
        assert_raises(SwiftConnectionError) { select2.execute(1) }
        assert_raises(SwiftConnectionError) { Swift.db.execute("select * from users") }
        assert_raises(SwiftConnectionError) { Swift.db.execute("select * from users where id > ?", 1) }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
swift-0.14.0 test/test_error.rb