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 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 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 12 end
26 13  
27 14 def module=(value)
28 15 @module = Kalibro::Module.to_object value
29 16 end
30 17  
31   - def date=(value)
32   - @date = value.is_a?(String) ? DateTime.parse(value) : value
33   - end
34   -
35 18 def grade=(value)
36 19 @grade = value.to_f
37 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 22 end
... ...
plugins/mezuro/test/fixtures/module_result_fixtures.rb
1 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 3 class ModuleResultFixtures
6 4  
... ... @@ -10,17 +8,17 @@ class ModuleResultFixtures
10 8  
11 9 def self.module_result_hash
12 10 {
  11 + :id => 42,
13 12 :module => ModuleFixtures.module_hash,
14   - :date => '2011-10-20T18:26:43.151+00:00',
15 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 24 end
... ...
plugins/mezuro/test/unit/kalibro/module_result_test.rb
... ... @@ -9,7 +9,7 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
9 9 @module_result = ModuleResultFixtures.module_result
10 10 end
11 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 13 end
14 14  
15 15 should 'convert module result to hash' do
... ... @@ -17,22 +17,15 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
17 17 end
18 18  
19 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 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 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 29 end
37 30  
38 31 end
... ...
plugins/mezuro/test/unit/kalibro/module_test.rb
... ... @@ -12,7 +12,7 @@ class ModuleTest &lt; ActiveSupport::TestCase
12 12 should 'create module from hash' do
13 13 assert_equal @hash[:name], Kalibro::Module.new(@hash).name
14 14 end
15   -
  15 +
16 16 should 'convert module to hash' do
17 17 assert_equal @hash, @module.to_hash
18 18 end
... ...