From 1f2785fc7ee54eed3ef6e4464c384f17b5014df9 Mon Sep 17 00:00:00 2001 From: João M. M. da Silva + Alessandro Palmeira Date: Thu, 6 Sep 2012 10:20:17 -0300 Subject: [PATCH] [Mezuro] draft to range controller --- plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb | 58 ---------------------------------------------------------- plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb | 3 ++- plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb | 1 + plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb | 67 ------------------------------------------------------------------- plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 166 insertions(+), 126 deletions(-) create mode 100644 plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb create mode 100644 plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index becaaea..5a5a635 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -109,65 +109,7 @@ class MezuroPluginMyprofileController < ProfileController end end - def new_range - @configuration_content = profile.articles.find(params[:id]) - @metric_name = params[:metric_name] - @range = Kalibro::Range.new - @range_color = "#000000" - end - - def edit_range - @configuration_content = profile.articles.find(params[:id]) - @metric_name = params[:metric_name] - @beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, @metric_name) - @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" } - @range_color = "#" + @range.color.to_s.gsub(/^ff/, "") - end - - def create_range - @configuration_content = profile.articles.find(params[:id]) - @range = Kalibro::Range.new params[:range] - metric_name = params[:metric_name] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) - metric_configuration.add_range(@range) - metric_configuration.save - if metric_configuration_has_errors? metric_configuration - redirect_to_error_page metric_configuration.errors[0].message - end - end - - def update_range - configuration_content = profile.articles.find(params[:id]) - metric_name = params[:metric_name] - beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) - index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } - metric_configuration.ranges[index] = Kalibro::Range.new params[:range] - metric_configuration.save - if metric_configuration_has_errors? metric_configuration - redirect_to_error_page metric_configuration.errors[0].message - end - end - def remove_range - configuration_content = profile.articles.find(params[:id]) - metric_name = params[:metric_name] - beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) - metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } - metric_configuration.save - if metric_configuration_has_errors? metric_configuration - redirect_to_error_page metric_configuration.errors[0].message - else - formatted_metric_name = metric_name.gsub(/\s/, '+') - if metric_configuration.metric.class == Kalibro::CompoundMetric - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" - else - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" - end - end - end private diff --git a/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb new file mode 100644 index 0000000..4316f94 --- /dev/null +++ b/plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb @@ -0,0 +1,65 @@ +class MezuroPluginRangeController < MezuroPluginMyprofileController + + append_view_path File.join(File.dirname(__FILE__) + '/../views') + + def new_range + @configuration_content = profile.articles.find(params[:id]) + @metric_name = params[:metric_name] + @range = Kalibro::Range.new + @range_color = "#000000" + end + + def edit_range + @configuration_content = profile.articles.find(params[:id]) + @metric_name = params[:metric_name] + @beginning_id = params[:beginning_id] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, @metric_name) + @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" } + @range_color = "#" + @range.color.to_s.gsub(/^ff/, "") + end + + def create_range + @configuration_content = profile.articles.find(params[:id]) + @range = Kalibro::Range.new params[:range] + metric_name = params[:metric_name] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) + metric_configuration.add_range(@range) + metric_configuration.save + if metric_configuration_has_errors? metric_configuration + redirect_to_error_page metric_configuration.errors[0].message + end + end + + def update_range + configuration_content = profile.articles.find(params[:id]) + metric_name = params[:metric_name] + beginning_id = params[:beginning_id] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) + index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } + metric_configuration.ranges[index] = Kalibro::Range.new params[:range] + metric_configuration.save + if metric_configuration_has_errors? metric_configuration + redirect_to_error_page metric_configuration.errors[0].message + end + end + + def remove_range + configuration_content = profile.articles.find(params[:id]) + metric_name = params[:metric_name] + beginning_id = params[:beginning_id] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) + metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" } + metric_configuration.save + if metric_configuration_has_errors? metric_configuration + redirect_to_error_page metric_configuration.errors[0].message + else + formatted_metric_name = metric_name.gsub(/\s/, '+') + if metric_configuration.metric.class == Kalibro::CompoundMetric + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" + else + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" + end + end + end + +end diff --git a/plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb b/plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb index 3aa51a2..213eebb 100644 --- a/plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb +++ b/plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb @@ -1,7 +1,8 @@ class MezuroPluginModuleController < MezuroPluginProfileController + append_view_path File.join(File.dirname(__FILE__) + '/../../views') - def module_result + def module_result @content = profile.articles.find(params[:id]) @module_result = @content.module_result(params) @module = @module_result.module diff --git a/plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb b/plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb index 107b525..20b17e8 100644 --- a/plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb +++ b/plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb @@ -1,4 +1,5 @@ class MezuroPluginProjectController < MezuroPluginProfileController + append_view_path File.join(File.dirname(__FILE__) + '/../../views') def project_state diff --git a/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb b/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb index f4f38eb..937f4f8 100644 --- a/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb +++ b/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb @@ -158,71 +158,4 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase assert_response 302 end - should 'test new range' do - get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name - assert_equal @content, assigns(:configuration_content) - assert_equal @metric.name, assigns(:metric_name) - assert_response 200 - end - - should 'test edit range' do - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { - :configuration_name => @content.name, - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) - get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning - assert_equal @content, assigns(:configuration_content) - assert_equal @metric.name, assigns(:metric_name) - assert_equal @range.beginning, assigns(:beginning_id) - assert_equal @range.end, assigns(:range).end - assert_response 200 - end - - should 'test create instance range' do - metric_configuration = @metric_configuration - metric_configuration.add_range(@range) - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { - :configuration_name => @content.name, - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => metric_configuration.to_hash, - :configuration_name => metric_configuration.configuration_name}) - get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name - assert_equal @content, assigns(:configuration_content) - assert_equal @range.end, assigns(:range).end - assert_response 200 - end - - should 'test update range' do - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { - :configuration_name => @content.name, - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => @metric_configuration.to_hash, - :configuration_name => @metric_configuration.configuration_name}) - get :update_range, - :profile => @profile.identifier, - :range => @range_hash, - :id => @content.id, - :metric_name => @metric.name, - :beginning_id => @range.beginning - assert_response 200 - end - - should 'test remove range' do - metric_configuration = @metric_configuration - metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f } - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { - :configuration_name => @content.name, - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { - :metric_configuration => metric_configuration.to_hash, - :configuration_name => metric_configuration.configuration_name}) - get :remove_range, - :profile => @profile.identifier, - :id => @content.id, - :metric_name => @metric.name, - :beginning_id => @range.beginning - assert_response 302 - end - end diff --git a/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb new file mode 100644 index 0000000..15e2df8 --- /dev/null +++ b/plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb @@ -0,0 +1,98 @@ +require 'test_helper' + +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/error_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures" + +class MezuroPluginRangeControllerTest < ActionController::TestCase + + def setup + @controller = MezuroPluginRangeController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @profile = fast_create(Community) + + @metric = NativeMetricFixtures.amloc + @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration + @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash + @configuration = ConfigurationFixtures.configuration + + Kalibro::Configuration.expects(:all_names).returns([]) + @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name) + @content.expects(:send_kalibro_configuration_to_service).returns(nil) + @content.stubs(:solr_save) + @content.save + + @range = RangeFixtures.range_excellent + @range_hash = RangeFixtures.range_excellent_hash + end + should 'test new range' do + get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name + assert_equal @content, assigns(:configuration_content) + assert_equal @metric.name, assigns(:metric_name) + assert_response 200 + end + + should 'test edit range' do + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { + :configuration_name => @content.name, + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) + get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning + assert_equal @content, assigns(:configuration_content) + assert_equal @metric.name, assigns(:metric_name) + assert_equal @range.beginning, assigns(:beginning_id) + assert_equal @range.end, assigns(:range).end + assert_response 200 + end + + should 'test create instance range' do + metric_configuration = @metric_configuration + metric_configuration.add_range(@range) + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { + :configuration_name => @content.name, + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { + :metric_configuration => metric_configuration.to_hash, + :configuration_name => metric_configuration.configuration_name}) + get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name + assert_equal @content, assigns(:configuration_content) + assert_equal @range.end, assigns(:range).end + assert_response 200 + end + + should 'test update range' do + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { + :configuration_name => @content.name, + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { + :metric_configuration => @metric_configuration.to_hash, + :configuration_name => @metric_configuration.configuration_name}) + get :update_range, + :profile => @profile.identifier, + :range => @range_hash, + :id => @content.id, + :metric_name => @metric.name, + :beginning_id => @range.beginning + assert_response 200 + end + + should 'test remove range' do + metric_configuration = @metric_configuration + metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f } + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, { + :configuration_name => @content.name, + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash}) + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, { + :metric_configuration => metric_configuration.to_hash, + :configuration_name => metric_configuration.configuration_name}) + get :remove_range, + :profile => @profile.identifier, + :id => @content.id, + :metric_name => @metric.name, + :beginning_id => @range.beginning + assert_response 302 + end +end -- libgit2 0.21.2