class SpecDb

  #TEST_DB_NAME="jam_admin_test"

  def self.reset_test_database
    ENV['RAILS_ENV'] = 'test'
    db_config        = YAML::load(File.open('config/database.yml'))[ENV['RAILS_ENV']]
    db_test_name     = db_config["database"]
    # jump into the 'postgres' database, just so we have somewhere to 'land' other than our test db,
    # since we are going to drop/recreate it 
    db_config_admin  = db_config.merge({'database' => 'postgres', 'schema_search_path' => 'public'})
    ActiveRecord::Base.establish_connection(db_config_admin)
    ActiveRecord::Base.connection.execute("DROP DATABASE IF EXISTS #{db_test_name}")
    ActiveRecord::Base.connection.execute("CREATE DATABASE #{db_test_name}")
  end

  def self.recreate_database
    self.reset_test_database
    JamRuby::TestSupport.migrate_database
  end
  
  # def self.recreate_database(db_config)
  #   recreate_database_jdbc(db_config)
  # end

  # def self.recreate_database_jdbc(db_config)
  #   db_test_name = db_config["database"]
  #   # jump into the 'postgres' database, just so we have somewhere to 'land' other than our test db,
  #   # since we are going to drop/recreate it
  #   db_config["database"] = "postgres"
  #   ActiveRecord::Base.establish_connection(db_config)
  #   ActiveRecord::Base.connection.execute("DROP DATABASE IF EXISTS #{db_test_name}")
  #   ActiveRecord::Base.connection.execute("CREATE DATABASE #{db_test_name}")
  #   db_config["database"] = db_test_name
  #   JamDb::Migrator.new.migrate(:dbname => db_config["database"], :user => db_config["username"], :password => db_config["password"], :host => db_config["host"])
  # end

  # def self.recreate_database_pg

  #   conn = PG::Connection.open("dbname=postgres")
  #   conn.exec("DROP DATABASE IF EXISTS #{TEST_DB_NAME}")
  #   conn.exec("CREATE DATABASE #{TEST_DB_NAME}")
  #   JamDb::Migrator.new.migrate(:dbname => TEST_DB_NAME)
  # end
end
