diff --git a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb index c2f1769..d94e965 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb @@ -26,38 +26,44 @@ class MezuroPluginMyprofileController < ProfileController def edit_metric_configuration @configuration_content = profile.articles.find(params[:id]) - @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, params[:metric_name]) + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name]) @metric = @metric_configuration.metric end def edit_compound_metric_configuration @configuration_content = profile.articles.find(params[:id]) - @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, params[:metric_name]) + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name]) @metric_configurations = @configuration_content.metric_configurations @metric = @metric_configuration.metric end def create_metric_configuration - configuration_content = profile.articles.find(params[:id]) - metric_name = generic_metric_configuration_creation(new_metric_configuration_instance, configuration_content.name) - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{metric_name.gsub(/\s/, '+')}" + id = params[:id] + metric_name = params[:metric_configuration][:metric][:name] + Kalibro::MetricConfiguration.new(params[:metric_configuration]).save + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" end def create_compound_metric_configuration - configuration_content = profile.articles.find(params[:id]) - metric_name = generic_metric_configuration_creation(new_compound_metric_configuration_instance, configuration_content.name) - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{metric_name.gsub(/\s/, '+')}" + id = params[:id] + metric_name = params[:metric_configuration][:metric][:name] + Kalibro::MetricConfiguration.new(params[:metric_configuration]).save + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}" end def update_metric_configuration @configuration_content = profile.articles.find(params[:id]) - auxiliar_update_metric_configuration(Kalibro::MetricConfiguration::NATIVE_TYPE) + metric_name = params[:metric_configuration][:metric][:name] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) + metric_configuration.update_attributes params[:metric_configuration] redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" end def update_compound_metric_configuration @configuration_content = profile.articles.find(params[:id]) - auxiliar_update_metric_configuration(Kalibro::MetricConfiguration::COMPOUND_TYPE) + metric_name = params[:metric_configuration][:metric][:name] + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name) + metric_configuration.update_attributes params[:metric_configuration] redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" end @@ -71,7 +77,7 @@ class MezuroPluginMyprofileController < ProfileController @metric_name = params[:metric_name] @beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, @metric_name) + 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 } end @@ -80,7 +86,7 @@ class MezuroPluginMyprofileController < ProfileController @range = Kalibro::Range.new params[:range] metric_name = params[:metric_name] beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, 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 end @@ -89,7 +95,7 @@ class MezuroPluginMyprofileController < ProfileController configuration_content = profile.articles.find(params[:id]) metric_name = params[:metric_name] beginning_id = params[:beginning_id] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name) + 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 } metric_configuration.ranges[index] = Kalibro::Range.new params[:range] metric_configuration.save @@ -99,7 +105,7 @@ class MezuroPluginMyprofileController < ProfileController configuration_content = profile.articles.find(params[:id]) metric_name = params[:metric_name] beginning_id = params[:range_beginning] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name) + 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 }.inspect metric_configuration.save formatted_metric_name = metric_name.gsub(/\s/, '+') @@ -113,52 +119,9 @@ class MezuroPluginMyprofileController < ProfileController def remove_metric_configuration configuration_content = profile.articles.find(params[:id]) metric_name = params[:metric_name] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name) + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name) metric_configuration.destroy redirect_to "/#{profile.identifier}/#{configuration_content.slug}" end - private - - def new_metric_configuration_instance - metric_configuration = Kalibro::MetricConfiguration.new - metric_configuration.metric = Kalibro::NativeMetric.new - assign_metric_configuration_instance(metric_configuration, Kalibro::MetricConfiguration::NATIVE_TYPE) - end - - def new_compound_metric_configuration_instance - metric_configuration = Kalibro::MetricConfiguration.new - metric_configuration.metric = Kalibro::CompoundMetric.new - assign_metric_configuration_instance(metric_configuration, Kalibro::MetricConfiguration::COMPOUND_TYPE) - end - - def assign_metric_configuration_instance(metric_configuration, type=Kalibro::MetricConfiguration::NATIVE_TYPE) - metric_configuration.metric.name = params[:metric_configuration][:metric][:name] - metric_configuration.metric.description = params[:metric_configuration][:metric][:description] - metric_configuration.metric.scope = params[:metric_configuration][:metric][:scope] - metric_configuration.code = params[:metric_configuration][:code] - metric_configuration.weight = params[:metric_configuration][:weight] - metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] - - if type == Kalibro::MetricConfiguration::NATIVE_TYPE - metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin] - metric_configuration.metric.language = params[:metric_configuration][:metric][:language] - elsif type == Kalibro::MetricConfiguration::COMPOUND_TYPE - metric_configuration.metric.script = params[:metric_configuration][:metric][:script] - end - metric_configuration - end - - def generic_metric_configuration_creation(metric_configuration, configuration_name) - metric_configuration.save - metric_configuration.metric.name - end - - def auxiliar_update_metric_configuration(type) - metric_name = params[:metric_configuration][:metric][:name] - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, metric_name) - metric_configuration = assign_metric_configuration_instance(metric_configuration, type) - metric_configuration.save - end - end diff --git a/plugins/mezuro/lib/kalibro/client/configuration_client.rb b/plugins/mezuro/lib/kalibro/client/configuration_client.rb deleted file mode 100644 index e215587..0000000 --- a/plugins/mezuro/lib/kalibro/client/configuration_client.rb +++ /dev/null @@ -1,45 +0,0 @@ -class Kalibro::Client::ConfigurationClient - - def self.configuration(configuration_name) - new.configuration(configuration_name) - end - - def self.save(configuration_content) - begin - configuration = new.configuration(configuration_content.name) - rescue - configuration = Kalibro::Entities::Configuration.new - configuration.name = configuration_content.name - end - - configuration.description = configuration_content.description - new.save(configuration) - end - - def self.remove(configuration_name) - client = new - client.remove(configuration_name) if client.configuration_names.include? configuration_name - end - - def initialize - @port = Kalibro::Client::Port.new('Configuration') - end - - def save(configuration) - @port.request(:save_configuration, {:configuration => configuration.to_hash}) - end - - def configuration_names - @port.request(:get_configuration_names)[:configuration_name].to_a - end - - def configuration(name) - hash = @port.request(:get_configuration, {:configuration_name => name})[:configuration] - Kalibro::Entities::Configuration.from_hash(hash) - end - - def remove(configuration_name) - @port.request(:remove_configuration, {:configuration_name => configuration_name}) - end - -end diff --git a/plugins/mezuro/lib/kalibro/configuration.rb b/plugins/mezuro/lib/kalibro/configuration.rb index 3b0db6d..7317960 100644 --- a/plugins/mezuro/lib/kalibro/configuration.rb +++ b/plugins/mezuro/lib/kalibro/configuration.rb @@ -19,11 +19,7 @@ class Kalibro::Configuration < Kalibro::Model end def self.find_by_name(configuration_name) - begin - new request("Configuration", :get_configuration, {:configuration_name => configuration_name})[:configuration] - rescue Exception => error - nil - end + new request("Configuration", :get_configuration, {:configuration_name => configuration_name})[:configuration] end def self.create(configuration_content) @@ -37,7 +33,7 @@ class Kalibro::Configuration < Kalibro::Model begin self.class.request("Configuration", :save_configuration, {:configuration => to_hash}) true - rescue + rescue Exception => error false end end diff --git a/plugins/mezuro/lib/kalibro/entities/configuration.rb b/plugins/mezuro/lib/kalibro/entities/configuration.rb deleted file mode 100644 index c2c7b40..0000000 --- a/plugins/mezuro/lib/kalibro/entities/configuration.rb +++ /dev/null @@ -1,21 +0,0 @@ -class Kalibro::Entities::Configuration < Kalibro::Entities::Entity - - attr_accessor :name, :description, :metric_configuration - - def metric_configuration=(value) - @metric_configuration = to_entity_array(value, Kalibro::Entities::MetricConfiguration) - end - - def metric_configurations - if @metric_configuration != nil - @metric_configuration - else - [] - end - end - - def metric_configurations=(metric_configurations) - @metric_configuration = metric_configurations - end - -end diff --git a/plugins/mezuro/lib/kalibro/metric_configuration.rb b/plugins/mezuro/lib/kalibro/metric_configuration.rb index c015633..1f9f93d 100644 --- a/plugins/mezuro/lib/kalibro/metric_configuration.rb +++ b/plugins/mezuro/lib/kalibro/metric_configuration.rb @@ -35,7 +35,12 @@ class Kalibro::MetricConfiguration < Kalibro::Model @range = ranges end - def self.find_by_configuration_and_metric(configuration_name, metric_name) + def update_attributes(attributes={}) + attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } + save + end + + def self.find_by_configuration_name_and_metric_name(configuration_name, metric_name) metric_configuration = new request("MetricConfiguration", :get_metric_configuration, { :configuration_name => configuration_name, :metric_name => metric_name @@ -45,14 +50,9 @@ class Kalibro::MetricConfiguration < Kalibro::Model end def save - begin self.class.request("MetricConfiguration", :save_metric_configuration, { :metric_configuration => to_hash, :configuration_name => configuration_name}) - true - rescue - false - end end def destroy diff --git a/plugins/mezuro/lib/kalibro/model.rb b/plugins/mezuro/lib/kalibro/model.rb index 7b331a7..74f6feb 100644 --- a/plugins/mezuro/lib/kalibro/model.rb +++ b/plugins/mezuro/lib/kalibro/model.rb @@ -19,6 +19,10 @@ class Kalibro::Model hash end + def self.request(endpoint, action, request_body = nil) + response = client(endpoint).request(:kalibro, action) { soap.body = request_body } + response.to_hash["#{action}_response".to_sym] # response is a Savon::SOAP::Response, and to_hash is a Savon::SOAP::Response method + end protected def fields @@ -46,13 +50,9 @@ class Kalibro::Model Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl") end - def self.request(endpoint, action, request_body = nil) - response = client(endpoint).request(:kalibro, action) { soap.body = request_body } - response.to_hash["#{action}_response".to_sym] # response is a Savon::SOAP::Response, and to_hash is a Savon::SOAP::Response method - end def self.is_valid?(field) - field.to_s[0] != '@' and field != :attributes! + field.to_s[0] != '@' and field != :attributes! and (field.to_s =~ /xsi/).nil? end def to_objects_array(value, model_class = nil) diff --git a/plugins/mezuro/lib/kalibro/project.rb b/plugins/mezuro/lib/kalibro/project.rb index 1b273e5..8eb66f0 100644 --- a/plugins/mezuro/lib/kalibro/project.rb +++ b/plugins/mezuro/lib/kalibro/project.rb @@ -7,11 +7,7 @@ class Kalibro::Project < Kalibro::Model end def self.find_by_name(project_name) - begin - new request("Project", :get_project, :project_name => project_name)[:project] - rescue Exception => error - nil - end + new request("Project", :get_project, :project_name => project_name)[:project] end def self.create(content) diff --git a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb index 09a7117..7270971 100644 --- a/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb +++ b/plugins/mezuro/lib/mezuro_plugin/configuration_content.rb @@ -19,7 +19,16 @@ class MezuroPlugin::ConfigurationContent < Article end def configuration - Kalibro::Client::ConfigurationClient.configuration(name) + begin + configuration = Kalibro::Configuration.find_by_name(self.name) + configuration.description = self.description + configuration + rescue Exception + Kalibro::Configuration.new({ + :name => self.name, + :description => self.description + }) + end end def metric_configurations @@ -33,7 +42,7 @@ class MezuroPlugin::ConfigurationContent < Article private def validate_kalibro_configuration_name - existing = Kalibro::Client::ConfigurationClient.new.configuration_names + existing = Kalibro::Configuration.all_names existing.each { |a| a.downcase!} if existing.include?(name.downcase) @@ -42,11 +51,11 @@ class MezuroPlugin::ConfigurationContent < Article end def send_configuration_to_service - Kalibro::Client::ConfigurationClient.save(self) + configuration.save end def remove_configuration_from_service - Kalibro::Client::ConfigurationClient.remove(name) + configuration.destroy end end diff --git a/plugins/mezuro/test/fixtures/configuration_fixtures.rb b/plugins/mezuro/test/fixtures/configuration_fixtures.rb index ae9bc0b..7fa6feb 100644 --- a/plugins/mezuro/test/fixtures/configuration_fixtures.rb +++ b/plugins/mezuro/test/fixtures/configuration_fixtures.rb @@ -2,21 +2,19 @@ require File.dirname(__FILE__) + '/metric_configuration_fixtures' class ConfigurationFixtures - def self.kalibro_configuration - configuration = Kalibro::Entities::Configuration.new - configuration.name = 'Kalibro for Java' - configuration.description = 'Kalibro configuration for Java projects.' - configuration.metric_configurations = [ - MetricConfigurationFixtures.amloc_configuration, - MetricConfigurationFixtures.sc_configuration] - configuration + def self.configuration + Kalibro::Configuration.new configuration_hash end - def self.kalibro_configuration_hash - {:name => 'Kalibro for Java', :description => 'Kalibro configuration for Java projects.', + def self.configuration_hash + { + :name => 'Kalibro for Java', + :description => 'Kalibro configuration for Java projects.', :metric_configuration => [ - MetricConfigurationFixtures.amloc_configuration_hash, - MetricConfigurationFixtures.sc_configuration_hash]} + MetricConfigurationFixtures.amloc_metric_configuration_hash, + MetricConfigurationFixtures.sc_metric_configuration_hash + ] + } end - + end diff --git a/plugins/mezuro/test/unit/kalibro/client/configuration_client_test.rb b/plugins/mezuro/test/unit/kalibro/client/configuration_client_test.rb deleted file mode 100644 index 35621de..0000000 --- a/plugins/mezuro/test/unit/kalibro/client/configuration_client_test.rb +++ /dev/null @@ -1,50 +0,0 @@ -require "test_helper" - -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" - -class ConfigurationClientTest < ActiveSupport::TestCase - - def setup - @port = mock - Kalibro::Client::Port.expects(:new).with('Configuration').returns(@port) - @client = Kalibro::Client::ConfigurationClient.new - end - - should 'save configuration' do - configuration = ConfigurationFixtures.kalibro_configuration - @port.expects(:request).with(:save_configuration, {:configuration => configuration.to_hash}) - @client.save(configuration) - end - - should 'get configuration names (zero)' do - @port.expects(:request).with(:get_configuration_names).returns({}) - assert_equal [], @client.configuration_names - end - - should 'get configuration names (one)' do - name = 'Kalibro for Java' - @port.expects(:request).with(:get_configuration_names).returns({:configuration_name => name}) - assert_equal [name], @client.configuration_names - end - - should 'get configuration names' do - names = ['Kalibro for Java', 'ConfigurationClientTest configuration'] - @port.expects(:request).with(:get_configuration_names).returns({:configuration_name => names}) - assert_equal names, @client.configuration_names - end - - should 'get configuration by name' do - configuration = ConfigurationFixtures.kalibro_configuration - request_body = {:configuration_name => configuration.name} - response_hash = {:configuration => configuration.to_hash} - @port.expects(:request).with(:get_configuration, request_body).returns(response_hash) - assert_equal configuration, @client.configuration(configuration.name) - end - - should 'remove configuration by name' do - name = 'ConfigurationClientTest' - @port.expects(:request).with(:remove_configuration, {:configuration_name => name}) - @client.remove(name) - end - -end \ No newline at end of file diff --git a/plugins/mezuro/test/unit/kalibro/client/port_test.rb b/plugins/mezuro/test/unit/kalibro/client/port_test.rb deleted file mode 100644 index d41245a..0000000 --- a/plugins/mezuro/test/unit/kalibro/client/port_test.rb +++ /dev/null @@ -1,34 +0,0 @@ -require "test_helper" - -class PortTest < ActiveSupport::TestCase - - def setup - @client = mock - set_default_address - Savon::Client.expects(:new).with("#{@default_address}PortTestEndpoint/?wsdl").returns(@client) - @port = Kalibro::Client::Port.new('PortTest') - end - - - should 'get default address' do - assert_equal @default_address, @port.service_address - end - - should 'request action and return response' do - response_body = {:port_test_response_key => 'PortTest response value'} - response_hash = {:port_test_action_response => response_body} - response = mock - response.expects(:to_hash).returns(response_hash) - @client.expects(:request).with(:kalibro, :port_test_action).returns(response) - - assert_equal response_body, @port.request(:port_test_action) - end - - private - - def set_default_address - service_file = "#{RAILS_ROOT}/plugins/mezuro/SERVICE" - File.open(service_file).each_line{ | line | @default_address = line } - end - -end \ No newline at end of file diff --git a/plugins/mezuro/test/unit/kalibro/configuration_test.rb b/plugins/mezuro/test/unit/kalibro/configuration_test.rb new file mode 100644 index 0000000..ba06720 --- /dev/null +++ b/plugins/mezuro/test/unit/kalibro/configuration_test.rb @@ -0,0 +1,58 @@ +require "test_helper" + +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" + +class ConfigurationTest < ActiveSupport::TestCase + + def setup + @hash = ConfigurationFixtures.configuration_hash + @configuration = ConfigurationFixtures.configuration + end + + should 'initialize configuration' do + assert_equal @hash[:name], Kalibro::Configuration.new(@hash).name + end + + should 'convert configuration to hash' do + assert_equal @hash, @configuration.to_hash + end + + should 'return true when configuration is saved successfully' do + Kalibro::Configuration.expects(:request).with("Configuration", :save_configuration, {:configuration => @configuration.to_hash}) + assert @configuration.save + end + + should 'return false when configuration is not saved successfully' do + Kalibro::Configuration.expects(:request).with("Configuration", :save_configuration, {:configuration => @configuration.to_hash}).raises(Exception.new) + assert !(@configuration.save) + end + + should 'get all configuration names' do + names = ['Kalibro for Java', 'ConfigurationClientTest configuration'] + Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration_names).returns({:configuration_name => names}) + assert_equal names, Kalibro::Configuration.all_names + end + + should 'find configuration by name' do + request_body = {:configuration_name => @configuration.name} + response_hash = {:configuration => @configuration.to_hash} + Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, request_body).returns(response_hash) + assert_equal @configuration.name, Kalibro::Configuration.find_by_name(@configuration.name).name + end + + should 'raise error when configuration doesnt exist' do + request_body = {:configuration_name => @configuration.name} + Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, request_body).raises(Exception.new) + assert_raise Exception do Kalibro::Configuration.find_by_name(@configuration.name) end + end + + should 'destroy configuration by name' do + Kalibro::Configuration.expects(:request).with("Configuration", :remove_configuration, {:configuration_name => @configuration.name}) + @configuration.destroy + end + + should 'raise error when try to destroy inexistent configuration from service' do + Kalibro::Configuration.expects(:request).with("Configuration", :remove_configuration, {:configuration_name => @configuration.name}).raises(Exception.new) + assert_raise Exception do @configuration.destroy end + end +end diff --git a/plugins/mezuro/test/unit/kalibro/entities/configuration_test.rb b/plugins/mezuro/test/unit/kalibro/entities/configuration_test.rb deleted file mode 100644 index ffdeba9..0000000 --- a/plugins/mezuro/test/unit/kalibro/entities/configuration_test.rb +++ /dev/null @@ -1,20 +0,0 @@ -require "test_helper" - -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" - -class ConfigurationTest < ActiveSupport::TestCase - - def setup - @hash = ConfigurationFixtures.kalibro_configuration_hash - @configuration = ConfigurationFixtures.kalibro_configuration - end - - should 'create configuration from hash' do - assert_equal @configuration, Kalibro::Entities::Configuration.from_hash(@hash) - end - - should 'convert configuration to hash' do - assert_equal @hash, @configuration.to_hash - end - -end diff --git a/plugins/mezuro/test/unit/kalibro/entities/entity_test.rb b/plugins/mezuro/test/unit/kalibro/entities/entity_test.rb deleted file mode 100644 index 93efebb..0000000 --- a/plugins/mezuro/test/unit/kalibro/entities/entity_test.rb +++ /dev/null @@ -1,51 +0,0 @@ -require "test_helper" - -class EntityTest < ActiveSupport::TestCase - - def setup - @hash = {:name => 'Carlos', :age => 25, - :brothers => [{:name => 'Saulo', :age => 22}, {:name => 'Isis', :age => 26}]} - @person = Person.create('Carlos', 25) - @person.brothers = [Person.create('Saulo', 22), Person.create('Isis', 26)] - @clone = @person.clone - end - - should 'be equal to clone' do - assert_equal @person, @clone - end - - should 'be different when field is different' do - @clone.name = 'Other' - assert @person != @clone - end - - should 'not throw exception when comparing with incompatible object' do - assert @person != @hash - end - - should 'create from hash' do - assert_equal @person, Person.from_hash(@hash) - end - - should 'convert to hash' do - assert_equal @hash, @person.to_hash - end - - class Person < Kalibro::Entities::Entity - - attr_accessor :name, :age, :brothers - - def self.create(name, age) - person = Person.new - person.name = name - person.age = age - person - end - - def brothers=(value) - @brothers = to_entity_array(value, Person) - end - - end - -end \ No newline at end of file diff --git a/plugins/mezuro/test/unit/kalibro/project_test.rb b/plugins/mezuro/test/unit/kalibro/project_test.rb index 1d115a3..6a3bc59 100644 --- a/plugins/mezuro/test/unit/kalibro/project_test.rb +++ b/plugins/mezuro/test/unit/kalibro/project_test.rb @@ -27,7 +27,7 @@ class ProjectTest < ActiveSupport::TestCase should 'raise error when project doesnt exist' do request_body = {:project_name => @project.name} Kalibro::Project.expects(:request).with("Project", :get_project, request_body).raises(Exception.new("(S:Server) There is no project named " + @project.name)) - assert_nil Kalibro::Project.find_by_name(@project.name) + assert_raise Exception do Kalibro::Project.find_by_name(@project.name) end end should 'return true when project is saved successfully' do 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 0f221a8..5566878 100644 --- a/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb +++ b/plugins/mezuro/test/unit/mezuro_plugin/configuration_content_test.rb @@ -5,7 +5,7 @@ require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" class ConfigurationContentTest < ActiveSupport::TestCase def setup - @configuration = ConfigurationFixtures.kalibro_configuration + @configuration = ConfigurationFixtures.configuration @content = MezuroPlugin::ConfigurationContent.new @content.name = @configuration.name @content.description = @configuration.description @@ -28,15 +28,13 @@ class ConfigurationContentTest < ActiveSupport::TestCase end should 'not save a configuration with an existing cofiguration name in kalibro' do - client = mock - Kalibro::Client::ConfigurationClient.expects(:new).returns(client) - client.expects(:configuration_names).returns([@content.name.upcase]) + Kalibro::Configuration.expects(:all_names).returns([@content.name.upcase]) @content.send :validate_kalibro_configuration_name assert_equal "Configuration name already exists in Kalibro", @content.errors.on_base end should 'get configuration from service' do - Kalibro::Client::ConfigurationClient.expects(:configuration).with(@content.name).returns(@configuration) + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(@configuration) assert_equal @configuration, @content.configuration end @@ -46,12 +44,20 @@ class ConfigurationContentTest < ActiveSupport::TestCase end should 'send correct configuration to service' do - Kalibro::Client::ConfigurationClient.expects(:save).with(@content) + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(@configuration) + @configuration.expects(:save).returns(true) + @content.send :send_configuration_to_service + end + + should 'send correct configuration to service but comunication fails' do + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(@configuration) + @configuration.expects(:save).returns(false) @content.send :send_configuration_to_service end should 'remove configuration from service' do - Kalibro::Client::ConfigurationClient.expects(:remove).with(@content.name) + Kalibro::Configuration.expects(:find_by_name).with(@content.name).returns(@configuration) + @configuration.expects(:destroy) @content.send :remove_configuration_from_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 394024a..9846e46 100644 --- a/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb +++ b/plugins/mezuro/views/cms/mezuro_plugin/_configuration_content.html.erb @@ -2,7 +2,7 @@ <% begin - @configuration = @article.title.nil? ? nil : Kalibro::Client::ConfigurationClient.new.configuration(@article.title) + @configuration = @article.title.nil? ? nil : Kalibro::Configuration.find_by_name(@article.title) rescue @configuration = nil end diff --git a/plugins/mezuro/views/content_viewer/show_configuration.rhtml b/plugins/mezuro/views/content_viewer/show_configuration.rhtml index 428a7ad..19d38c1 100644 --- a/plugins/mezuro/views/content_viewer/show_configuration.rhtml +++ b/plugins/mezuro/views/content_viewer/show_configuration.rhtml @@ -1,5 +1,5 @@ <% @configuration_content = @page -@configuration = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_content.name) %> +@configuration = Kalibro::Configuration.find_by_name(@configuration_content.name) %> @@ -26,7 +26,7 @@ <% @configuration.metric_configurations.each do |metric_configuration| %> - <% if metric_configuration.metric.instance_of? Kalibro::Entities::NativeMetric %> + <% if metric_configuration.metric.instance_of? Kalibro::NativeMetric %> diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/edit_compound_metric_configuration.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/edit_compound_metric_configuration.html.erb index 7f8fdf2..d06f8cc 100644 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/edit_compound_metric_configuration.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/edit_compound_metric_configuration.html.erb @@ -2,6 +2,8 @@ <% form_for :metric_configuration, :url => {:action =>"update_compound_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> <%= hidden_field_tag :id, @configuration_content.id %> + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %> +

<%= "Metric Name:" + @metric.name %>

diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/edit_metric_configuration.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/edit_metric_configuration.html.erb index a1f0b9f..9582aae 100644 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/edit_metric_configuration.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/edit_metric_configuration.html.erb @@ -4,6 +4,7 @@ <% form_for :metric_configuration, :url => {:action =>"update_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> <%= hidden_field_tag :id, @configuration_content.id %> + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %> <% f.fields_for :metric do |m| %> @@ -67,7 +68,9 @@ + + + <% if (@metric_configuration.ranges!=nil) @metric_configuration.ranges.each do |range| %> 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 index 9682ff3..754cb4f 100644 --- 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 @@ -3,6 +3,8 @@ <% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> <%= hidden_field_tag :id, @configuration_content.id %> + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %> + <% f.fields_for :metric do |m| %>

<%= m.label :name, "Name:" %> diff --git a/plugins/mezuro/views/mezuro_plugin_myprofile/new_metric_configuration.html.erb b/plugins/mezuro/views/mezuro_plugin_myprofile/new_metric_configuration.html.erb index 3f84df2..a6b7c67 100644 --- a/plugins/mezuro/views/mezuro_plugin_myprofile/new_metric_configuration.html.erb +++ b/plugins/mezuro/views/mezuro_plugin_myprofile/new_metric_configuration.html.erb @@ -1,9 +1,10 @@ -

<%= @configuration_content.name %> Configuration

+

<%= @configuration_content.name %>Configuration

<% form_for :metric_configuration, :url => {:action =>"create_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %> <%= hidden_field_tag :id, @configuration_content.id %> + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %> <% f.fields_for :metric do |m| %> -- libgit2 0.21.2
<%= metric_configuration.metric.name %> <%= metric_configuration.metric.origin %> Color -