Commit 5d2256980a40311dd3563882c68e8a28eac2a1ee
1 parent
473eb6cc
Exists in
colab
and in
4 other branches
Refactored new graphic methods
Covered with unit tests KalibroEntites updated to rc6 Signed-off By: Fellipe Souto <fllsouto@gmail.com> Signed-off By: Renan Fichberg <rfichberg@gmail.com>
Showing
6 changed files
with
50 additions
and
22 deletions
Show diff stats
Gemfile
| @@ -37,7 +37,7 @@ gem 'jbuilder', '~> 1.2' | @@ -37,7 +37,7 @@ gem 'jbuilder', '~> 1.2' | ||
| 37 | gem 'devise', '~> 3.2.0' | 37 | gem 'devise', '~> 3.2.0' |
| 38 | 38 | ||
| 39 | # Kalibro integration | 39 | # Kalibro integration |
| 40 | -gem 'kalibro_entities', "~> 0.0.1.rc5" | 40 | +gem 'kalibro_entities', "~> 0.0.1.rc6" |
| 41 | 41 | ||
| 42 | # PostgreSQL integration | 42 | # PostgreSQL integration |
| 43 | gem "pg", "~> 0.17.0" | 43 | gem "pg", "~> 0.17.0" |
Gemfile.lock
| @@ -103,8 +103,8 @@ GEM | @@ -103,8 +103,8 @@ GEM | ||
| 103 | railties (>= 3.0, < 5.0) | 103 | railties (>= 3.0, < 5.0) |
| 104 | thor (>= 0.14, < 2.0) | 104 | thor (>= 0.14, < 2.0) |
| 105 | json (1.8.1) | 105 | json (1.8.1) |
| 106 | - kalibro_entities (0.0.1.rc5) | ||
| 107 | - activesupport (~> 4.0.0) | 106 | + kalibro_entities (0.0.1.rc6) |
| 107 | + activesupport (~> 4.0.1) | ||
| 108 | savon-ng-1.6 (~> 2.4.1) | 108 | savon-ng-1.6 (~> 2.4.1) |
| 109 | konacha (3.0.0) | 109 | konacha (3.0.0) |
| 110 | actionpack (>= 3.1, < 5) | 110 | actionpack (>= 3.1, < 5) |
| @@ -259,7 +259,7 @@ DEPENDENCIES | @@ -259,7 +259,7 @@ DEPENDENCIES | ||
| 259 | factory_girl_rails (~> 4.3.0) | 259 | factory_girl_rails (~> 4.3.0) |
| 260 | jbuilder (~> 1.2) | 260 | jbuilder (~> 1.2) |
| 261 | jquery-rails | 261 | jquery-rails |
| 262 | - kalibro_entities (~> 0.0.1.rc5) | 262 | + kalibro_entities (~> 0.0.1.rc6) |
| 263 | konacha (~> 3.0.0) | 263 | konacha (~> 3.0.0) |
| 264 | mocha | 264 | mocha |
| 265 | modernizr-rails | 265 | modernizr-rails |
app/models/module_result.rb
| @@ -5,24 +5,22 @@ class ModuleResult < KalibroEntities::Entities::ModuleResult | @@ -5,24 +5,22 @@ class ModuleResult < KalibroEntities::Entities::ModuleResult | ||
| 5 | KalibroEntities::Entities::MetricResult.metric_results_of(@id) | 5 | KalibroEntities::Entities::MetricResult.metric_results_of(@id) |
| 6 | end | 6 | end |
| 7 | 7 | ||
| 8 | - def history_of() | ||
| 9 | - KalibroEntities::Entities::ModuleResult.history_of(@id).map { |date_module_result| DateModuleResult.new date_module_result.to_hash } | 8 | + def history |
| 9 | + self.class.history_of(@id).map { |date_module_result| DateModuleResult.new date_module_result.to_hash } | ||
| 10 | end | 10 | end |
| 11 | 11 | ||
| 12 | - def history_of_grades_of(metric_name) | ||
| 13 | - history_of_grades = Hash.new | 12 | + def metric_history(name) |
| 13 | + grade_history = Hash.new | ||
| 14 | 14 | ||
| 15 | - date_module_result_list = history_of(@id) | ||
| 16 | - date_module_result_list.each do |date_module_result| | ||
| 17 | - date_module_result.module_result.metric_results.each do |metric_result| | ||
| 18 | - if metric_result.metric_configuration_snapshot.metric.name == metric_name then | ||
| 19 | - metric_grade = metric_result.metric_configuration_snapshot.grade | ||
| 20 | - break | ||
| 21 | - end | ||
| 22 | - end | ||
| 23 | - history_of_grades[date_module_result.date] = metric_grade | ||
| 24 | - end | ||
| 25 | - history_of_grades | 15 | + history.each { |date_module_result| grade_history[date_module_result.date] = |
| 16 | + find_grade_by_metric_name(date_module_result.module_result.metric_results, name) } | ||
| 17 | + | ||
| 18 | + grade_history | ||
| 26 | end | 19 | end |
| 27 | 20 | ||
| 21 | + private | ||
| 22 | + | ||
| 23 | + def find_grade_by_metric_name(metric_results, name) | ||
| 24 | + metric_results.each { |metric_result| return metric_result.value if metric_result.metric_configuration_snapshot.metric.name == name } | ||
| 25 | + end | ||
| 28 | end | 26 | end |
| 29 | \ No newline at end of file | 27 | \ No newline at end of file |
spec/factories/module_results.rb
| @@ -7,7 +7,7 @@ FactoryGirl.define do | @@ -7,7 +7,7 @@ FactoryGirl.define do | ||
| 7 | height "6" | 7 | height "6" |
| 8 | end | 8 | end |
| 9 | 9 | ||
| 10 | - factory :root_module_result, class: ModuleResult do | 10 | + factory :root_module_result, class: ModuleResult do |
| 11 | id "21" | 11 | id "21" |
| 12 | self.module { FactoryGirl.build(:module) } | 12 | self.module { FactoryGirl.build(:module) } |
| 13 | grade "6.0" | 13 | grade "6.0" |
spec/models/module_result_spec.rb
| @@ -2,14 +2,38 @@ require 'spec_helper' | @@ -2,14 +2,38 @@ require 'spec_helper' | ||
| 2 | 2 | ||
| 3 | describe ModuleResult do | 3 | describe ModuleResult do |
| 4 | describe 'methods' do | 4 | describe 'methods' do |
| 5 | + subject { FactoryGirl.build(:module_result) } | ||
| 6 | + | ||
| 5 | describe 'metric_results' do | 7 | describe 'metric_results' do |
| 6 | - subject { FactoryGirl.build(:module_result) } | ||
| 7 | - | ||
| 8 | it 'should call the metric_results_of method' do | 8 | it 'should call the metric_results_of method' do |
| 9 | KalibroEntities::Entities::MetricResult.expects(:metric_results_of).with(subject.id).returns(nil) | 9 | KalibroEntities::Entities::MetricResult.expects(:metric_results_of).with(subject.id).returns(nil) |
| 10 | 10 | ||
| 11 | subject.metric_results | 11 | subject.metric_results |
| 12 | end | 12 | end |
| 13 | end | 13 | end |
| 14 | + | ||
| 15 | + describe 'history' do | ||
| 16 | + before :each do | ||
| 17 | + ModuleResult.expects(:history_of).with(subject.id).returns([FactoryGirl.build(:date_module_result)]) | ||
| 18 | + end | ||
| 19 | + | ||
| 20 | + it 'should return a array of DateModuleResults' do | ||
| 21 | + subject.history.first.should be_a(DateModuleResult) | ||
| 22 | + end | ||
| 23 | + end | ||
| 24 | + | ||
| 25 | + describe 'metric_history' do | ||
| 26 | + let(:date_module_result) {FactoryGirl.build(:date_module_result)} | ||
| 27 | + let(:metric_result) {FactoryGirl.build(:metric_result)} | ||
| 28 | + | ||
| 29 | + before :each do | ||
| 30 | + subject.expects(:history).returns([date_module_result]) | ||
| 31 | + ModuleResult.any_instance.expects(:metric_results).returns([metric_result]) | ||
| 32 | + end | ||
| 33 | + | ||
| 34 | + it 'should return the history for the given metric name' do | ||
| 35 | + subject.metric_history(metric_result.metric_configuration_snapshot.metric.name).should eq({date_module_result.date => metric_result.value}) | ||
| 36 | + end | ||
| 37 | + end | ||
| 14 | end | 38 | end |
| 15 | end | 39 | end |
| 16 | \ No newline at end of file | 40 | \ No newline at end of file |