Commit 8d632abacc029f050a973e0a67c4712c57fe8e3f

Authored by João M. M. da Silva + Diego Araújo
Committed by João M. M. da Silva
1 parent 782f5a15

[Mezuro] source_tree partials and parents method.

plugins/mezuro/lib/kalibro/module_result.rb
@@ -7,10 +7,21 @@ class Kalibro::ModuleResult < Kalibro::Model @@ -7,10 +7,21 @@ class Kalibro::ModuleResult < Kalibro::Model
7 end 7 end
8 8
9 def children 9 def children
10 - hash_array = self.class.request(:children_of, {:module_result_id => self.id})[:module_result].to_a  
11 - hash_array.map { |module_result| self.class.new module_result } 10 + response = self.class.request(:children_of, {:module_result_id => self.id})[:module_result]
  11 + response = [] if response.nil?
  12 + response = [response] if response.is_a?(Hash)
  13 + response.map {|module_result| Kalibro::ModuleResult.new module_result}
12 end 14 end
13 15
  16 + def parents
  17 + if parent_id.nil?
  18 + []
  19 + else
  20 + parent = self.class.find(parent_id)
  21 + parent.parents << parent
  22 + end
  23 + end
  24 +
14 def module=(value) 25 def module=(value)
15 @module = Kalibro::Module.to_object value 26 @module = Kalibro::Module.to_object value
16 end 27 end
plugins/mezuro/test/fixtures/metric_configuration_snapshot_fixtures.rb
@@ -18,7 +18,10 @@ class MetricConfigurationSnapshotFixtures @@ -18,7 +18,10 @@ class MetricConfigurationSnapshotFixtures
18 :attributes! => { 18 :attributes! => {
19 :metric => { 19 :metric => {
20 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', 20 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
21 - 'xsi:type' => 'kalibro:metricXml' } 21 + 'xsi:type' => 'kalibro:metricXml' },
  22 + :range => {
  23 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  24 + 'xsi:type' => 'kalibro:rangeSnapshotXml' }
22 } 25 }
23 } 26 }
24 end 27 end
@@ -38,7 +41,10 @@ class MetricConfigurationSnapshotFixtures @@ -38,7 +41,10 @@ class MetricConfigurationSnapshotFixtures
38 :attributes! => { 41 :attributes! => {
39 :metric => { 42 :metric => {
40 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', 43 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
41 - 'xsi:type' => 'kalibro:metricXml' } 44 + 'xsi:type' => 'kalibro:metricXml' },
  45 + :range => {
  46 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  47 + 'xsi:type' => 'kalibro:rangeSnapshotXml' }
42 } 48 }
43 } 49 }
44 end 50 end
plugins/mezuro/test/fixtures/module_result_fixtures.rb
@@ -23,4 +23,22 @@ class ModuleResultFixtures @@ -23,4 +23,22 @@ class ModuleResultFixtures
23 } 23 }
24 end 24 end
25 25
  26 + def self.parent_module_result_hash
  27 + {
  28 + :id => 31,
  29 + :module => {
  30 + :name => 'Qt-Calculator Parent',
  31 + :granularity => 'APPLICATION'
  32 + },
  33 + :grade => 10.0,
  34 + :attributes! =>
  35 + {
  36 + :module =>
  37 + {
  38 + "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
  39 + "xsi:type"=>"kalibro:moduleXml"
  40 + }
  41 + }
  42 + }
  43 + end
26 end 44 end
plugins/mezuro/test/unit/kalibro/metric_result_test.rb
@@ -33,7 +33,7 @@ class MetricResultTest &lt; ActiveSupport::TestCase @@ -33,7 +33,7 @@ class MetricResultTest &lt; ActiveSupport::TestCase
33 33
34 should 'return history of a metric with a module result id' do 34 should 'return history of a metric with a module result id' do
35 module_result_id = 31 35 module_result_id = 31
36 - Kalibro::MetricResult.expects(:request).with(:history_of, {:metric_name => @result.configuration.metric.name, :module_result_id => module_result_id}).returns({:date_metric_result => [DateMetricResultFixtures.date_metric_result_hash]}) 36 + Kalibro::MetricResult.expects(:request).with(:history_of, {:metric_name => @result.configuration.metric.name, :module_result_id => module_result_id}).returns({:date_metric_result => DateMetricResultFixtures.date_metric_result_hash})
37 assert_equal DateMetricResultFixtures.date_metric_result_hash[:metric_result][:id], Kalibro::MetricResult.history_of(@result.configuration.metric.name, module_result_id).first.metric_result.id 37 assert_equal DateMetricResultFixtures.date_metric_result_hash[:metric_result][:id], Kalibro::MetricResult.history_of(@result.configuration.metric.name, module_result_id).first.metric_result.id
38 end 38 end
39 39
plugins/mezuro/test/unit/kalibro/module_result_test.rb
1 require "test_helper" 1 require "test_helper"
2 2
3 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures" 3 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/date_module_result_fixtures"
4 5
5 class ModuleResultTest < ActiveSupport::TestCase 6 class ModuleResultTest < ActiveSupport::TestCase
6 7
@@ -29,6 +30,15 @@ class ModuleResultTest &lt; ActiveSupport::TestCase @@ -29,6 +30,15 @@ class ModuleResultTest &lt; ActiveSupport::TestCase
29 assert @hash[:id], @module_result.children.first.id 30 assert @hash[:id], @module_result.children.first.id
30 end 31 end
31 32
  33 + should 'return parents of a module result' do
  34 + parent_module_result = ModuleResultFixtures.parent_module_result_hash
  35 + response = {:module_result => parent_module_result}
  36 + Kalibro::ModuleResult.expects(:request).with(:get_module_result, {:module_result_id => @module_result.parent_id}).returns(response)
  37 + parents = @module_result.parents
  38 + assert parent_module_result[:module][:name], parents.first.module.name
  39 + assert parent_module_result[:module][:name], parents.last.module.name
  40 + end
  41 +
32 should 'return history of a module result' do 42 should 'return history of a module result' do
33 Kalibro::ModuleResult.expects(:request).with(:history_of_module, {:module_result_id => @module_result.id}).returns({:date_module_result => [DateModuleResultFixtures.date_module_result_hash]}) 43 Kalibro::ModuleResult.expects(:request).with(:history_of_module, {:module_result_id => @module_result.id}).returns({:date_module_result => [DateModuleResultFixtures.date_module_result_hash]})
34 assert_equal DateModuleResultFixtures.date_module_result_hash[:module_result][:id], Kalibro::ModuleResult.history_of(@module_result.id).first.module_result.id 44 assert_equal DateModuleResultFixtures.date_module_result_hash[:module_result][:id], Kalibro::ModuleResult.history_of(@module_result.id).first.module_result.id
plugins/mezuro/views/mezuro_plugin_module_result/_module_result.rhtml
1 -<% TODO source tree %> 1 +<% render :partial => "source_tree", :locals => {:module_result => @module_result} %>
2 <h5><%= _('Metric results for: #{@module_result.module.name} (#{@module_result.module.granularity}) ') %> </h5> 2 <h5><%= _('Metric results for: #{@module_result.module.name} (#{@module_result.module.granularity}) ') %> </h5>
3 3
4 <hr/> 4 <hr/>
plugins/mezuro/views/mezuro_plugin_module_result/_source_tree.rhtml
1 <h4><%= _('Source tree') %></h4> 1 <h4><%= _('Source tree') %></h4>
2 -<% module_name = @source_tree.module.name %>  
3 -<% module_label = "#{module_name} (#{@source_tree.module.granularity})" %> 2 +<% module_name = @module_result.module.name %>
  3 +<% module_label = "#{module_name} (#{@module_result.module.granularity})" %>
4 4
5 -<p><h2 class="path">  
6 - <% if module_name != @project_name %>  
7 - <a href="#" class="source-tree-link" data-module-name="<%= @project_name %>">  
8 - <%= @project_name %>  
9 - </a>  
10 - <% end %>  
11 -  
12 -  
13 - <% split_link = @source_tree.module.ancestor_names %>  
14 - <% split_link.each do |link| %>  
15 - /<a href="#" class="source-tree-link" data-module-name="<%= link %>">  
16 - <%= link.split(".").last %>  
17 - </a>  
18 - <% end %>  
19 -</h2></p> 5 +<p>
  6 + <h2 class="path">
  7 + <% parents = @module_result.parents %>
  8 + <% parents.each do |parent| %>
  9 + /<a href="#" class="source-tree-link" data-module-id="<%= parent.id %>">
  10 + <%= parent.module.name %>
  11 + </a>
  12 + <% end %>
  13 + </h2>
  14 +</p>
20 15
21 -<% if @source_tree.children %>  
22 - <table border="0" class="source-tree">  
23 - <% @source_tree.children.each do |child| %>  
24 - <% if child.module.granularity=='PACKAGE' %>  
25 - <tr>  
26 - <td class="icon"><%= image_tag('/plugins/mezuro/images/folder.png')%></td>  
27 - <td class="source-tree-text"><a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>"><%= child.module.name %></a></td>  
28 - </tr>  
29 - <% else %>  
30 - <tr>  
31 - <td class="icon"><%= image_tag('/plugins/mezuro/images/file.png') %></td>  
32 - <td class="source-tree-text">  
33 - <a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>">  
34 - <%= child.module.name %>  
35 - </a>  
36 - </td>  
37 - </tr>  
38 - <% end %>  
39 - <% end %>  
40 - </table>  
41 -<% end %> 16 +<table border="0" class="source-tree">
  17 + <% @module_result.children.each do |child| %>
  18 + <% if child.module.granularity=='PACKAGE' %>
  19 + <tr>
  20 + <td class="icon"><%= image_tag('/plugins/mezuro/images/folder.png')%></td>
  21 + <td class="source-tree-text"><a href='#' class="source-tree-link" data-module-id="<%= child.id %>"><%= child.module.name %></a></td>
  22 + </tr>
  23 + <% else %>
  24 + <tr>
  25 + <td class="icon"><%= image_tag('/plugins/mezuro/images/file.png') %></td>
  26 + <td class="source-tree-text">
  27 + <a href='#' class="source-tree-link" data-module-id="<%= child.id %>">
  28 + <%= child.module.name %>
  29 + </a>
  30 + </td>
  31 + </tr>
  32 + <% end %>
  33 + <% end %>
  34 +</table>
plugins/mezuro/views/mezuro_plugin_repository/show.html.erb
@@ -42,5 +42,4 @@ @@ -42,5 +42,4 @@
42 42
43 <div id="processing" data-profile="<%= @data_profile %>" data-content="<%= @data_content %>" 43 <div id="processing" data-profile="<%= @data_profile %>" data-content="<%= @data_content %>"
44 data-repository-id="<%= @repository.id %>"></div> 44 data-repository-id="<%= @repository.id %>"></div>
45 -<div id="project-tree"></div>  
46 <div id="module-result"></div> 45 <div id="module-result"></div>