75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'constants'
 | 
						|
require 'defaults'
 | 
						|
 | 
						|
class PluginReportinator
 | 
						|
  
 | 
						|
  constructor :plugin_reportinator_helper, :plugin_manager, :reportinator
 | 
						|
 | 
						|
  def setup
 | 
						|
    @test_results_template = nil
 | 
						|
  end
 | 
						|
  
 | 
						|
  
 | 
						|
  def set_system_objects(system_objects)
 | 
						|
    @plugin_reportinator_helper.ceedling = system_objects
 | 
						|
  end
 | 
						|
  
 | 
						|
  
 | 
						|
  def fetch_results(results_path, test, options={:boom => false})
 | 
						|
    return @plugin_reportinator_helper.fetch_results( File.join(results_path, test), options )
 | 
						|
  end
 | 
						|
 | 
						|
  
 | 
						|
  def generate_banner(message)
 | 
						|
    return @reportinator.generate_banner(message)
 | 
						|
  end
 | 
						|
 | 
						|
  
 | 
						|
  def assemble_test_results(results_list, options={:boom => false})
 | 
						|
    aggregated_results = get_results_structure
 | 
						|
    
 | 
						|
    results_list.each do |result_path| 
 | 
						|
      results = @plugin_reportinator_helper.fetch_results( result_path, options )
 | 
						|
      @plugin_reportinator_helper.process_results(aggregated_results, results)
 | 
						|
    end
 | 
						|
 | 
						|
    return aggregated_results
 | 
						|
  end
 | 
						|
  
 | 
						|
  
 | 
						|
  def register_test_results_template(template)
 | 
						|
    @test_results_template = template if (@test_results_template.nil?)
 | 
						|
  end
 | 
						|
  
 | 
						|
  
 | 
						|
  def run_test_results_report(hash, verbosity=Verbosity::NORMAL, &block)
 | 
						|
    run_report( $stdout,
 | 
						|
                ((@test_results_template.nil?) ? DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE : @test_results_template),
 | 
						|
                hash,
 | 
						|
                verbosity,
 | 
						|
                &block )
 | 
						|
  end
 | 
						|
  
 | 
						|
  
 | 
						|
  def run_report(stream, template, hash=nil, verbosity=Verbosity::NORMAL)
 | 
						|
    failure = nil
 | 
						|
    failure = yield() if block_given?
 | 
						|
  
 | 
						|
    @plugin_manager.register_build_failure( failure )
 | 
						|
    
 | 
						|
    @plugin_reportinator_helper.run_report( stream, template, hash, verbosity )
 | 
						|
  end
 | 
						|
  
 | 
						|
  private ###############################
 | 
						|
  
 | 
						|
  def get_results_structure
 | 
						|
    return {
 | 
						|
      :successes => [],
 | 
						|
      :failures  => [],
 | 
						|
      :ignores   => [],
 | 
						|
      :stdout    => [],
 | 
						|
      :counts    => {:total => 0, :passed => 0, :failed => 0, :ignored  => 0, :stdout => 0}
 | 
						|
      }
 | 
						|
  end
 | 
						|
 
 | 
						|
end |