Sha256: e124cb2b30cef98cd869aa76c75ebb465ba6addd2fb63fe6b70b31aa0d2e614b
Contents?: true
Size: 1.69 KB
Versions: 12
Compression:
Stored size: 1.69 KB
Contents
# frozen_string_literal: true module BoltSpec module Plans class UploadStub < ActionStub def matches(targets, _source, destination, options) if @invocation[:targets] && Set.new(@invocation[:targets]) != Set.new(targets.map(&:name)) return false end if @invocation[:destination] && destination != @invocation[:destination] return false end if @invocation[:options] && options != @invocation[:options] return false end true end def call(targets, source, destination, options) @calls += 1 if @return_block results = @return_block.call(targets: targets, source: source, destination: destination, params: options) check_resultset(results, source) else results = targets.map do |target| if @data[:default].is_a?(Bolt::Error) default_for(target) else Bolt::Result.for_upload(target, source, destination) end end Bolt::ResultSet.new(results) end end def parameters @invocation[:options] end def result_for(_target, **_data) raise 'Upload result cannot be changed' end # Public methods def always_return(_data) raise 'Upload result cannot be changed' end def with_destination(destination) @invocation[:destination] = destination self end def with_params(params) @invocation[:options] = params.select { |k, _v| k.start_with?('_') } .transform_keys { |k| k.sub(/^_/, '').to_sym } self end end end end
Version data entries
12 entries across 12 versions & 1 rubygems