require File.dirname(__FILE__) + '/spec_helper.rb' describe MetricFu::Base::Generator do describe "save_html" do it "should save to a index.html in the base_dir" do @generator = MetricFu::Base::Generator.new @generator.should_receive(:open).with("#{MetricFu.configuration.base_directory}/generator/index.html", "w") @generator.save_html("") end it "should save to a custom.html to the base_dir if 'custom' is passed as name" do @generator = MetricFu::Base::Generator.new @generator.should_receive(:open).with("#{MetricFu.configuration.base_directory}/generator/metric_fu/custom.html", "w") @generator.save_html("", 'metric_fu/custom.html') end end describe "generate_report class method" do it "should create a new Generator and call generate_report on it" do @generator = mock('generator') @generator.should_receive(:generate_report) MetricFu::Base::Generator.should_receive(:new).and_return(@generator) MetricFu::Base::Generator.generate_report('base_dir') end end describe "generate_html" do it "should create a new Generator and call generate_report on it" do @generator = MetricFu::Base::Generator.new @generator.should_receive(:open).with("#{MetricFu.configuration.base_directory}/generator/index.html", "w") @generator.should_receive(:generate_html).and_return('') @generator.generate_report end end describe "cycle" do it "should create a new Generator and call generate_report on it" do @generator = MetricFu::Base::Generator.new @generator.cycle("light", "dark", 0).should == 'light' @generator.cycle("light", "dark", 1).should == 'dark' end end describe "template_name" do it "should return the class name in lowercase" do @generator = MetricFu::Base::Generator.new @generator.template_name.should == 'generator' end end describe "metric_dir" do it "should return tmp/metric_fu/{the class name in lowercase}" do MetricFu::Base::Generator.metric_dir.should == "#{MetricFu.configuration.base_directory}/generator" end end describe "link_to_filename", "when run_by_cruise_control and a url_prefix is specfied" do before(:each) do @generator = MetricFu::Base::Generator.new MetricFu.should_receive(:run_by_cruise_control?).at_least(1).and_return(true) end it "should return a link using the prefix" do MetricFu::Configuration.run do |config| config.general = { :open_in_browser => true, :url_prefix => 'prefix' } end link = @generator.link_to_filename("app/model/foo.rb", 23) link.should == %{app/model/foo.rb} end it "should return a link using the prefix even if the prefix ends with /" do MetricFu::Configuration.run do |config| config.general = { :open_in_browser => true, :url_prefix => 'prefix/' } end link = @generator.link_to_filename("app/model/foo.rb", 23) link.should == %{app/model/foo.rb} end end end