Sha256: 5e29fad4ee77865e5387e7bd56530fb41b1ba743b10f7f273ef54ec5d7653637

Contents?: true

Size: 1.98 KB

Versions: 9

Compression:

Stored size: 1.98 KB

Contents

require 'spec_helper'

describe ParsedFile do

  let(:parsed_file) { ParsedFile.new(path_to_file: "bar/foo.rb") }
  let(:analyzer)    { Analyzer.new("class Foo; end") }

  describe "#class_name" do
    before do
      allow(parsed_file).to receive(:analyzer) { analyzer }
    end
    it "retrieves class name from analyzer" do
      expect(parsed_file.class_name).to eq "Foo"
    end
  end

  describe "#content" do
    it "reads from file" do
      allow(File).to receive(:open).with("bar/foo.rb", "r") {
        instance_double("File", read: "whatever")
      }
      expect(parsed_file.content).to eq("whatever")
    end
  end

  describe "#analyzer" do
    it "instantiates an Analyzer instance with content" do
      allow(parsed_file).to receive("content") { "stuff" }
      expect(parsed_file.analyzer.class.name).to eq "Analyzer"
    end
  end

  describe "#complexity" do
    before do
      allow(parsed_file).to receive(:analyzer) { analyzer }
    end
    it "retrieves complexity score from analyzer" do
      allow(analyzer).to receive(:complexity) { 13 }
      expect(parsed_file.complexity).to eq 13
    end
  end

  describe "methods" do
    before do
      allow(parsed_file).to receive(:analyzer) { analyzer }
    end
    it "retrieves methods from analyzer" do
      allow(analyzer).to receive(:extract_methods) { [:talk, :walk] }
      expect(parsed_file.methods).to eq([:talk, :walk])
    end
  end

  describe "summary" do
    it "builds a hash" do
      allow(parsed_file).to receive(:path_to_results) { "doc/fukuzatsu/foo.rb.htm" }
      allow(parsed_file).to receive(:path_to_file) { "foo.rb.htm" }
      allow(parsed_file).to receive(:class_name) { "Foo" }
      allow(parsed_file).to receive(:complexity) { 11 }
      expect(parsed_file.summary[:results_file]).to eq "doc/fukuzatsu/foo.rb.htm"
      expect(parsed_file.summary[:path_to_file]).to eq "foo.rb.htm"
      expect(parsed_file.summary[:class_name]).to eq "Foo"
      expect(parsed_file.summary[:complexity]).to eq 11
    end
  end


end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fukuzatsu-1.0.4 spec/parsed_file_spec.rb
fukuzatsu-1.0.3 spec/parsed_file_spec.rb
fukuzatsu-1.0.2 spec/parsed_file_spec.rb
fukuzatsu-1.0.1 spec/parsed_file_spec.rb
fukuzatsu-1.0.0 spec/parsed_file_spec.rb
fukuzatsu-0.10.1 spec/parsed_file_spec.rb
fukuzatsu-0.9.16 spec/parsed_file_spec.rb
fukuzatsu-0.9.15 spec/parsed_file_spec.rb
fukuzatsu-0.9.14 spec/parsed_file_spec.rb