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,14 +3,24 @@ class Kalibro::ModuleResult < Kalibro::Model
3 attr_accessor :module, :date, :grade, :metric_result, :compound_metric_with_error 3 attr_accessor :module, :date, :grade, :metric_result, :compound_metric_with_error
4 4
5 def self.find_module_result(project_name, module_name, date) 5 def self.find_module_result(project_name, module_name, date)
6 - result = module_result.request( 6 + response = request(
7 :get_module_result, 7 :get_module_result,
8 { 8 {
9 :project_name => project_name, 9 :project_name => project_name,
10 :module_name => module_name, 10 :module_name => module_name,
11 :date => date_with_milliseconds(date) 11 :date => date_with_milliseconds(date)
12 })[:module_result] 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 end 24 end
15 25
16 #FIXME change Kalibro::Entities::Module 26 #FIXME change Kalibro::Entities::Module
@@ -34,14 +44,23 @@ class Kalibro::ModuleResult < Kalibro::Model @@ -34,14 +44,23 @@ class Kalibro::ModuleResult < Kalibro::Model
34 44
35 private 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 service_address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yaml") 58 service_address = YAML.load_file("#{RAILS_ROOT}/plugins/mezuro/service.yaml")
40 Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl") 59 Savon::Client.new("#{service_address}#{endpoint}Endpoint/?wsdl")
41 end 60 end
42 61
43 def self.request(action, request_body = nil) 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 response.to_hash["#{action}_response".to_sym] 64 response.to_hash["#{action}_response".to_sym]
46 end 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,24 +4,20 @@ require File.dirname(__FILE__) + '/compound_metric_with_error_fixtures'
4 4
5 class ModuleResultFixtures 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 end 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 MetricResultFixtures.amloc_result_hash, 17 MetricResultFixtures.amloc_result_hash,
23 MetricResultFixtures.sc_result_hash], 18 MetricResultFixtures.sc_result_hash],
24 - :compound_metric_with_error => [CompoundMetricWithErrorFixtures.create_hash]} 19 + :compound_metric_with_error => [CompoundMetricWithErrorFixtures.create_hash]
  20 + }
25 end 21 end
26 22
27 end 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,8 +5,8 @@ require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
5 class ModuleResultTest < ActiveSupport::TestCase 5 class ModuleResultTest < ActiveSupport::TestCase
6 6
7 def setup 7 def setup
8 - @hash = ModuleResultFixtures.create_hash  
9 - @result = ModuleResultFixtures.create 8 + @hash = ModuleResultFixtures.module_result_hash
  9 + @result = ModuleResultFixtures.module_result
10 end 10 end
11 11
12 should 'create module result from hash' do 12 should 'create module result from hash' do
@@ -14,7 +14,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase @@ -14,7 +14,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
14 end 14 end
15 15
16 should 'convert module result to hash' do 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 end 18 end
19 19
20 -end  
21 \ No newline at end of file 20 \ No newline at end of file
  21 +end
plugins/mezuro/test/unit/kalibro/module_result_test.rb 0 → 100644
@@ -0,0 +1,28 @@ @@ -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