Commit f933c56cec0d9320308a57855930069ccbe543cf
Committed by
Paulo Meireles
1 parent
7a825ff3
Exists in
master
and in
29 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 | 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 < 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 | ... | ... |
... | ... | @@ -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 | ... | ... |