Commit f909e2e2c722acff46ab41ae882b179d7062b345

Authored by Carlos Morais + Eduardo Morais
Committed by Carlos Morais
1 parent 3543b6b5

[mezuro] Functional tests and bug fixes for client

plugins/mezuro/lib/kalibro/client/port.rb
@@ -7,7 +7,8 @@ end @@ -7,7 +7,8 @@ end
7 class Kalibro::Client::Port 7 class Kalibro::Client::Port
8 8
9 def initialize(endpoint) 9 def initialize(endpoint)
10 - @client = Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl") 10 + @endpoint = endpoint
  11 + initialize_client
11 end 12 end
12 13
13 def service_address 14 def service_address
@@ -18,9 +19,20 @@ class Kalibro::Client::Port @@ -18,9 +19,20 @@ class Kalibro::Client::Port
18 @service_address 19 @service_address
19 end 20 end
20 21
  22 + def service_address=(address)
  23 + @service_address = address
  24 + initialize_client
  25 + end
  26 +
21 def request(action, request_body = nil) 27 def request(action, request_body = nil)
22 response = @client.request(:kalibro, action) { soap.body = request_body } 28 response = @client.request(:kalibro, action) { soap.body = request_body }
23 response.to_hash["#{action}_response".to_sym] 29 response.to_hash["#{action}_response".to_sym]
24 end 30 end
25 31
  32 + private
  33 +
  34 + def initialize_client
  35 + @client = Savon::Client.new("#{service_address}#{@endpoint}Endpoint/?wsdl")
  36 + end
  37 +
26 end 38 end
plugins/mezuro/lib/kalibro/entities/metric_configuration.rb
@@ -11,6 +11,10 @@ class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity @@ -11,6 +11,10 @@ class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity
11 end 11 end
12 end 12 end
13 13
  14 + def weight=(value)
  15 + @weight = value.to_f
  16 + end
  17 +
14 def range=(value) 18 def range=(value)
15 @range = to_entity_array(value, Kalibro::Entities::Range) 19 @range = to_entity_array(value, Kalibro::Entities::Range)
16 end 20 end
plugins/mezuro/lib/kalibro/entities/range.rb
@@ -2,4 +2,14 @@ class Kalibro::Entities::Range < Kalibro::Entities::Entity @@ -2,4 +2,14 @@ class Kalibro::Entities::Range < Kalibro::Entities::Entity
2 2
3 attr_accessor :beginning, :end, :label, :grade, :color, :comments 3 attr_accessor :beginning, :end, :label, :grade, :color, :comments
4 4
  5 + def beginning=(value)
  6 + @beginning = value.to_f
  7 + @beginning = -1.0/0.0 if value == "-INF"
  8 + end
  9 +
  10 + def end=(value)
  11 + @end = value.to_f
  12 + @end = 1.0/0.0 if value == "INF"
  13 + end
  14 +
5 end 15 end
6 \ No newline at end of file 16 \ No newline at end of file
plugins/mezuro/test/functional/base_tool_client_test.rb
1 require "test_helper" 1 require "test_helper"
2 -  
3 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures" 2 +require File.dirname(__FILE__) + '/fake_port'
4 3
5 class BaseToolClientTest < ActiveSupport::TestCase 4 class BaseToolClientTest < ActiveSupport::TestCase
6 5
7 def setup 6 def setup
  7 + fake_port = FakePort.new('BaseTool')
  8 + Kalibro::Client::Port.expects(:new).with('BaseTool').returns(fake_port)
8 @client = Kalibro::Client::BaseToolClient.new 9 @client = Kalibro::Client::BaseToolClient.new
9 end 10 end
10 11
@@ -14,9 +15,15 @@ class BaseToolClientTest &lt; ActiveSupport::TestCase @@ -14,9 +15,15 @@ class BaseToolClientTest &lt; ActiveSupport::TestCase
14 15
15 should 'get base tool by name' do 16 should 'get base tool by name' do
16 analizo = @client.base_tool('Analizo') 17 analizo = @client.base_tool('Analizo')
17 - amloc = NativeMetricFixtures.amloc  
18 - amloc.languages = ["C", "CPP", "JAVA"]  
19 - assert_includes analizo.supported_metrics, amloc 18 + assert_equal 'Analizo', analizo.name
  19 + assert_equal 'Analizo description', analizo.description
  20 + assert_equal 1, analizo.supported_metrics.size
  21 + metric = analizo.supported_metrics[0]
  22 + assert_equal 'Analizo', metric.origin
  23 + assert_equal 'Analizo metric', metric.name
  24 + assert_equal 'Analizo metric description', metric.description
  25 + assert_equal 'METHOD', metric.scope
  26 + assert_equal ['CPP', 'JAVA'], metric.languages
20 end 27 end
21 28
22 end 29 end
23 \ No newline at end of file 30 \ No newline at end of file
plugins/mezuro/test/functional/fake_port.rb 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +class FakePort < Kalibro::Client::Port
  2 +
  3 + def initialize(endpoint)
  4 + super(endpoint)
  5 + self.service_address = 'http://localhost:8080/KalibroFake/'
  6 + end
  7 +end
plugins/mezuro/test/functional/metric_configuration_client_test.rb
1 require "test_helper" 1 require "test_helper"
  2 +require File.dirname(__FILE__) + '/fake_port'
2 3
3 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" 4 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
4 5
5 class MetricConfigurationClientTest < ActiveSupport::TestCase 6 class MetricConfigurationClientTest < ActiveSupport::TestCase
6 7
7 def setup 8 def setup
  9 + fake_port = FakePort.new('MetricConfiguration')
  10 + Kalibro::Client::Port.expects(:new).with('MetricConfiguration').returns(fake_port)
8 @client = Kalibro::Client::MetricConfigurationClient.new 11 @client = Kalibro::Client::MetricConfigurationClient.new
9 end 12 end
10 13
@@ -14,8 +17,23 @@ class MetricConfigurationClientTest &lt; ActiveSupport::TestCase @@ -14,8 +17,23 @@ class MetricConfigurationClientTest &lt; ActiveSupport::TestCase
14 end 17 end
15 18
16 should 'get metric configuration by name' do 19 should 'get metric configuration by name' do
17 - configuration = MetricConfigurationFixtures.amloc_configuration  
18 - assert_equal configuration, @client.metric_configuration('Configuration X', 'Metric X') 20 + configuration = @client.metric_configuration('C', 'native')
  21 + assert_equal 'metricOfC', configuration.code
  22 + assert_equal 1.0, configuration.weight
  23 + assert_equal 'AVERAGE', configuration.aggregation_form
  24 + assert_equal 1, configuration.ranges.size
  25 +
  26 + range = configuration.ranges[0]
  27 + assert_equal -1.0/0.0, range.beginning
  28 + assert_equal 1.0/0.0, range.end
  29 +
  30 + metric = configuration.metric
  31 + puts metric
  32 + assert metric.is_a?(Kalibro::Entities::NativeMetric)
  33 + assert_equal 'Metric of C', metric.name
  34 + assert_equal 'METHOD', metric.scope
  35 + assert_equal ['JAVA'], metric.languages
  36 + assert_equal 'Metric of C description', metric.description
19 end 37 end
20 38
21 should 'remove metric configuration by name' do 39 should 'remove metric configuration by name' do