Sha256: 49db59e2ec1db79caf846eb201e29bfd2ceca4a13f608198c24fd63702afb970
Contents?: true
Size: 1.82 KB
Versions: 9
Compression:
Stored size: 1.82 KB
Contents
require "spec_helper" require "protobuf/zmq" ::RSpec.describe ::Protobuf::Rpc::Connectors::Ping do subject { described_class.new("google.com", 80) } let(:host) { "google.com" } let(:port) { 80 } describe ".new" do it "assigns host" do expect(subject.host).to eq(host) end it "assigns port" do expect(subject.port).to eq(port) end end describe "#online?" do it "closes the socket" do socket = double(:close => nil, :setsockopt => nil) allow(subject).to receive(:tcp_socket).and_return(socket) expect(socket).to receive(:close) expect(subject).to be_online end context "when a socket can connect" do let(:socket) { double(:close => nil, :setsockopt => nil) } before { allow(subject).to receive(:tcp_socket).and_return(socket) } it "returns true" do expect(subject).to be_online end end context "when a socket error is raised" do before { allow(subject).to receive(:tcp_socket).and_raise(::Errno::ECONNREFUSED) } it "returns false" do expect(subject).to_not be_online end end context "when a select timeout is fired" do let(:wait_writable_class) { ::Class.new(StandardError) { include ::IO::WaitWritable } } before { expect_any_instance_of(::Socket).to receive(:connect_nonblock).and_raise(wait_writable_class) } it "returns false" do expect(::IO).to receive(:select).and_return(false) expect(subject).to_not be_online end end end describe "#timeout" do it "uses the default value" do expect(subject.timeout).to eq(5) end context "when environment variable is set" do before { ::ENV["PB_RPC_PING_PORT_TIMEOUT"] = "1" } it "uses the environmet variable" do expect(subject.timeout).to eq(1) end end end end
Version data entries
9 entries across 9 versions & 1 rubygems