Sha256: 749e2ea72471511544ca6fcb1340f9c2d017eb1f0fb94da2ad6dcd477ba16ff7

Contents?: true

Size: 1.15 KB

Versions: 10

Compression:

Stored size: 1.15 KB

Contents

module Houston
  module TestHelpers

    # !warning: knows an _awful_ lot about Houston::Observer's implementation!
    # Intended to keep Houston from firing the _actual_ post_receive hooks
    def with_exclusive_observation
      previous_observers = Houston.observer.instance_variable_get(:@observers)
      begin
        Houston.observer.clear!
        yield
      ensure
        Houston.observer.instance_variable_set(:@observers, previous_observers)
      end
    end

    def assert_triggered(event_name, message=nil)
      with_exclusive_observation do

        event_triggered = false
        Houston.observer.on event_name do
          event_triggered = true
        end

        yield

        assert event_triggered, ["The event \"#{event_name}\" was not triggered", message].compact.join
      end
    end

    def assert_not_triggered(event_name, message=nil)
      with_exclusive_observation do

        event_triggered = false
        Houston.observer.on event_name do
          event_triggered = true
        end

        yield

        refute event_triggered, ["The event \"#{event_name}\" was triggered", message].compact.join
      end
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
houston-core-0.9.2 lib/houston/test_helpers.rb
houston-core-0.9.1 lib/houston/test_helpers.rb
houston-core-0.9.0 lib/houston/test_helpers.rb
houston-core-0.9.0.rc1 lib/houston/test_helpers.rb
houston-core-0.8.4 lib/houston/test_helpers.rb
houston-core-0.8.3 lib/houston/test_helpers.rb
houston-core-0.8.2 lib/houston/test_helpers.rb
houston-core-0.8.1 lib/houston/test_helpers.rb
houston-core-0.8.0 lib/houston/test_helpers.rb
houston-core-0.8.0.pre2 lib/houston/test_helpers.rb