Sha256: 6a0e173175959aa2202872f3dd7f742585f1252586abfce193764a09a3bf7cdb

Contents?: true

Size: 1.34 KB

Versions: 7

Compression:

Stored size: 1.34 KB

Contents

require File.dirname(__FILE__) + "/spec_helper"

instance_eval do
  class YARD::Serializers::YardocSerializer
    public :dump
    public :internal_dump
  end
end

describe YARD::Serializers::YardocSerializer do
  before do
    @serializer = YARD::Serializers::YardocSerializer.new('.yardoc')

    Registry.clear
    @foo = CodeObjects::ClassObject.new(:root, :Foo)
    @bar = CodeObjects::MethodObject.new(@foo, :bar)
  end

  describe "#dump" do
    it "maintains object equality when loading a dumped object" do
      newfoo = @serializer.internal_dump(@foo)
      expect(newfoo).to equal(@foo)
      expect(newfoo).to eq @foo
      expect(@foo).to equal(newfoo)
      expect(@foo).to eq newfoo
      expect(newfoo.hash).to eq @foo.hash
    end

    it "maintains hash key equality when loading a dumped object" do
      newfoo = @serializer.internal_dump(@foo)
      expect({@foo => 1}).to have_key(newfoo)
      expect({newfoo => 1}).to have_key(@foo)
    end
  end

  describe "#serialize" do
    it "accepts a hash of codeobjects (and write to root)" do
      data = {:root => Registry.root}
      marshaldata = Marshal.dump(data)
      filemock = double(:file)
      expect(filemock).to receive(:write).with(marshaldata)
      expect(File).to receive(:open!).with('.yardoc/objects/root.dat', 'wb').and_yield(filemock)
      @serializer.serialize(data)
    end
  end
end

Version data entries

7 entries across 6 versions & 2 rubygems

Version Path
abaci-0.3.0 vendor/bundle/gems/yard-0.9.2/spec/serializers/yardoc_serializer_spec.rb
abaci-0.3.0 vendor/bundle/gems/yard-0.9.1/spec/serializers/yardoc_serializer_spec.rb
yard-0.9.4 spec/serializers/yardoc_serializer_spec.rb
yard-0.9.3 spec/serializers/yardoc_serializer_spec.rb
yard-0.9.2 spec/serializers/yardoc_serializer_spec.rb
yard-0.9.1 spec/serializers/yardoc_serializer_spec.rb
yard-0.9.0 spec/serializers/yardoc_serializer_spec.rb