From b3bcb7b1a3cf73facb74f5c94bdda08e18af6308 Mon Sep 17 00:00:00 2001 From: Carlos Morais Date: Wed, 15 Feb 2012 22:29:01 -0200 Subject: [PATCH] [Mezuro] Refactoring controller --- plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb | 8 +++++--- plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb | 50 ++++++++++++++------------------------------------ 2 files changed, 19 insertions(+), 39 deletions(-) diff --git a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb index 990a28b..413e3c7 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb @@ -8,8 +8,10 @@ class MezuroPluginProfileController < ProfileController render :partial => 'content_viewer/module_result', :locals => { :module_result => module_result} end - def autoreload - @project_content = profile.articles.find(params[:id]) - render :partial => 'content_viewer/autoreload' + def project_result + project_content = profile.articles.find(params[:id]) + project_result = project_content.project_result + render :partial => 'content_viewer/project_result', :locals => { :project_result => project_result } end + end diff --git a/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb b/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb index b8e5e87..d681d4a 100644 --- a/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb +++ b/plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb @@ -1,7 +1,6 @@ require 'test_helper' require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures" -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures" class MezuroPluginProfileControllerTest < ActionController::TestCase @@ -10,49 +9,28 @@ class MezuroPluginProfileControllerTest < ActionController::TestCase @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new @profile = fast_create(Community) - @profile_id = @profile.identifier - - @module_result = ModuleResultFixtures.create - @project_result = ProjectResultFixtures.qt_calculator - @project = @project_result.project - @project_content = create_project_content(@profile) - end - - def test_metrics_for_unknown_project - get :metrics, :profile => @profile_id - assert_response 404 end - def test_metric_unknown_module - get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => 'veryunlikelyname' + should 'not find module result for inexistent project content' do + get :module_result, :profile => @profile.id, :id => -1, :module_name => '' assert_response 404 end - should 'get metrics from a known module' do - project_name = @project_content.name - module_name = project_name - Kalibro::Client::ProjectResultClient.expects(:last_result).with(project_name).returns(@project_result) - Kalibro::Client::ModuleResultClient.expects(:module_result).with(@project_content, module_name). - returns(@module_result) - get :metrics, :profile => @profile_id, :id => @project_content.id, :module_name => module_name + should 'get metric results for a module' do + create_project_content + get :module_result, :profile => @profile.id, :id => @project_content.id, :module_name => @module_name assert_response 200 - # assert_tag # TODO end - protected - - # returns a new ProjectContent for the given profile - def create_project_content(profile) - project_content = MezuroPlugin::ProjectContent.new(:profile => profile, :name => @project.name) - Kalibro::Client::ProjectClient.expects(:save).with(project_content) - Kalibro::Client::KalibroClient.expects(:process_project).with(project_content.name) - project_content.save + private - MezuroPlugin::ProjectContent.any_instance.stubs(:project_content).returns(project_content) - project_content + def create_project_content + @module_result = ModuleResultFixtures.create + @module_name = @module_result.module.name + @project_content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @module_name) + @project_content.expects(:send_project_to_service).returns(nil) + @project_content.expects(:module_result).with(@module_name).returns(@module_result) + @project_content.save end - - #TODO Adicionar module result manualmente - #TODO Ver testes do project content, refatorar o project content em cima dos testes - #TODO Repensar design OO: nao amarrar o project_content ao webservice. Criar um modelo abstrato do webservice + end -- libgit2 0.21.2