Commit f933c56cec0d9320308a57855930069ccbe543cf

Authored by Alessandro Palmeira + Caio Salgado
Committed by Paulo Meireles
1 parent 7a825ff3

[Mezuro] Refactoring module_result. Fixed fixtures, started tests and added new …

…methods to module_result.rb
plugins/mezuro/lib/kalibro/module_result.rb
... ... @@ -3,14 +3,24 @@ class Kalibro::ModuleResult < Kalibro::Model
3 3 attr_accessor :module, :date, :grade, :metric_result, :compound_metric_with_error
4 4  
5 5 def self.find_module_result(project_name, module_name, date)
6   - result = module_result.request(
  6 + response = request(
7 7 :get_module_result,
8 8 {
9 9 :project_name => project_name,
10 10 :module_name => module_name,
11 11 :date => date_with_milliseconds(date)
12 12 })[:module_result]
13   - new result
  13 + new response
  14 + end
  15 +
  16 + def self.all_module_results(project_name, module_name)
  17 + response = request(
  18 + :get_result_history,
  19 + {
  20 + :project_name => project_name,
  21 + :module_name => module_name,
  22 + })[:module_result]
  23 + to_entity_array(response)
14 24 end
15 25  
16 26 #FIXME change Kalibro::Entities::Module
... ... @@ -34,14 +44,23 @@ class Kalibro::ModuleResult < Kalibro::Model
34 44  
35 45 private
36 46  
37   - def self.module_result
38   - endpoint = "ModuleResult"
  47 + def self.to_entity_array(value)
  48 + array = value.kind_of?(Array) ? value : [value]
  49 + array.each.collect { |element| to_entity(element) }
  50 + end
  51 +
  52 + def self.to_entity(value)
  53 + value.kind_of?(Hash) ? new(value) : value
  54 + end
  55 +
  56 + def self.client
  57 + endpoint = 'ModuleResult'
39 58 service_address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yaml")
40 59 Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl")
41 60 end
42 61  
43 62 def self.request(action, request_body = nil)
44   - response = module_result.request(:kalibro, action) { soap.body = request_body }
  63 + response = client.request(:kalibro, action) { soap.body = request_body }
45 64 response.to_hash["#{action}_response".to_sym]
46 65 end
47 66  
... ...
plugins/mezuro/test/fixtures/module_result_fixtures.rb
... ... @@ -4,24 +4,20 @@ require File.dirname(__FILE__) + '/compound_metric_with_error_fixtures'
4 4  
5 5 class ModuleResultFixtures
6 6  
7   - def self.create
8   - fixture = Kalibro::Entities::ModuleResult.new
9   - fixture.module = ModuleFixtures.qt_calculator
10   - fixture.date = DateTime.parse('Thu, 20 Oct 2011 18:26:43.151 +0000')
11   - fixture.grade = 10.0
12   - fixture.metric_results = [
13   - MetricResultFixtures.amloc_result,
14   - MetricResultFixtures.sc_result]
15   - fixture.compound_metrics_with_error = [CompoundMetricWithErrorFixtures.create]
16   - fixture
  7 + def self.module_result
  8 + fixture = Kalibro::ModuleResult.new( module_result_hash )
17 9 end
18 10  
19   - def self.create_hash
20   - {:module => ModuleFixtures.qt_calculator_hash,
21   - :date => '2011-10-20T18:26:43.151+00:00', :grade => 10.0, :metric_result => [
  11 + def self.module_result_hash
  12 + {
  13 + :module => ModuleFixtures.qt_calculator_hash,
  14 + :date => '2011-10-20T18:26:43.151+00:00',
  15 + :grade => 10.0,
  16 + :metric_result => [
22 17 MetricResultFixtures.amloc_result_hash,
23 18 MetricResultFixtures.sc_result_hash],
24   - :compound_metric_with_error => [CompoundMetricWithErrorFixtures.create_hash]}
  19 + :compound_metric_with_error => [CompoundMetricWithErrorFixtures.create_hash]
  20 + }
25 21 end
26 22  
27 23 end
... ...
plugins/mezuro/test/unit/kalibro/entities/module_result_test.rb
... ... @@ -5,8 +5,8 @@ require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
5 5 class ModuleResultTest < ActiveSupport::TestCase
6 6  
7 7 def setup
8   - @hash = ModuleResultFixtures.create_hash
9   - @result = ModuleResultFixtures.create
  8 + @hash = ModuleResultFixtures.module_result_hash
  9 + @result = ModuleResultFixtures.module_result
10 10 end
11 11  
12 12 should 'create module result from hash' do
... ... @@ -14,7 +14,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
14 14 end
15 15  
16 16 should 'convert module result to hash' do
17   - assert_equal @hash, @result.to_hash
  17 + assert_equal @hash, Kalibro::Entities::ModuleResult.to_hash(@result)
18 18 end
19 19  
20   -end
21 20 \ No newline at end of file
  21 +end
... ...
plugins/mezuro/test/unit/kalibro/module_result_test.rb 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +require "test_helper"
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
  4 +
  5 +class ModuleResultTest < ActiveSupport::TestCase
  6 +
  7 + def setup
  8 + @hash = ModuleResultFixtures.module_result_hash
  9 + @module_result = ModuleResultFixtures.module_result
  10 + end
  11 + should 'create module result' do
  12 + assert_equal @module_result.date, Kalibro::ModuleResult.new(@hash).date
  13 + end
  14 +
  15 + should 'convert module result to hash' do
  16 + assert_equal @hash, @module_result.to_hash
  17 + end
  18 +
  19 + should 'find module result' do
  20 + date_string = '2012-01-10T16:07:15.442-02:00'
  21 + date = DateTime.parse(date_string)
  22 + request_body = {:project_name => 'Qt-Calculator', :module_name => 'main', :date => date_string}
  23 + response = {:module_result => @hash}
  24 + Kalibro::ModuleResult.expects(:request).with(:get_module_result, request_body).returns(response)
  25 + assert_equal @module_result, Kalibro::ModuleResult.find_module_result('Qt-Calculator', 'main', date)
  26 + end
  27 +
  28 +end
... ...