Commit 94e8959f96fdbc651b82aba0c50cf788c323efcb
Committed by
João M. M. da Silva
1 parent
ce722ef3
Exists in
staging
and in
42 other branches
[Mezuro] Completed module result model, fixtures and tests.
Showing
4 changed files
with
24 additions
and
74 deletions
Show diff stats
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 < 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 < 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