From 922a3b8e9d1ad46c23f31a44e7521d6a136a7313 Mon Sep 17 00:00:00 2001 From: Alessandro Palmeira + Diego Araújo + João M. M. da Silva Date: Thu, 6 Dec 2012 14:55:52 -0200 Subject: [PATCH] Ignore this commit --- plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb | 30 ++---------------------------- plugins/mezuro/lib/kalibro/processing.rb | 52 ++++++++++++++++++++++++++++++++++++---------------- plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- 3 files changed, 104 insertions(+), 60 deletions(-) diff --git a/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb b/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb index 8185616..7463d48 100644 --- a/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb +++ b/plugins/mezuro/controllers/profile/mezuro_plugin_repository_controller.rb @@ -37,7 +37,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController @configuration_select = configurations.map do |configuration| [configuration.name,configuration.id] end - @repository = @project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_s }.first + @repository = @project_content.repositories.select{ |repository| repository.id.to_s == params[:repository_id] }.first end def update @@ -57,7 +57,7 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController project_content = profile.articles.find(params[:id]) @project_name = project_content.name @repository = project_content.repositories.select{ |repository| repository.id == params[:repository_id].to_s }.first - @configuration_name = Kalibro::Configuration.find(@repository.configuration_id).name + @configuration_name = Kalibro::Configuration.configuration_of(@repository.id).name @processing = processing(@repository.id) end @@ -74,32 +74,6 @@ class MezuroPluginRepositoryController < MezuroPluginProfileController private - def processing(repository_id) - begin - if Kalibro::Processing.has_ready_processing(repository_id) - @processing ||= Kalibro::Processing.last_ready_processing_of(repository_id) - else - @processing = Kalibro::Processing.last_processing_of(repository_id) - end - rescue Exception => error - errors.add_to_base(error.message) - end - @processing - end - - def processing_with_date(repository_id, date) - begin - if Kalibro::Processing.has_processing_after(repository_id, date) - @processing ||= Kalibro::Processing.first_processing_after(repository_id, date) - elsif Kalibro::Processing.has_processing_before(repository_id, date) - @processing ||= Kalibro::Processing.last_processing_before(repository_id, date) - end - rescue Exception => error - errors.add_to_base(error.message) - end - @processing - end - def module_result(repository_id, date = nil) @processing ||= date.nil? ? processing(repository_id) : processing_with_date(repository_id, date) begin diff --git a/plugins/mezuro/lib/kalibro/processing.rb b/plugins/mezuro/lib/kalibro/processing.rb index 684fad1..618f677 100644 --- a/plugins/mezuro/lib/kalibro/processing.rb +++ b/plugins/mezuro/lib/kalibro/processing.rb @@ -2,6 +2,42 @@ class Kalibro::Processing < Kalibro::Model attr_accessor :id, :date, :state, :error, :process_time, :results_root_id + def self.processing_of(repository_id) + if has_ready_processing(repository_id) + last_ready_processing_of(repository_id) + else + last_processing_of(repository_id) + end + end + + def self.processing_with_date_of(repository_id, date) + if has_processing_after(repository_id, date) + first_processing_after(repository_id, date) + elsif has_processing_before(repository_id, date) + last_processing_before(repository_id, date) + else + last_processing_of(repository_id) + end + end + + def date=(value) + @date = value.is_a?(String) ? DateTime.parse(value) : value + end + + def process_times=(value) + process_time=value + end + + def process_time=(value) + @process_time = Kalibro::ProcessTime.to_objects_array value + end + + def process_times + process_time + end + + private + def self.has_processing(repository_id) request(:has_processing, {:repository_id => repository_id})[:exists] end @@ -42,20 +78,4 @@ class Kalibro::Processing < Kalibro::Model new request(:last_processing_before, {:repository_id => repository_id, :date => date})[:processing] end - def date=(value) - @date = value.is_a?(String) ? DateTime.parse(value) : value - end - - def process_times=(value) - process_time=value - end - - def process_time=(value) - @process_time = Kalibro::ProcessTime.to_objects_array value - end - - def process_times - process_time - end - end diff --git a/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb b/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb index fbe9964..4d4a601 100644 --- a/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb +++ b/plugins/mezuro/test/functional/profile/mezuro_plugin_repository_controller_test.rb @@ -14,6 +14,9 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase @response = ActionController::TestResponse.new @profile = fast_create(Community) + @configuration = ConfigurationFixtures.configuration + @repository_types = RepositoryFixtures.types + @all_configurations = ConfigurationFixtures.all @repository = RepositoryFixtures.repository @repository_hash = RepositoryFixtures.hash @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => name) @@ -22,28 +25,75 @@ class MezuroPluginRepositoryControllerTest < ActionController::TestCase @content.save end - should 'provide the correct variables to the "new" view' do - repository_types = RepositoryFixtures.types - all_configurations = ConfigurationFixtures.all - Kalibro::Repository.expects(:repository_types).returns(repository_types) - Kalibro::Configuration.expects(:all).returns(all_configurations) + should 'set variables to create a new repository' do + Kalibro::Repository.expects(:repository_types).returns(@repository_types) + Kalibro::Configuration.expects(:all).returns(@all_configurations) get :new, :profile => @profile.identifier, :id => @content.id - #assert_equal @content, assigns(:project_content) - assert_equal repository_types, assigns(:repository_types) - assert_equal all_configurations.first.name, assigns(:configuration_select).first.first - assert_equal all_configurations.first.id, assigns(:configuration_select).first.last + assert_equal @content, assigns(:project_content) + assert_equal @repository_types, assigns(:repository_types) + assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first + assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last end - should 'create a repository and redirect correctly' do - Kalibro::Repository.expects(:new).returns(@repository) - @repository.expects(:save).with(@content.project_id).returns(true) - get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash - assert @repository.errors.empty? - assert_response :redirect - assert_select('h5', 'Repositories') + should 'create a repository' do + Kalibro::Repository.expects(:new).returns(@repository) + @repository.expects(:save).with(@content.project_id).returns(true) + get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash + assert @repository.errors.empty? + assert_response :redirect end + should 'not create a repository' do + @repository.errors = [Exception.new] + Kalibro::Repository.expects(:new).returns(@repository) + @repository.expects(:save).with(@content.project_id).returns(false) + get :create, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash + assert !@repository.errors.empty? + assert_response :redirect + end + + should 'set variables to edit a repository' do + articles = mock + Kalibro::Repository.expects(:repository_types).returns(@repository_types) + Kalibro::Configuration.expects(:all).returns(@all_configurations) + Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository]) + + get :edit, :profile => @profile.identifier, :id => @content.id, :repository_id => @repository.id + + assert_equal @content, assigns(:project_content) + assert_equal @repository_types, assigns(:repository_types) + assert_equal @all_configurations.first.name, assigns(:configuration_select).first.first + assert_equal @all_configurations.first.id, assigns(:configuration_select).first.last + assert_equal @repository, assigns(:repository) + end + + should 'update a repository' do + Kalibro::Repository.expects(:new).returns(@repository) + @repository.expects(:save).with(@content.project_id).returns(true) + get :update, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash + assert @repository.errors.empty? + assert_response :redirect + end + + should 'not update a repository' do + @repository.errors = [Exception.new] + Kalibro::Repository.expects(:new).returns(@repository) + @repository.expects(:save).with(@content.project_id).returns(false) + get :update, :profile => @profile.identifier, :id => @content.id, :repository => @repository_hash + assert !@repository.errors.empty? + assert_response :redirect + end + + should 'show a repository' do + Kalibro::Repository.expects(:repositories_of).with(@content.project_id).returns([@repository]) + Kalibro::Configuration.expects(:configuration_of).with(@repository.id).returns(@configuration) + + assert_equal @content.name, assigns(:project_name) + assert_equal @repository, assigns(:repository) + @configuration_name = Kalibro::Configuration.find(@repository.configuration_id).name + @processing = processing(@repository.id) + end end -- libgit2 0.21.2