Sha256: edc70802bf35dd30b0976618e06ea15c4dec54e2955936c31e67d0b142d73e46

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

require 'spec_helper'

describe Typhoeus::Request::Marshal do
  let(:base_url) { "localhost:3001" }
  let(:request) { Typhoeus::Request.new(base_url) }

  describe "#marshal_dump" do
    let(:base_url) { "http://www.google.com" }

    %w(on_complete on_success on_failure).each do |name|
      context "when #{name} handler" do
        before { request.instance_variable_set("@#{name}", Proc.new{}) }

        it "doesn't include @#{name}" do
          expect(request.send(:marshal_dump).map(&:first)).to_not include("@#{name}")
        end

        it "doesn't raise when dumped" do
          expect { Marshal.dump(request) }.to_not raise_error
        end

        context "when loading" do
          let(:loaded) { Marshal.load(Marshal.dump(request)) }

          it "includes base_url" do
            expect(loaded.base_url).to eq(request.base_url)
          end

          it "doesn't include #{name}" do
            expect(loaded.instance_variables).to_not include("@#{name}")
          end
        end
      end
    end

    context 'when run through hydra' do
      let(:options) { {} }
      let(:hydra) { Typhoeus::Hydra.new(options) }

      before(:each) do
        hydra.queue(request)
        hydra.run
      end

      it "doesn't include @hydra" do
        expect(request.send(:marshal_dump).map(&:first)).to_not include("@hydra")
      end

      context 'when loading' do
        let(:loaded) { Marshal.load(Marshal.dump(request)) }

        it "includes base_url" do
          expect(loaded.base_url).to eq(request.base_url)
        end

        it "doesn't include #{name}" do
          expect(loaded.instance_variables).to_not include("@hydra")
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
typhoeus-0.7.1 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.7.0 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.7.0.pre1 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.9 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.8 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.7 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.6 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.5 spec/typhoeus/request/marshal_spec.rb
typhoeus-0.6.4 spec/typhoeus/request/marshal_spec.rb