Sha256: 337b2f6034c5a69f1abdaabe3c2cd553061b2bad7e776b98e604e020d8954b82

Contents?: true

Size: 688 Bytes

Versions: 5

Compression:

Stored size: 688 Bytes

Contents

class FakeClient
  def initialize
    @data = {}
    @uploaded = {}
    @uploads = 0
    @downloads = 0
  end

  attr_reader :uploaded, :uploads, :downloads
  attr_accessor :delay, :error

  def []=(key, value)
    @data[key] = value
  end

  def download
    wait_for_delay
    raise_error_if_present
    @downloads += 1
    yield @data.dup
    nil
  end

  def upload(data)
    wait_for_delay
    raise_error_if_present
    @uploaded.update(data)
    @uploads += 1
  end

  def uploaded?
    @uploads > 0
  end

  def downloaded?
    @downloads > 0
  end

  private

  def wait_for_delay
    sleep(delay) if delay
  end

  def raise_error_if_present
    raise error if error
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
copycopter_client-1.1.2 spec/support/fake_client.rb
copycopter_client-1.1.1 spec/support/fake_client.rb
copycopter_client-1.1.0 spec/support/fake_client.rb
copycopter_client-1.0.4 spec/support/fake_client.rb
copycopter_client-1.0.3 spec/support/fake_client.rb