diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index 7a1eb53..1ab9346 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -22,6 +22,11 @@ class MezuroPluginMyprofileController < ProfileController @configuration_name = params[:configuration_name] end + def new_compound_metric_configuration + @configuration_name = params[:configuration_name] + @metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations + end + def edit_metric_configuration metric_name = params[:metric_name] @configuration_name = params[:configuration_name] @@ -43,11 +48,6 @@ class MezuroPluginMyprofileController < ProfileController redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end - def new_compound_metric - @configuration_name = params[:configuration_name] - @metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations - end - def create_compound_metric_configuration @configuration_name = params[:configuration_name] compound_metric_configuration = new_compound_metric_configuration_instance @@ -57,19 +57,21 @@ class MezuroPluginMyprofileController < ProfileController def update_metric_configuration @configuration_name = params[:configuration_name] + metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new metric_name = params[:metric][:name] - metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name) - metric_configuration = assign_metric_configuration_instance (metric_configuration) - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name) + metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name) + metric_configuration = assign_metric_configuration_instance(metric_configuration) + metric_configuration_client.save(metric_configuration, @configuration_name) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end def update_compound_metric_configuration @configuration_name = params[:configuration_name] + metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new metric_name = params[:metric_configuration][:metric][:name] - compound_metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name) - compound_metric_configuration = assign_compound_metric_configuration_instance (compound_metric_configuration) - Kalibro::Client::MetricConfigurationClient.new.save(compound_metric_configuration, @configuration_name) + compound_metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name) + compound_metric_configuration = assign_compound_metric_configuration_instance(compound_metric_configuration) + metric_configuration_client.save(compound_metric_configuration, @configuration_name) redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}" end diff --git a/plugins/mezuro/test/fixtures/compound_metric_fixtures.rb b/plugins/mezuro/test/fixtures/compound_metric_fixtures.rb index 58cecd7..a997d61 100644 --- a/plugins/mezuro/test/fixtures/compound_metric_fixtures.rb +++ b/plugins/mezuro/test/fixtures/compound_metric_fixtures.rb @@ -2,6 +2,7 @@ class CompoundMetricFixtures def self.sc sc = Kalibro::Entities::CompoundMetric.new + sc.description = 'Calculate the Structural Complexity of the Code' sc.name = 'Structural Complexity' sc.scope = 'CLASS' sc.script = 'return 42;' @@ -9,7 +10,7 @@ class CompoundMetricFixtures end def self.sc_hash - {:name => 'Structural Complexity', :scope => 'CLASS', :script => 'return 42;'} + {:name => 'Structural Complexity', :scope => 'CLASS', :script => 'return 42;', :description => 'Calculate the Structural Complexity of the Code'} end end 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 f3c5a2c..811f4c6 100644 --- a/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb +++ b/plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb @@ -4,6 +4,7 @@ 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" class MezuroPluginMyprofileControllerTest < ActionController::TestCase @@ -19,6 +20,7 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase @metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new @metric_configuration = MetricConfigurationFixtures.amloc_configuration @compound_metric_configuration = MetricConfigurationFixtures.sc_configuration + @configuration = ConfigurationFixtures.kalibro_configuration end should 'assign configuration name in choose_base_tool' do @@ -46,13 +48,21 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase assert_equal assigns(:collector), @collector end - should 'get choosed native metric and configuration name' do + should 'get chosen native metric and configuration name' do Kalibro::Client::BaseToolClient.expects(:new).returns(@base_tool_client) @base_tool_client.expects(:base_tool).with(@collector.name).returns(@collector) get :new_metric_configuration, :profile => @profile.identifier, :configuration_name => "test name", :collector_name => "Analizo", :metric_name => @metric.name assert_equal assigns(:configuration_name), "test name" assert_equal assigns(:metric), @metric end + + should 'call configuration client in new_compound_metric_configuration method' do + configuration_client = mock + Kalibro::Client::ConfigurationClient.expects(:new).returns(configuration_client) + configuration_client.expects(:configuration).with(@configuration.name).returns(@configuration) + get :new_compound_metric_configuration, :profile => @profile.identifier, :configuration_name => @configuration.name + assert_response 200 + end should 'assign configuration name and get metric_configuration' do Kalibro::Client::MetricConfigurationClient.expects(:new).returns(@metric_configuration_client) @@ -62,7 +72,7 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase assert_equal assigns(:metric_configuration), @metric_configuration assert_equal assigns(:metric), @metric_configuration.metric end - + should 'test metric creation' do Kalibro::Client::MetricConfigurationClient.expects(:new).returns(@metric_configuration_client) @metric_configuration_client.expects(:save) @@ -76,9 +86,11 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase should 'test compound metric creation' do Kalibro::Client::MetricConfigurationClient.expects(:new).returns(@metric_configuration_client) @metric_configuration_client.expects(:save) - get :create_metric_configuration, :profile => @profile.identifier, :configuration_name => "test name", :description => @metric.description, - :scope => @metric.scope, :language => @metric.language, :metric => { :name => @metric.name}, - :metric_configuration => { :script => @compound_metric_configuration.metric.script, :code => @compound_metric_configuration.code, :weight => @compound_metric_configuration.code, :aggregation => @compound_metric_configuration.aggregation_form} + get :create_compound_metric_configuration, :profile => @profile.identifier, :configuration_name => "test name", + :metric_configuration => { :code => @compound_metric_configuration.code, :weight => @compound_metric_configuration.weight, + :aggregation_form => @compound_metric_configuration.aggregation_form, :metric => { :name => @compound_metric_configuration.metric.name , + :description => @compound_metric_configuration.metric.description, :scope => @compound_metric_configuration.metric.scope, + :script => @compound_metric_configuration.metric.script}} assert_response 302 end @@ -96,6 +108,28 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase assert_response 200 end + should 'update metric configuration' do + Kalibro::Client::MetricConfigurationClient.expects(:new).returns(@metric_configuration_client) + @metric_configuration_client.expects(:metric_configuration).with(@configuration.name, @metric_configuration.metric.name).returns(@metric_configuration) + @metric_configuration_client.expects(:save) + get :update_metric_configuration, :profile => @profile.identifier, :configuration_name => @configuration.name, :description => @metric.description, + :scope => @metric.scope, :language => @metric.language, :metric => { :name => @metric.name, :origin => @metric.origin}, + :metric_configuration => { :code => @metric_configuration.code, :weight => @metric_configuration.code, :aggregation => @metric_configuration.aggregation_form } + assert_response 302 + end + + should 'update compound metric configuration' do + Kalibro::Client::MetricConfigurationClient.expects(:new).returns(@metric_configuration_client) + @metric_configuration_client.expects(:metric_configuration).with(@configuration.name, @compound_metric_configuration.metric.name).returns(@compound_metric_configuration) + @metric_configuration_client.expects(:save) + get :update_compound_metric_configuration, :profile => @profile.identifier, :configuration_name => @configuration.name, + :metric_configuration => { :code => @compound_metric_configuration.code, :weight => @compound_metric_configuration.weight, + :aggregation_form => @compound_metric_configuration.aggregation_form, :metric => { :name => @compound_metric_configuration.metric.name , + :description => @compound_metric_configuration.metric.description, :scope => @compound_metric_configuration.metric.scope, + :script => @compound_metric_configuration.metric.script}} + assert_response 302 + end + should 'assign configuration name and metric name to new range' do get :new_range, :profile => @profile.identifier, :configuration_name => "test name", :metric_name => @metric.name assert_equal assigns(:configuration_name), "test name" @@ -119,4 +153,4 @@ class MezuroPluginMyprofileControllerTest < ActionController::TestCase assert_response 302 end -end +endgit diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb index 37faad8..254b8a8 100644 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb @@ -1,6 +1,6 @@
- <%= m.label :name, "Name:" %> - <%= m.text_field "name" %> -
-- <%= m.label :description, "Description:" %> - <%= m.text_field "description" %> -
-- <%= m.label :scope, "Scope:" %> - <%= m.select :scope, [["Class", "CLASS"]] %> -
-- <%= m.label :script, "Script:" %> - <%= m.text_area "script" %> -
- <% end %> -- <%= f.label :code, "Code:" %> - <%= f.text_field "code" %> -
-- <%= f.label :aggregation_form, "Aggregation Form:" %> - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %> -
-- <%= f.label :weight, "Weight:" %> - <%= f.text_field :weight %> -
-- <%= f.submit "Save" %> -
-<% end %> - - -Metric Name |
- Metric Code |
-
<%= metric_configuration.metric.name %> | -<%= metric_configuration.code %> | -
+ <%= m.label :name, "Name:" %> + <%= m.text_field "name" %> +
++ <%= m.label :description, "Description:" %> + <%= m.text_field "description" %> +
++ <%= m.label :scope, "Scope:" %> + <%= m.select :scope, [["Class", "CLASS"]] %> +
++ <%= m.label :script, "Script:" %> + <%= m.text_area "script" %> +
+ <% end %> ++ <%= f.label :code, "Code:" %> + <%= f.text_field "code" %> +
++ <%= f.label :aggregation_form, "Aggregation Form:" %> + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"], + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %> +
++ <%= f.label :weight, "Weight:" %> + <%= f.text_field :weight %> +
++ <%= f.submit "Save" %> +
+<% end %> + + +Metric Name |
+ Metric Code |
+
<%= metric_configuration.metric.name %> | +<%= metric_configuration.code %> | +