diff --git a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb index 4a5d380..11a851e 100644 --- a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb @@ -1,6 +1,11 @@ class MezuroPlugin::ConfigurationContent < Article validate_on_create :validate_kalibro_configuration_name + settings_items :description, :configuration_to_clone_name + + after_save :send_configuration_to_service + after_destroy :remove_configuration_from_service + def self.short_description 'Kalibro configuration' end @@ -9,8 +14,6 @@ class MezuroPlugin::ConfigurationContent < Article 'Sets of thresholds to interpret metrics' end - settings_items :description, :clone_configuration_name - include ActionView::Helpers::TagHelper def to_html(options = {}) lambda do @@ -34,9 +37,6 @@ class MezuroPlugin::ConfigurationContent < Article ["None"] + Kalibro::Configuration.all_names.sort end - after_save :send_configuration_to_service - after_destroy :remove_configuration_from_service - private def validate_kalibro_configuration_name @@ -68,15 +68,19 @@ class MezuroPlugin::ConfigurationContent < Article end def editing_configuration? - !configuration.nil? + configuration.present? end def configuration_to_clone - @configuration_to_clone ||= Kalibro::Configuration.find_by_name(self.clone_configuration_name) + @configuration_to_clone ||= find_configuration_to_clone + end + + def find_configuration_to_clone + configuration_to_clone_name.nil? ? nil : Kalibro::Configuration.find_by_name(configuration_to_clone_name) end def cloning_configuration? - configuration_to_clone.nil? + configuration_to_clone.present? end end diff --git a/plugins/mezuro/test/fixtures/configuration_fixtures.rb b/plugins/mezuro/test/fixtures/configuration_fixtures.rb index 88ff63f..8233a1b 100644 --- a/plugins/mezuro/test/fixtures/configuration_fixtures.rb +++ b/plugins/mezuro/test/fixtures/configuration_fixtures.rb @@ -21,7 +21,7 @@ class ConfigurationFixtures MezuroPlugin::ConfigurationContent.new({ :name => 'Sample Configuration', :description => 'Kalibro configuration for Java projects.', - :clone_configuration_name => clone_configuration + :configuration_to_clone_name => clone_configuration }) end diff --git a/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb b/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb index 91a3fa4..872fabd 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb @@ -44,9 +44,23 @@ class ConfigurationContentTest < ActiveSupport::TestCase @content.run_callbacks :after_save end - should 'send correct configuration to service' do + should 'create new configuration' do + Kalibro::Configuration.expects(:create).with(:name => @content.name, :description => @content.description) + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(nil) + @content.send :send_configuration_to_service + end + + should 'clone configuration' do + @content.configuration_to_clone_name = 'clone name' + Kalibro::Configuration.expects(:create).with(:name => @content.name, :description => @content.description, :metric_configuration => @configuration.metric_configurations_hash) + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(nil) + Kalibro::Configuration.expects(:find_by_name).with('clone name').returns(@configuration) + @content.send :send_configuration_to_service + end + + should 'edit configuration' do Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(@configuration) - @configuration.expects(:save).returns(true) + @configuration.expects(:update_attributes).with(:description => @content.description) @content.send :send_configuration_to_service end diff --git a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb index 1ec56b1..d1c5aad 100644 --- a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb +++ b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb @@ -15,15 +15,15 @@ <% configuration_names = @article.configuration_names %> -<% selected = (configuration.nil? ? "None" : @article.clone_configuration_name) %> +<% selected = (configuration.nil? ? "None" : @article.configuration_to_clone_name) %> <%= required_fields_message %> <%= required labelled_form_field _('Clone Configuration'), if !configuration.nil? && !@article.id.nil? - f.select(:clone_configuration_name, configuration_names, {:selected => selected}, :disabled => 'true') + f.select(:configuration_to_clone_name, configuration_names, {:selected => selected}, :disabled => 'true') else - f.select(:clone_configuration_name, configuration_names, {:selected => selected}) + f.select(:configuration_to_clone_name, configuration_names, {:selected => selected}) end %>
-- libgit2 0.21.2