diff --git a/plugins/mezuro/lib/mezuro_plugin/project_content.rb b/plugins/mezuro/lib/mezuro_plugin/project_content.rb index 6e7428e..6e72af8 100644 --- a/plugins/mezuro/lib/mezuro_plugin/project_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/project_content.rb @@ -3,7 +3,7 @@ class MezuroPlugin::ProjectContent < Article settings_items :project_id - validate_on_create :validate_kalibro_project_name + validate_on_create :validate_kalibro_project_name validate_on_create :validate_repository_url def self.short_description @@ -48,12 +48,12 @@ class MezuroPlugin::ProjectContent < Article end @processing end - + def processing_with_date(repository_id, date) begin if Kalibro::Processing.has_processing_before(repository_id, date) @processing ||= Kalibro::Processing.last_processing_before(repository_id, date) - else if Kalibro::Processing.has_processing_after(repository_id, date) + elsif Kalibro::Processing.has_processing_after(repository_id, date) @processing ||= Kalibro::Processing.last_processing_after(repository_id, date) end rescue Exception => error @@ -92,7 +92,7 @@ class MezuroPlugin::ProjectContent < Article def self.to_object value value.kind_of?(Hash) ? Kalibro::Repository.new(value) : value end - + after_save :send_project_to_service after_destroy :destroy_project_from_service @@ -103,7 +103,7 @@ class MezuroPlugin::ProjectContent < Article errors.add_to_base("Repository URL is mandatory") end end - + def send_project_to_service created_project = create_kalibro_project created_project.process_project(periodicity_in_days) diff --git a/plugins/mezuro/test/fixtures/project_content_fixtures.rb b/plugins/mezuro/test/fixtures/project_content_fixtures.rb new file mode 100644 index 0000000..c75177b --- /dev/null +++ b/plugins/mezuro/test/fixtures/project_content_fixtures.rb @@ -0,0 +1,16 @@ +class ProjectContentFixtures + + def self.project_content + content = MezuroPlugin::ProjectContent.new + content.project_id = 42 + #content.name = 'Qt-Calculator' + #content.project_license = 'GPL' + #content.description = 'Calculator for Qt' + #content.repository_type = [RepositoryFixtures.repository_hash[:type]] + #content.repository_url = [RepositoryFixtures.repository_hash[:address]] + #content.configuration_name = 'Kalibro for Java' + #content.periodicity_in_days = 1 + content + end + +end \ No newline at end of file diff --git a/plugins/mezuro/test/fixtures/project_fixtures.rb b/plugins/mezuro/test/fixtures/project_fixtures.rb index 6de99b0..08781e1 100644 --- a/plugins/mezuro/test/fixtures/project_fixtures.rb +++ b/plugins/mezuro/test/fixtures/project_fixtures.rb @@ -17,17 +17,4 @@ class ProjectFixtures :description => 'Calculator for Qt' } end - - def self.project_content - content = MezuroPlugin::ProjectContent.new - content.name = 'Qt-Calculator' - content.project_license = 'GPL' - content.description = 'Calculator for Qt' - content.repository_type = [RepositoryFixtures.repository_hash[:type]] - content.repository_url = [RepositoryFixtures.repository_hash[:address]] - content.configuration_name = 'Kalibro for Java' - content.periodicity_in_days = 1 - content - end - end diff --git a/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb b/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb index 1188643..5374ad1 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb @@ -1,6 +1,8 @@ require "test_helper" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_content_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/processing_fixtures" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_fixtures" require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures" @@ -8,8 +10,8 @@ class ProjectContentTest < ActiveSupport::TestCase def setup @project = ProjectFixtures.project - @content = ProjectFixtures.project_content - @project_result = ProjectResultFixtures.project_result + @project_content = ProjectContentFixtures.project_content + @processing = ProcessingFixtures.processing @module = ModuleFixtures.module @module_result = ModuleResultFixtures.module_result end @@ -23,31 +25,24 @@ class ProjectContentTest < ActiveSupport::TestCase end should 'have an html view' do - assert_not_nil @content.to_html + assert_not_nil @project_content.to_html end should 'get project from service' do - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash}) - assert_equal @project.name, @content.project.name + Kalibro::Project.expects(:find).with(@project.id).returns(@project) + assert_equal @project, @project_content.project end - should 'get project result from service' do - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash}) - assert_equal @project_result.load_time, @content.project_result.load_time - end - - should 'get date result from service when has_result_before is true' do - request_body = {:project_name => @project.name, :date => @project_result.date} - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true}) - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash}) - assert_equal @project_result.load_time, @content.project_result_with_date(@project_result.date).load_time + should 'add error when the project does not exist' do + Kalibro::Project.expects(:find).with(@project.id).raises(Kalibro::Errors::RecordNotFound) + @project_content.project + + assert_not_nil @project_content.errors end - should 'get date result from service when has_result_before is false' do - request_body = {:project_name => @project.name, :date => @project_result.date} - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => false}) - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_first_result_after, request_body).returns({:project_result => @project_result.to_hash}) - assert_equal @project_result.load_time, @content.project_result_with_date(@project_result.date).load_time +=begin + should 'get repositories of the project from service' do + end should 'get module result from service without date' do @@ -57,11 +52,11 @@ class ProjectContentTest < ActiveSupport::TestCase 'ModuleResult', :get_module_result, { - :project_name => @project.name, + :project_name => @project.name, :module_name => @module.name, :date => date_with_milliseconds }).returns({:module_result => @module_result.to_hash}) - assert_equal @module_result.grade, @content.module_result({:module_name => @module.name}).grade + assert_equal @module_result.grade, @project_content.module_result({:module_name => @module.name}).grade end should 'get module result from service with date' do @@ -73,11 +68,11 @@ class ProjectContentTest < ActiveSupport::TestCase 'ModuleResult', :get_module_result, { - :project_name => @project.name, + :project_name => @project.name, :module_name => @module.name, :date => date_with_milliseconds }).returns({:module_result => @module_result.to_hash}) - assert_equal @module_result.grade, @content.module_result({:module_name => @module.name, :date => @project_result.date}).grade + assert_equal @module_result.grade, @project_content.module_result({:module_name => @module.name, :date => @project_result.date}).grade end should 'get result history' do @@ -85,15 +80,15 @@ class ProjectContentTest < ActiveSupport::TestCase 'ModuleResult', :get_result_history, { - :project_name => @project.name, + :project_name => @project.name, :module_name => @module.name }).returns({:module_result => @module_result.to_hash}) - @content.result_history(@module.name) + @project_content.result_history(@module.name) end should 'send project to service after saving' do - @content.expects :send_project_to_service - @content.run_callbacks :after_save + @project_content.expects :send_project_to_service + @project_content.run_callbacks :after_save end should 'send correct project to service' do @@ -101,20 +96,20 @@ class ProjectContentTest < ActiveSupport::TestCase hash.delete(:attributes!) hash.delete(:state) Kalibro::Project.expects(:create).with(hash).returns(@project) - @project.expects(:process_project).with(@content.periodicity_in_days) - @content.send :send_project_to_service + @project.expects(:process_project).with(@project_content.periodicity_in_days) + @project_content.send :send_project_to_service end should 'destroy project from service' do Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash}) Kalibro::Project.expects(:request).with("Project", :remove_project, {:project_name => @project.name}) - @content.send :destroy_project_from_service + @project_content.send :destroy_project_from_service end - + should 'not save a project with an existing project name in kalibro' do - Kalibro::Project.expects(:all_names).returns([@content.name]) - @content.send :validate_kalibro_project_name - assert_equal "Project name already exists in Kalibro", @content.errors.on_base + Kalibro::Project.expects(:all_names).returns([@project_content.name]) + @project_content.send :validate_kalibro_project_name + assert_equal "Project name already exists in Kalibro", @project_content.errors.on_base end - +=end end -- libgit2 0.21.2