Sha256: 5db2bfa2eaf2a73a200ced23a8c986e513e5ee9ecb62219d0070e105c14df895

Contents?: true

Size: 851 Bytes

Versions: 2

Compression:

Stored size: 851 Bytes

Contents

require "assert"
require "ardb/db_tests"

require "active_record"

class Ardb::DbTests
  class UnitTests < Assert::Context
    desc "Ardb::DbTests"
    setup do
      @transaction_called = false
      Assert.stub(ActiveRecord::Base, :transaction) do |&block|
        @transaction_called = true
        block.call
      end
    end
    subject{ Ardb::DbTests }

    should "be an assert context" do
      assert subject < Assert::Context
    end

    should "add an around callback that runs tests in a transaction that rolls back" do
      assert_equal 1, subject.arounds.size
      callback = subject.arounds.first

      block_yielded_to = false
      assert_raises(ActiveRecord::Rollback) do
        callback.call(proc{ block_yielded_to = true })
      end
      assert_true @transaction_called
      assert_true block_yielded_to
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ardb-0.29.1 test/unit/db_tests_tests.rb
ardb-0.29.0 test/unit/db_tests_tests.rb