Skip to content

Commit

Permalink
added tests for filter implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
auxesis committed Dec 24, 2009
1 parent 9a681d9 commit 3d8c002
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 0 deletions.
52 changes: 52 additions & 0 deletions spec/notifier_filters_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
require File.join(File.dirname(__FILE__), '..', 'lib', 'flapjack', 'applications', 'notifier')
require File.join(File.dirname(__FILE__), '..', 'lib', 'flapjack', 'transports', 'result')
require File.join(File.dirname(__FILE__), 'helpers')

describe "running the notifier" do

before(:all) do
@options = { :notifiers => {:testmailer => {}},
:notifier_directories => [File.join(File.dirname(__FILE__),'notifier-directories', 'spoons')],
:recipients => [{:name => "Spoons McDoom"}],
:transport => {:backend => :mock_transport,
:basedir => File.join(File.dirname(__FILE__), 'transports')},
:persistence => {:backend => :mock_persistence_backend,
:basedir => File.join(File.dirname(__FILE__), 'persistence')},
:filter_directories => [File.join(File.dirname(__FILE__),'test-filters')]
}
end

it "should notify by default" do
@options[:filters] = []
@options[:log] = MockLogger.new

app = Flapjack::Notifier::Application.run(@options)
# processes a MockResult, as defined in spec/transports/mock_transport.rb
app.process_result

app.log.messages.find {|m| m =~ /testmailer notifying/i}.should be_true
end

it "should not notify if any filters fail" do
@options[:filters] = ['blocker']
@options[:log] = MockLogger.new

app = Flapjack::Notifier::Application.run(@options)
# processes a MockResult, as defined in spec/transports/mock_transport.rb
app.process_result

app.log.messages.find {|m| m =~ /testmailer notifying/i}.should be_nil
end

it "should notify if all filters pass" do
@options[:filters] = ['mock']
@options[:log] = MockLogger.new

app = Flapjack::Notifier::Application.run(@options)
# processes a MockResult, as defined in spec/transports/mock_transport.rb
app.process_result

app.log.messages.find {|m| m =~ /testmailer notifying/i}.should be_true
end

end
13 changes: 13 additions & 0 deletions spec/test-filters/blocker.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module Flapjack
module Filters
class Blocker
def initialize(opts={})
@log = opts[:log]
end

def block?(result)
true
end
end
end
end
13 changes: 13 additions & 0 deletions spec/test-filters/mock.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module Flapjack
module Filters
class Mock
def initialize(opts={})
@log = opts[:log]
end

def block?(result)
false
end
end
end
end

0 comments on commit 3d8c002

Please sign in to comment.