diff --git a/plugins/mezuro/lib/kalibro/client/metric_configuration_client.rb b/plugins/mezuro/lib/kalibro/client/metric_configuration_client.rb new file mode 100644 index 0000000..59c5149 --- /dev/null +++ b/plugins/mezuro/lib/kalibro/client/metric_configuration_client.rb @@ -0,0 +1,28 @@ +class Kalibro::Client::MetricConfigurationClient + + def initialize + @port = Kalibro::Client::Port.new('MetricConfiguration') + end + + def save(metric_configuration, configuration_name) + @port.request(:save_metric_configuration, { + :metric_configuration => metric_configuration.to_hash, + :configuration_name => configuration_name}) + end + + def metric_configuration(configuration_name, metric_name) + hash = @port.request(:get_metric_configuration, { + :configuration_name => configuration_name, + :metric_name => metric_name + })[:metric_configuration] + Kalibro::Entities::MetricConfiguration.from_hash(hash) + end + + def remove (configuration_name, metric_name) + @port.request(:remove_metric_configuration, { + :configuration_name => configuration_name, + :metric_name=> metric_name + }) + end + +end \ No newline at end of file diff --git a/plugins/mezuro/lib/kalibro/entities/entity.rb b/plugins/mezuro/lib/kalibro/entities/entity.rb index f6a08ae..f617296 100644 --- a/plugins/mezuro/lib/kalibro/entities/entity.rb +++ b/plugins/mezuro/lib/kalibro/entities/entity.rb @@ -24,6 +24,12 @@ class Kalibro::Entities::Entity fields.each do |field| field_value = self.get(field) hash[field] = convert_to_hash(field_value) if ! field_value.nil? +# TODO +# if field_value is object +# hash[:attributes!] += {field.to_sym => +# {'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', +# 'xsi:type' => 'kalibro:' + field_value_type + 'Xml' } } +# end end hash end diff --git a/plugins/mezuro/test/unit/kalibro/client/metric_configuration_client_test.rb b/plugins/mezuro/test/unit/kalibro/client/metric_configuration_client_test.rb new file mode 100644 index 0000000..2c5f5c7 --- /dev/null +++ b/plugins/mezuro/test/unit/kalibro/client/metric_configuration_client_test.rb @@ -0,0 +1,44 @@ +require "test_helper" + +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" + +class MetricConfigurationClientTest < ActiveSupport::TestCase + + def setup + @port = mock + Kalibro::Client::Port.expects(:new).with('MetricConfiguration').returns(@port) + @client = Kalibro::Client::MetricConfigurationClient.new + end + + should 'save metric configuration' do + configuration = MetricConfigurationFixtures.amloc_configuration + @port.expects(:request).with(:save_metric_configuration, { + :metric_configuration => configuration.to_hash, + :configuration_name => 'x' + }) + @client.save(configuration, 'x') + end + + should 'get metric configuration by name' do + configuration = MetricConfigurationFixtures.amloc_configuration + request_body = { + :configuration_name => 'configuration.name', + :metric_name => configuration.metric.name + } + response_hash = {:metric_configuration => configuration.to_hash} + @port.expects(:request).with(:get_metric_configuration, request_body).returns(response_hash) + assert_equal configuration, @client.metric_configuration('configuration.name', configuration.metric.name) + end + + should 'remove metric configuration by name' do + metric_name = 'MetricConfigurationClientTest' + configuration_name = 'xxxx' + request_body = { + :configuration_name => configuration_name, + :metric_name => metric_name + } + @port.expects(:request).with(:remove_metric_configuration, request_body) + @client.remove(configuration_name, metric_name) + end + +end \ No newline at end of file -- libgit2 0.21.2