Sha256: 6cb800dea9c480eaf7f9eef7daa2a94ff5ffc3422b713b332f76e1bc4b6c93be

Contents?: true

Size: 1.56 KB

Versions: 25

Compression:

Stored size: 1.56 KB

Contents

require 'spec_helper'

RSpec.describe Protobuf::Rpc::Connectors::Base do

  let(:options) do
    { :timeout => 60 }
  end

  subject { Protobuf::Rpc::Connectors::Base.new(options) }

  describe "#send_request" do
    it "raising an error when 'send_request' is not overridden" do
      expect { subject.send_request }.to raise_error(RuntimeError, /inherit a Connector/)
    end

    it "does not raise error when 'send_request' is overridden" do
      new_sub = Class.new(subject.class) { def send_request; end }.new(options)
      expect { new_sub.send_request }.to_not raise_error
    end
  end

  describe '.new' do
    it 'assigns passed options and initializes success/failure callbacks' do
      expect(subject.options).to eq(Protobuf::Rpc::Connectors::DEFAULT_OPTIONS.merge(options))
      expect(subject.success_cb).to be_nil
      expect(subject.failure_cb).to be_nil
    end
  end

  describe '#success_cb' do
    it 'allows setting the success callback and calling it' do
      expect(subject.success_cb).to be_nil
      cb = proc { |res| fail res }
      subject.success_cb = cb
      expect(subject.success_cb).to eq(cb)
      expect { subject.success_cb.call('an error from cb') }.to raise_error 'an error from cb'
    end
  end

  describe '#failure_cb' do
    it 'allows setting the failure callback and calling it' do
      expect(subject.failure_cb).to be_nil
      cb = proc { |res| fail res }
      subject.failure_cb = cb
      expect(subject.failure_cb).to eq(cb)
      expect { subject.failure_cb.call('an error from cb') }.to raise_error 'an error from cb'
    end
  end

end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
protobuf-3.6.12 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.11 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.10 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.7.0.pre2 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.9 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.7.0.pre1 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.7.0.pre0 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.7 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.6 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.2 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.1 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.6.0 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.5 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.4 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.3 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.2 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.1 spec/lib/protobuf/rpc/connectors/base_spec.rb
prepor-protobuf-3.5.1 spec/lib/protobuf/rpc/connectors/base_spec.rb
prepor-protobuf-3.5.0 spec/lib/protobuf/rpc/connectors/base_spec.rb
protobuf-3.5.0 spec/lib/protobuf/rpc/connectors/base_spec.rb