Sha256: 48a8f5d481cdbf149c57d3f26e9a7409da037d2880e94f310bc955512712b1c4

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

# -*- encoding : utf-8 -*-
require 'spec_helper'

describe GitStats::Generator do
  let(:repo_path) { 'repo_path' }
  let(:out_path) { 'out_path' }
  let(:generator) { GitStats::Generator.new(repo_path, out_path) }

  before { Dir.stub!(:exists? => true) }

  it 'should raise exception if given repo path is not a git repository' do
    Dir.should_receive(:exists?).with("#{repo_path}/.git").and_return(false)
    expect { generator }.to raise_error(ArgumentError)
  end

  it "should raise exception if given out directory doesn't exist" do
    Dir.should_receive(:exists?).with(out_path).and_return(false)
    expect { generator }.to raise_error(ArgumentError)
  end

  it 'should pass command observer to repo' do
    repo = double('repo')
    GitStats::GitData::Repo.should_receive(:new).with(path: repo_path).and_return(repo)

    generator = GitStats::Generator.new(repo_path, out_path)

    observer = double('observer')
    repo.should_receive(:add_command_observer).with(observer)

    generator.add_command_observer observer
  end

  it 'should render all templates with view data for this repo' do
    repo = double('repo')
    GitStats::GitData::Repo.should_receive(:new).with(path: repo_path).and_return(repo)

    view_data = double('view_data')
    GitStats::StatsView::ViewData.should_receive(:new).with(repo).and_return(view_data)

    view = double('view')
    GitStats::StatsView::View.should_receive(:new).with(view_data, out_path).and_return(view)
    view.should_receive(:render_all)

    generator.render_all
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
git_stats-1.0.2 spec/git_data/generator_spec.rb
git_stats-1.0.1 spec/git_data/generator_spec.rb
git_stats-1.0.0 spec/git_data/generator_spec.rb