Sha256: 91d8a78e67ccfabf715c620f81905ff2b57cc7bda9ad1e34546ac58348297d8d

Contents?: true

Size: 979 Bytes

Versions: 6

Compression:

Stored size: 979 Bytes

Contents

module Support
  class DummyProxyAction < Actions::ProxyAction

    class DummyProxy
      attr_reader :log, :task_triggered

      def initialize
        @log = Hash.new { |h, k| h[k] = [] }
        @task_triggered = Concurrent.future
      end

      def trigger_task(*args)
        @log[:trigger_task] << args
        @task_triggered.success(true)
        {"task_id" => "123"}
      end

      def cancel_task(*args)
        @log[:cancel_task] << args
      end

      def url
        'proxy.example.com'
      end
    end

    class ProxySelector < ::ForemanTasks::ProxySelector
      def available_proxies
        { :global => [DummyProxyAction.proxy] }
      end
    end

    def proxy
      self.class.proxy
    end

    def task
      super
    rescue ActiveRecord::RecordNotFound
      ForemanTasks::Task::DynflowTask.new.tap { |task| task.id = '123' }
    end

    def self.proxy
      @proxy
    end

    def self.reset
      @proxy = DummyProxy.new
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
foreman-tasks-0.8.6 test/support/dummy_proxy_action.rb
foreman-tasks-0.8.5 test/support/dummy_proxy_action.rb
foreman-tasks-0.8.4 test/support/dummy_proxy_action.rb
foreman-tasks-0.8.3 test/support/dummy_proxy_action.rb
foreman-tasks-0.8.2 test/support/dummy_proxy_action.rb
foreman-tasks-0.8.1 test/support/dummy_proxy_action.rb