Sha256: cfae36cf12bcc10b69b5bae38a0bd41f3e6e8b4f880a576ba4ffedd26a545f69

Contents?: true

Size: 1.56 KB

Versions: 9

Compression:

Stored size: 1.56 KB

Contents

require_relative 'helper'

describe 'Error' do
  supported_by Swift::Adapter::Postgres, Swift::Adapter::Mysql, Swift::Adapter::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(Swift::RuntimeError) do
          Swift.db.prepare('garble garble garble')
        end
      end

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

  supported_by Swift::Adapter::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(Swift::ConnectionError) { select1.execute }
        assert_raises(Swift::ConnectionError) { select2.execute(1) }
        assert_raises(Swift::ConnectionError) { Swift.db.execute("select * from users") }
        assert_raises(Swift::ConnectionError) { Swift.db.execute("select * from users where id > ?", 1) }
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
swift-1.2.3 test/test_error.rb
swift-1.2.2 test/test_error.rb
swift-1.2.1 test/test_error.rb
swift-1.2.0 test/test_error.rb
swift-1.1.0 test/test_error.rb
swift-1.0.3 test/test_error.rb
swift-1.0.2 test/test_error.rb
swift-1.0.1 test/test_error.rb
swift-1.0.0 test/test_error.rb