Sha256: 42a87fd13ef860b7b6e58983a949f7967368538f5a4a0951c1e3a2010d32483f

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

class MockPGconn

  @@state = {}

  def MockPGconn.state
    @@state
  end

  def state
    @@state
  end

  def MockPGconn.connect(*args)
    @@state[:open] = true
    @@state[:openArgs] = args
    @@state[:connection] = MockPGconn.new
  end

  def set_client_encoding(encoding)
    @@state[:encoding] = encoding
  end
  
  def exec(statement)
    @@state[:statements] ||= []
    @@state[:statements] << statement
    result = (state[:results] || []).shift
    raise result if result.kind_of?(Exception)
    result
  end

  def close
    raise "Already closed" unless @@state[:open]
    @@state[:open] = false
    raise @@state[:close_exception] if @@state[:close_exception]
  end

end

module SqlPostgres

  class Connection

    def Connection.mockPgClass
      oldPgClass = @@pgClass
      begin
        MockPGconn.state.clear
        @@pgClass = MockPGconn
        yield
      ensure
        @@pgClass = oldPgClass
      end
    end

  end

end

# Local Variables:
# tab-width: 2
# ruby-indent-level: 2
# indent-tabs-mode: nil
# End:

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sqlpostgres-1.3.0 test/MockPGconn.rb
sqlpostgres-1.2.6 test/MockPGconn.rb
sqlpostgres-1.2.5 test/MockPGconn.rb
sqlpostgres-1.2.4 test/MockPGconn.rb