Skip to content

Commit

Permalink
Make transactional fixtures optional.
Browse files Browse the repository at this point in the history
  • Loading branch information
david committed Oct 25, 2008
1 parent 46c2425 commit c72ba10
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 23 deletions.
3 changes: 3 additions & 0 deletions lib/generators/cucumber/templates/features/env.rb
Expand Up @@ -16,5 +16,8 @@
require "merb_cucumber/helpers/activerecord"
<% end -%>
# Uncomment if you want transactional fixtures
# Merb::Test::World::Base.use_transactional_fixtures
Merb.start_environment(:testing => true, :adapter => 'runner', :environment => ENV['MERB_ENV'] || 'test')

10 changes: 4 additions & 6 deletions lib/merb_cucumber/helpers/activerecord.rb
Expand Up @@ -4,9 +4,8 @@ module Merb
module Test
module Helpers
module ActiveRecord

def self.included(base)

module ClassMethods
def use_transactional_fixtures
# Let's set a transaction on the ActiveRecord connection when starting a new scenario
$main.Before do
if ActiveRecord::Base.connection.respond_to?(:increment_open_transactions)
Expand All @@ -26,15 +25,14 @@ def self.included(base)
ActiveRecord::Base.send :decrement_open_transactions
end
end

end
end

end
end

module World
module Base
include Helpers::ActiveRecord
extend Helpers::ActiveRecord::ClassMethods
end
end
end
Expand Down
32 changes: 15 additions & 17 deletions lib/merb_cucumber/helpers/datamapper.rb
Expand Up @@ -4,34 +4,32 @@ module Merb
module Test
module Helpers
module DataMapper

def self.included(base)

$main.Before do
repository(:default) do
transaction = ::DataMapper::Transaction.new(repository)
transaction.begin
repository.adapter.push_transaction(transaction)
module ClassMethods
def use_transactional_fixtures
$main.Before do
repository(:default) do
transaction = ::DataMapper::Transaction.new(repository)
transaction.begin
repository.adapter.push_transaction(transaction)
end
end
end

$main.After do
repository(:default) do
while repository.adapter.current_transaction
repository.adapter.current_transaction.rollback
repository.adapter.pop_transaction
$main.After do
repository(:default) do
while repository.adapter.current_transaction
repository.adapter.current_transaction.rollback
repository.adapter.pop_transaction
end
end
end
end

end

end
end

module World
module Base
include Helpers::DataMapper
extend Helpers::DataMapper::ClassMethods
end
end
end
Expand Down

0 comments on commit c72ba10

Please sign in to comment.