Sha256: a2fbfc853fc244b0ccacfdaaa3b3c3fe0c3605c79795be576624a31e8fe21e46

Contents?: true

Size: 1.91 KB

Versions: 1

Compression:

Stored size: 1.91 KB

Contents

require 'rspec'
require 'wrong'
require_relative '../factor-connector-api.rb'

module Factor::Connector::Test
  def service_instance(service_name)
    Factor::Connector.get_service_manager(service_name).instance
  end
end

module Factor::Connector
  class ServiceInstance
    include Wrong
    
    def expect_response(options={}, &block)
      eventually options do
        @logs.any? do |log|
          block.call(log)
        end
      end
    end

    def expect_return(options={})
      expect_response(options) do |log|
        assert { log[:type] == 'return' } 
        assert { log[:payload] == log[:type] }
      end
    end

    def expect_fail(options={})
      expect_response(options) do |log|
        assert { log[:type] == 'fail' }
      end
    end

    def expect_info(options={})
      expect_response(options) do |log|
        assert { log[:type] == 'log' }
        assert { log[:status] == 'info' } if log[:type] == 'log'
        assert { log[:message] == options[:message] } if options[:message] && log[:type]=='log' && log[:status]=='info'
      end
    end

    def expect_warn(options={})
      expect_response(options) do |log|
        assert { log[:type] == 'log' }
        assert { log[:status] == 'warn' } if log[:type] == 'log'
        assert { log[:message] == options[:message] } if options[:message] && log[:type]=='log' && log[:status]=='warn'
      end
    end

    def expect_error(options={})
      expect_response(options) do |log|
        assert { log[:type] == 'log' }
        assert { log[:status] == 'error' } if log[:type] == 'log'
        assert { log[:message] == options[:message] } if options[:message] && log[:type]=='log' && log[:status]=='error'
      end
    end

    def test_action(action_name, params={}, &block)

      @logs = []
      self.callback = proc do |action_response|
        @logs << action_response
      end
      call_action(action_name,params)

      instance_exec &block
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
factor-connector-api-0.0.8 ./lib/factor-connector-api/test.rb