Commit 8bfb7c93f459481cdf602aef4286c9ab4cf9976c

Authored by João M. M. da Silva + Paulo Meirelles
Committed by João M. M. da Silva
1 parent 4b852f68

[Mezuro] Completed module result model, fixtures and tests.

plugins/mezuro/lib/kalibro/module_result.rb
1 class Kalibro::ModuleResult < Kalibro::Model 1 class Kalibro::ModuleResult < Kalibro::Model
2 2
3 - attr_accessor :module, :date, :grade, :metric_result, :compound_metric_with_error 3 + attr_accessor :id, :module, :grade, :parent_id
4 4
5 - def self.find_by_project_name_and_module_name_and_date(project_name, module_name, date)  
6 - new request(  
7 - 'ModuleResult',  
8 - :get_module_result,  
9 - {  
10 - :project_name => project_name,  
11 - :module_name => module_name,  
12 - :date => date_with_milliseconds(date)  
13 - })[:module_result] 5 + def self.find(id)
  6 + new request('ModuleResult', :get_module_result, { :module_result_id => id })[:module_result]
14 end 7 end
15 -  
16 - def self.all_by_project_name_and_module_name(project_name, module_name)  
17 - response = request(  
18 - 'ModuleResult',  
19 - :get_result_history,  
20 - {  
21 - :project_name => project_name,  
22 - :module_name => module_name  
23 - })[:module_result]  
24 - Kalibro::ModuleResult.to_objects_array(response) 8 +
  9 + def children
  10 + hash_array = self.class.request('ModuleResult',:children_of, {:module_result_id => self.id})[:module_result].to_a
  11 + hash_array.map { |module_result| self.class.new module_result }
25 end 12 end
26 13
27 def module=(value) 14 def module=(value)
28 @module = Kalibro::Module.to_object value 15 @module = Kalibro::Module.to_object value
29 end 16 end
30 17
31 - def date=(value)  
32 - @date = value.is_a?(String) ? DateTime.parse(value) : value  
33 - end  
34 -  
35 def grade=(value) 18 def grade=(value)
36 @grade = value.to_f 19 @grade = value.to_f
37 end 20 end
38 21
39 - def metric_result=(value)  
40 - @metric_result = Kalibro::MetricResult.to_objects_array value  
41 - end  
42 -  
43 - def metric_results  
44 - @metric_result  
45 - end  
46 -  
47 - def metric_results=(metric_results)  
48 - @metric_result = metric_results  
49 - end  
50 -  
51 - def compound_metric_with_error=(value)  
52 - @compound_metric_with_error = Kalibro::CompoundMetricWithError.to_objects_array value  
53 - end  
54 -  
55 - def compound_metrics_with_error  
56 - @compound_metric_with_error  
57 - end  
58 -  
59 - def compound_metrics_with_error=(compound_metrics_with_error)  
60 - @compound_metric_with_error = compound_metrics_with_error  
61 - end  
62 -  
63 end 22 end
plugins/mezuro/test/fixtures/module_result_fixtures.rb
1 require File.dirname(__FILE__) + '/module_fixtures' 1 require File.dirname(__FILE__) + '/module_fixtures'
2 -require File.dirname(__FILE__) + '/metric_result_fixtures'  
3 -require File.dirname(__FILE__) + '/compound_metric_with_error_fixtures'  
4 2
5 class ModuleResultFixtures 3 class ModuleResultFixtures
6 4
@@ -10,17 +8,17 @@ class ModuleResultFixtures @@ -10,17 +8,17 @@ class ModuleResultFixtures
10 8
11 def self.module_result_hash 9 def self.module_result_hash
12 { 10 {
  11 + :id => 42,
13 :module => ModuleFixtures.module_hash, 12 :module => ModuleFixtures.module_hash,
14 - :date => '2011-10-20T18:26:43.151+00:00',  
15 :grade => 10.0, 13 :grade => 10.0,
16 - :metric_result => [  
17 - MetricResultFixtures.native_metric_result_hash,  
18 - MetricResultFixtures.compound_metric_result_hash],  
19 - :compound_metric_with_error => [CompoundMetricWithErrorFixtures.compound_metric_with_error_hash],  
20 - :attributes! => {  
21 - :module => {  
22 - 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',  
23 - 'xsi:type' => 'kalibro:moduleXml' } 14 + :parent_id => 31,
  15 + :attributes! =>
  16 + {
  17 + :module =>
  18 + {
  19 + "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
  20 + "xsi:type"=>"kalibro:moduleXml"
  21 + }
24 } 22 }
25 } 23 }
26 end 24 end
plugins/mezuro/test/unit/kalibro/module_result_test.rb
@@ -9,7 +9,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase @@ -9,7 +9,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
9 @module_result = ModuleResultFixtures.module_result 9 @module_result = ModuleResultFixtures.module_result
10 end 10 end
11 should 'create module result' do 11 should 'create module result' do
12 - assert_equal @module_result.date.to_s , Kalibro::ModuleResult.new(@hash).date.to_s 12 + assert_equal @hash[:id] , Kalibro::ModuleResult.new(@hash).id
13 end 13 end
14 14
15 should 'convert module result to hash' do 15 should 'convert module result to hash' do
@@ -17,22 +17,15 @@ class ModuleResultTest &lt; ActiveSupport::TestCase @@ -17,22 +17,15 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
17 end 17 end
18 18
19 should 'find module result' do 19 should 'find module result' do
20 - date = DateTime.parse(@module_result.date.to_s)  
21 - name = @module_result.module.name  
22 - request_body = {:project_name => name, :module_name => name, :date => '2011-10-20T18:26:43.0+00:00'}  
23 response = {:module_result => @hash} 20 response = {:module_result => @hash}
24 - Kalibro::ModuleResult.expects(:request).with('ModuleResult',:get_module_result, request_body).returns(response)  
25 - assert_equal @module_result.grade, Kalibro::ModuleResult.find_by_project_name_and_module_name_and_date(name, name, date).grade 21 + Kalibro::ModuleResult.expects(:request).with('ModuleResult',:get_module_result, {:module_result_id => @module_result.id}).returns(response)
  22 + assert_equal @module_result.grade, Kalibro::ModuleResult.find(@module_result.id).grade
26 end 23 end
27 24
28 - should 'find all module results' do  
29 - name = @module_result.module.name  
30 - request_body = {:project_name => name, :module_name => name}  
31 - response = {:module_result => @hash}  
32 - Kalibro::ModuleResult.expects(:request).with('ModuleResult',:get_result_history, request_body).returns(response)  
33 - response_array = Kalibro::ModuleResult.all_by_project_name_and_module_name(name, name)  
34 - assert_equal [@module_result].class, response_array.class  
35 - assert_equal @module_result.grade, response_array[0].grade 25 + should 'return children of a module result' do
  26 + response = {:module_result => [@hash]}
  27 + Kalibro::ModuleResult.expects(:request).with('ModuleResult',:children_of, {:module_result_id => @module_result.id}).returns(response)
  28 + assert @hash[:id], @module_result.children.first.id
36 end 29 end
37 30
38 end 31 end
plugins/mezuro/test/unit/kalibro/module_test.rb
@@ -12,7 +12,7 @@ class ModuleTest &lt; ActiveSupport::TestCase @@ -12,7 +12,7 @@ class ModuleTest &lt; ActiveSupport::TestCase
12 should 'create module from hash' do 12 should 'create module from hash' do
13 assert_equal @hash[:name], Kalibro::Module.new(@hash).name 13 assert_equal @hash[:name], Kalibro::Module.new(@hash).name
14 end 14 end
15 - 15 +
16 should 'convert module to hash' do 16 should 'convert module to hash' do
17 assert_equal @hash, @module.to_hash 17 assert_equal @hash, @module.to_hash
18 end 18 end