Sha256: fa8c2aa65db3bc6970c446cab60ba3b7fb7f8a3462dceb97c8ebad83a3df3eec

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

module TestUtil

  require 'TestConfig'

  include TestConfig
  include SqlPostgres

  def testDbArgs
    {'db_name'=>TEST_DB_NAME}
  end

  def testForTestDb
    begin
      Connection.new(testDbArgs)
    rescue PGError => message
      puts "Creating test database"
      system("psql -c 'create database #{TEST_DB_NAME}' template1 > /dev/null 2>&1")
    end
  end

  def removeTestDb
    puts "Removing test database"
    system("psql -c 'drop database #{TEST_DB_NAME}' template1 > /dev/null 2>&1")
  end

  def makeTestConnection
    if block_given?
      Connection.open(testDbArgs) do |connection|
        yield(connection)
      end
    else
      Connection.new(testDbArgs)
    end
  end

  def setDefaultConnection(connection)
    oldDefault = Connection.default
    Connection.default = connection
    begin
      yield
    ensure
      Connection.default = oldDefault
    end
  end

  def testTableName(suffix)
    [TEST_DB_PREFIX, suffix].join('')
  end
  
  def table1
    testTableName("foo")
  end

  def table2
    testTableName("bar")
  end

  def table3 
    testTableName("baz")
  end

  def allCharactersExceptNull
    allCharacters(1)
  end

  def allCharacters(floor = 0)
    s = (floor..255).to_a.collect do |i|
      i.chr
    end.join
    if s.respond_to?(:force_encoding)
      s = s.force_encoding('ASCII-8BIT')
    end
    s
  end

  def setenv(name, value)
    old_value = ENV[name]
    ENV[name] = value
    begin
      yield
    ensure
      ENV[name] = old_value
    end
  end

end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sqlpostgres-1.2.6 test/TestUtil.rb
sqlpostgres-1.2.5 test/TestUtil.rb
sqlpostgres-1.2.4 test/TestUtil.rb