Sha256: b527bfb1909d4c41dee251a3ecd391c4395d11f85fa723926f57be735a5c298f

Contents?: true

Size: 1.63 KB

Versions: 45

Compression:

Stored size: 1.63 KB

Contents

require 'spec_helper'

describe Ethon::Multi::Options do
  let(:multi) { Ethon::Multi.new }

  [
    :maxconnects, :pipelining, :socketdata, :socketfunction,
    :timerdata, :timerfunction, :max_total_connections
  ].each do |name|
    describe "#{name}=" do
      it "responds_to" do
        expect(multi).to respond_to("#{name}=")
      end

      it "sets option" do
        expect(Ethon::Curl).to receive(:set_option).with(name, anything, anything, anything)
        multi.method("#{name}=").call(1)
      end
    end
  end

  describe "#value_for" do
    context "when option in bool" do
      context "when value true" do
        let(:value) { true }

        it "returns 1" do
          expect(multi.method(:value_for).call(value, :bool)).to eq(1)
        end
      end

      context "when value false" do
        let(:value) { false }

        it "returns 0" do
          expect(multi.method(:value_for).call(value, :bool)).to eq(0)
        end
      end
    end


    context "when value in int" do
      let(:value) { "2" }

      it "returns value casted to int" do
        expect(multi.method(:value_for).call(value, :int)).to eq(2)
      end
    end

    context "when value in unspecific_options" do
      context "when value a string" do
        let(:value) { "www.example.\0com" }

        it "returns zero byte escaped string" do
          expect(multi.method(:value_for).call(value, nil)).to eq("www.example.\\0com")
        end
      end

      context "when value not a string" do
        let(:value) { 1 }

        it "returns value" do
          expect(multi.method(:value_for).call(value, nil)).to eq(1)
        end
      end
    end
  end
end

Version data entries

45 entries across 44 versions & 8 rubygems

Version Path
cloudsmith-api-0.49.94 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.49.21 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.49.15 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.49.13 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.49.9 vendor/bundle/ruby/2.3.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.44.4 vendor/bundle/ruby/2.3.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
dadapush_client-1.0.1 vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb
approveapi-1.0.8 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
approveapi-1.0.5 vendor/bundle/ruby/2.6.0/gems/ethon-0.12.0/spec/ethon/multi/options_spec.rb
ethon-0.12.0 spec/ethon/multi/options_spec.rb
cloudsmith-api-0.30.7 vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb
color_me_shop-1.0.0 vendor/bundle/ruby/2.5.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb
cloudsmith-api-0.21.4 vendor/bundle/ruby/2.3.0/gems/ethon-0.11.0/spec/ethon/multi/options_spec.rb
ethon-0.11.0 spec/ethon/multi/options_spec.rb
ethon-0.10.1 spec/ethon/multi/options_spec.rb
ethon-0.10.0 spec/ethon/multi/options_spec.rb
ethon-0.9.1 spec/ethon/multi/options_spec.rb
ethon-0.9.0 spec/ethon/multi/options_spec.rb
ethon-0.8.1 spec/ethon/multi/options_spec.rb
dwolla_swagger-1.0.6 vendor/bundle/ruby/2.2.0/gems/ethon-0.8.0/spec/ethon/multi/options_spec.rb