From bee62675c7b52c4c22c7820c5f4db20a77a79f41 Mon Sep 17 00:00:00 2001 From: Alessandro Palmeira + João M. M. da Silva + Renan Teruo Date: Fri, 1 Jun 2012 15:44:42 -0300 Subject: [PATCH] [Mezuro] Finished compound_metrics with functionalities and tests --- plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb | 24 +++++++++++++----------- plugins/mezuro/test/fixtures/compound_metric_fixtures.rb | 3 ++- plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb | 46 ++++++++++++++++++++++++++++++++++++++++------ plugins/mezuro/views/mezuro_plugin_myprofile/choose_base_tool.html.erb | 2 +- plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb | 54 ------------------------------------------------------ plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 110 insertions(+), 73 deletions(-) delete mode 100644 plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb create mode 100644 plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb 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 @@

<%= @configuration_name%> Configuration

-<%= link_to "* New Compound Metric *", :controller => "mezuro_plugin_myprofile", :action => "new_compound_metric", :params => +<%= link_to "* New Compound Metric *", :controller => "mezuro_plugin_myprofile", :action => "new_compound_metric_configuration", :params => {:configuration_name => @configuration_name} %>
Base Tools:
diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb deleted file mode 100644 index 4748968..0000000 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric.html.erb +++ /dev/null @@ -1,54 +0,0 @@ -

<%= @configuration_name %> Configuration

- -<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration", -:controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> - <%= hidden_field_tag :configuration_name, @configuration_name %> - <% f.fields_for :metric do |m| %> -

- <%= 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_configurations.each do |metric_configuration| %> - - - - - <% end %> -
Metric Name
Metric Code
<%= metric_configuration.metric.name %><%= metric_configuration.code %>
diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb new file mode 100644 index 0000000..4748968 --- /dev/null +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb @@ -0,0 +1,54 @@ +

<%= @configuration_name %> Configuration

+ +<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration", +:controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> + <%= hidden_field_tag :configuration_name, @configuration_name %> + <% f.fields_for :metric do |m| %> +

+ <%= 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_configurations.each do |metric_configuration| %> + + + + + <% end %> +
Metric Name
Metric Code
<%= metric_configuration.metric.name %><%= metric_configuration.code %>
-- libgit2 0.21.2