Commit f933c56cec0d9320308a57855930069ccbe543cf
Committed by
Paulo Meireles
1 parent
7a825ff3
Exists in
master
and in
28 other branches
[Mezuro] Refactoring module_result. Fixed fixtures, started tests and added new …
…methods to module_result.rb
Showing
4 changed files
with
66 additions
and
23 deletions
Show diff stats
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 < ActiveSupport::TestCase | @@ -14,7 +14,7 @@ class ModuleResultTest < 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 |
| @@ -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 |