Sha256: 50b20c2a2ae66aa30ae4efa9d79497b52205c25b6242ee662d32e37eafd94a75
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
module Webhookr module ServiceUnderTest class Adapter SERVICE_NAME = 'service_under_test' include Webhookr::Services::Adapter::Base class << self def process(payload) [*payload].collect do |p| p = Rack::Utils.parse_nested_query(p) validate(payload) OpenStruct.new({ :event_type => p["event"], :data => OpenStruct.new(p["data"]) }) end end def validate(payload) if payload.nil? || payload == "blort" raise Webhookr::InvalidPayloadError.new("'#{payload}' is not valid") end end end end end end module Webhookr module ServiceUnderTest def stub(options = {}) ops = { :service_name => "service_under_test", :event_type => "test_event", :email => "gerry@zoocasa.com" }.merge(options) OpenStruct.new({ :payload => "event=#{ops[:event_type]}&data[email]=#{ops[:email]}", :service_name => ops[:service_name], :event_type => ops[:event_type], :email => ops[:email] }) end end end class PlainOldCallBackClass @@call_count = 0 @@email = nil def self.reset! @@call_count = 0 @@email = nil end def self.call_count @@call_count end def self.email @@email end def on_test_event(payload) @@call_count += 1 @@email = payload.data.email end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
webhookr-0.2.0 | test/stubs/service_under_test_stubs.rb |
webhookr-0.1.0 | test/stubs/service_under_test_stubs.rb |
webhookr-0.0.2 | test/stubs/service_under_test_stubs.rb |