spec/cc/resolv_spec.rb (36 lines of code) (raw):
require "spec_helper"
require "cc/resolv"
module CC
describe Resolv do
describe ".with_fixed_dns" do
it "replaces the default resolver for the duration of the block" do
fallback = double
expect(fallback).to receive(:each_address).
with("google.com").and_yield("overridden")
Resolv.with_fixed_dns(fallback) do
expect(::Resolv.getaddress("google.com")).to eq "overridden"
expect(::Resolv.getaddress("google.com")).to eq "overridden"
end
expect(::Resolv.getaddress("google.com")).not_to eq "overridden"
end
end
describe Resolv::Fixed do
describe "#each_address" do
it "delegates to the fallback resolver and caches the first address" do
fallback = double
fixed = Resolv::Fixed.new(fallback)
allow(fallback).to receive(:each_address).
with("host").once.
and_yield("address-1").
and_yield("address-2")
yielded_1 = []
yielded_2 = []
fixed.each_address("host") { |a| yielded_1 << a }
fixed.each_address("host") { |a| yielded_2 << a }
expect(yielded_1).to eq ["address-1", "address-2"]
expect(yielded_2).to eq ["address-1"]
end
end
end
end
end