diff --git a/plugins/mezuro/lib/kalibro/client/port.rb b/plugins/mezuro/lib/kalibro/client/port.rb index 8ced1b3..e5537f8 100644 --- a/plugins/mezuro/lib/kalibro/client/port.rb +++ b/plugins/mezuro/lib/kalibro/client/port.rb @@ -7,7 +7,8 @@ end class Kalibro::Client::Port def initialize(endpoint) - @client = Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl") + @endpoint = endpoint + initialize_client end def service_address @@ -18,9 +19,20 @@ class Kalibro::Client::Port @service_address end + def service_address=(address) + @service_address = address + initialize_client + end + def request(action, request_body = nil) response = @client.request(:kalibro, action) { soap.body = request_body } response.to_hash["#{action}_response".to_sym] end + private + + def initialize_client + @client = Savon::Client.new("#{service_address}#{@endpoint}Endpoint/?wsdl") + end + end diff --git a/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb b/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb index 944e101..50b6be5 100644 --- a/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb +++ b/plugins/mezuro/lib/kalibro/entities/metric_configuration.rb @@ -11,6 +11,10 @@ class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity end end + def weight=(value) + @weight = value.to_f + end + def range=(value) @range = to_entity_array(value, Kalibro::Entities::Range) end diff --git a/plugins/mezuro/lib/kalibro/entities/range.rb b/plugins/mezuro/lib/kalibro/entities/range.rb index 06a4f51..6a86528 100644 --- a/plugins/mezuro/lib/kalibro/entities/range.rb +++ b/plugins/mezuro/lib/kalibro/entities/range.rb @@ -2,4 +2,14 @@ class Kalibro::Entities::Range < Kalibro::Entities::Entity attr_accessor :beginning, :end, :label, :grade, :color, :comments + def beginning=(value) + @beginning = value.to_f + @beginning = -1.0/0.0 if value == "-INF" + end + + def end=(value) + @end = value.to_f + @end = 1.0/0.0 if value == "INF" + end + end \ No newline at end of file diff --git a/plugins/mezuro/test/functional/base_tool_client_test.rb b/plugins/mezuro/test/functional/base_tool_client_test.rb index 5f42d8a..af64470 100644 --- a/plugins/mezuro/test/functional/base_tool_client_test.rb +++ b/plugins/mezuro/test/functional/base_tool_client_test.rb @@ -1,10 +1,11 @@ require "test_helper" - -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures" +require File.dirname(__FILE__) + '/fake_port' class BaseToolClientTest < ActiveSupport::TestCase def setup + fake_port = FakePort.new('BaseTool') + Kalibro::Client::Port.expects(:new).with('BaseTool').returns(fake_port) @client = Kalibro::Client::BaseToolClient.new end @@ -14,9 +15,15 @@ class BaseToolClientTest < ActiveSupport::TestCase should 'get base tool by name' do analizo = @client.base_tool('Analizo') - amloc = NativeMetricFixtures.amloc - amloc.languages = ["C", "CPP", "JAVA"] - assert_includes analizo.supported_metrics, amloc + assert_equal 'Analizo', analizo.name + assert_equal 'Analizo description', analizo.description + assert_equal 1, analizo.supported_metrics.size + metric = analizo.supported_metrics[0] + assert_equal 'Analizo', metric.origin + assert_equal 'Analizo metric', metric.name + assert_equal 'Analizo metric description', metric.description + assert_equal 'METHOD', metric.scope + assert_equal ['CPP', 'JAVA'], metric.languages end end \ No newline at end of file diff --git a/plugins/mezuro/test/functional/fake_port.rb b/plugins/mezuro/test/functional/fake_port.rb new file mode 100644 index 0000000..15feb59 --- /dev/null +++ b/plugins/mezuro/test/functional/fake_port.rb @@ -0,0 +1,7 @@ +class FakePort < Kalibro::Client::Port + + def initialize(endpoint) + super(endpoint) + self.service_address = 'http://localhost:8080/KalibroFake/' + end +end diff --git a/plugins/mezuro/test/functional/metric_configuration_client_test.rb b/plugins/mezuro/test/functional/metric_configuration_client_test.rb index e2f008a..37db9aa 100644 --- a/plugins/mezuro/test/functional/metric_configuration_client_test.rb +++ b/plugins/mezuro/test/functional/metric_configuration_client_test.rb @@ -1,10 +1,13 @@ require "test_helper" +require File.dirname(__FILE__) + '/fake_port' require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" class MetricConfigurationClientTest < ActiveSupport::TestCase def setup + fake_port = FakePort.new('MetricConfiguration') + Kalibro::Client::Port.expects(:new).with('MetricConfiguration').returns(fake_port) @client = Kalibro::Client::MetricConfigurationClient.new end @@ -14,8 +17,23 @@ class MetricConfigurationClientTest < ActiveSupport::TestCase end should 'get metric configuration by name' do - configuration = MetricConfigurationFixtures.amloc_configuration - assert_equal configuration, @client.metric_configuration('Configuration X', 'Metric X') + configuration = @client.metric_configuration('C', 'native') + assert_equal 'metricOfC', configuration.code + assert_equal 1.0, configuration.weight + assert_equal 'AVERAGE', configuration.aggregation_form + assert_equal 1, configuration.ranges.size + + range = configuration.ranges[0] + assert_equal -1.0/0.0, range.beginning + assert_equal 1.0/0.0, range.end + + metric = configuration.metric + puts metric + assert metric.is_a?(Kalibro::Entities::NativeMetric) + assert_equal 'Metric of C', metric.name + assert_equal 'METHOD', metric.scope + assert_equal ['JAVA'], metric.languages + assert_equal 'Metric of C description', metric.description end should 'remove metric configuration by name' do -- libgit2 0.21.2