
require 'minirunit'

config = {
  :adapter => 'jdbc',
  :username => 'sa',
  :password => '',
  :driver => 'org.h2.Driver',
  :url => 'jdbc:h2:test.db'
}
RAILS_CONNECTION_ADAPTERS = ['abstract', 'jdbc']

require 'active_record'

ActiveRecord::Base.establish_connection(config)
require 'logger'
ActiveRecord::Base.logger = Logger.new($stdout)
ActiveRecord::Base.logger.level = Logger::DEBUG

class CreateEntries < ActiveRecord::Migration
  def self.up
    create_table "entries", :force => true do |t|
      t.column :title, :string, :limit => 100
      t.column :updated_on, :datetime
      t.column :content, :text
    end
  end

  def self.down
    drop_table "entries"
  end
end

CreateEntries.up

test_ok ActiveRecord::Base.connection.tables.include?('entries')

class Entry < ActiveRecord::Base
end

Entry.delete_all

test_equal 0, Entry.count

TITLE = "First post!"
CONTENT = "Hello from JRuby on Rails!"
NEW_TITLE = "First post updated title"

post = Entry.new
post.title = TITLE
post.content = CONTENT
post.save

test_equal 1, Entry.count

post = Entry.find(:first)
test_equal TITLE, post.title
test_equal CONTENT, post.content

post.title = NEW_TITLE
post.save

post = Entry.find(:first)
test_equal NEW_TITLE, post.title

post.destroy

test_equal 0, Entry.count

CreateEntries.down

# Clean up hsqldb when done
Dir['test.db*'].each {|f| File.delete(f)}
