Commit 386858c6e5c2a0428d813ad373e296b6517c46cc

Authored by João M. M. da Silva + Diego Araújo
Committed by Paulo Meireles
1 parent 6d8f5022

[Mezuro] Tests for metric configuration controller.

plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb
@@ -27,8 +27,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @@ -27,8 +27,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
27 27
28 def edit_native 28 def edit_native
29 @configuration_content = profile.articles.find(params[:id]) 29 @configuration_content = profile.articles.find(params[:id])
30 - configuration_id = @configuration_content.configuration_id  
31 - metric_configurations = Kalibro::MetricConfiguration.metric_configurations_of(configuration_id) 30 + metric_configurations = @configuration_content.metric_configurations
32 @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i) 31 @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i)
33 @metric = @metric_configuration.metric 32 @metric = @metric_configuration.metric
34 @reading_group_names_and_ids = reading_group_names_and_ids 33 @reading_group_names_and_ids = reading_group_names_and_ids
@@ -37,8 +36,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @@ -37,8 +36,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
37 36
38 def update 37 def update
39 @configuration_content = profile.articles.find(params[:id]) 38 @configuration_content = profile.articles.find(params[:id])
40 - configuration_id = @configuration_content.configuration_id  
41 - metric_configurations = Kalibro::MetricConfiguration.metric_configurations_of(configuration_id) 39 + metric_configurations = @configuration_content.metric_configurations
42 metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration][:id].to_i) 40 metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration][:id].to_i)
43 metric_configuration.update_attributes params[:metric_configuration] 41 metric_configuration.update_attributes params[:metric_configuration]
44 if metric_configuration_has_errors? metric_configuration 42 if metric_configuration_has_errors? metric_configuration
@@ -51,8 +49,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @@ -51,8 +49,7 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
51 def remove 49 def remove
52 configuration_content = profile.articles.find(params[:id]) 50 configuration_content = profile.articles.find(params[:id])
53 configuration_id = configuration_content.configuration_id 51 configuration_id = configuration_content.configuration_id
54 - metric_configurations = Kalibro::MetricConfiguration.metric_configurations_of(configuration_id)  
55 - metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i) 52 + metric_configuration = Kalibro::MetricConfiguration.new({:id => params[:metric_configuration_id].to_i})
56 metric_configuration.destroy 53 metric_configuration.destroy
57 if metric_configuration_has_errors? metric_configuration 54 if metric_configuration_has_errors? metric_configuration
58 redirect_to_error_page metric_configuration.errors[0].message 55 redirect_to_error_page metric_configuration.errors[0].message
@@ -64,15 +61,14 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @@ -64,15 +61,14 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
64 def new_compound 61 def new_compound
65 @configuration_content = profile.articles.find(params[:id]) 62 @configuration_content = profile.articles.find(params[:id])
66 @metric_configurations = @configuration_content.metric_configurations 63 @metric_configurations = @configuration_content.metric_configurations
67 - @reading_group_names_and_ids = reading_group_names_and_ids 64 + @reading_group_names_and_ids = reading_group_names_and_ids
68 if configuration_content_has_errors? 65 if configuration_content_has_errors?
69 redirect_to_error_page @configuration_content.errors[:base] 66 redirect_to_error_page @configuration_content.errors[:base]
70 end 67 end
71 end 68 end
72 69
73 def create_compound 70 def create_compound
74 - metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])  
75 - metric_configuration.save 71 + metric_configuration = Kalibro::MetricConfiguration.create(params[:metric_configuration])
76 72
77 if metric_configuration_has_errors? metric_configuration 73 if metric_configuration_has_errors? metric_configuration
78 redirect_to_error_page metric_configuration.errors[0].message 74 redirect_to_error_page metric_configuration.errors[0].message
@@ -84,12 +80,11 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle @@ -84,12 +80,11 @@ class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileControlle
84 80
85 def edit_compound 81 def edit_compound
86 @configuration_content = profile.articles.find(params[:id]) 82 @configuration_content = profile.articles.find(params[:id])
87 - configuration_id = @configuration_content.configuration_id  
88 - metric_configurations = Kalibro::MetricConfiguration.metric_configurations_of(configuration_id)  
89 - @metric_configuration = find_metric_configuration(metric_configurations, params[:metric_configuration_id].to_i) 83 + @metric_configurations = @configuration_content.metric_configurations
  84 + @metric_configuration = find_metric_configuration(@metric_configurations, params[:metric_configuration_id].to_i)
90 @metric = @metric_configuration.metric 85 @metric = @metric_configuration.metric
91 @reading_group_names_and_ids = reading_group_names_and_ids 86 @reading_group_names_and_ids = reading_group_names_and_ids
92 - @metric_configurations = metric_configurations 87 + @ranges = Kalibro::Range.ranges_of(@metric_configuration.id)
93 end 88 end
94 89
95 private 90 private
plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb
@@ -25,31 +25,23 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase @@ -25,31 +25,23 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
25 @configuration_content.expects(:validate_configuration_name).returns(true) 25 @configuration_content.expects(:validate_configuration_name).returns(true)
26 @configuration_content.stubs(:solr_save) 26 @configuration_content.stubs(:solr_save)
27 @configuration_content.save 27 @configuration_content.save
28 - 28 +
29 @base_tool = BaseToolFixtures.base_tool 29 @base_tool = BaseToolFixtures.base_tool
30 @base_tool_hash = BaseToolFixtures.base_tool_hash 30 @base_tool_hash = BaseToolFixtures.base_tool_hash
31 - 31 +
32 @metric = MetricFixtures.amloc 32 @metric = MetricFixtures.amloc
33 33
34 @reading_group = ReadingGroupFixtures.reading_group 34 @reading_group = ReadingGroupFixtures.reading_group
35 @range = RangeFixtures.range 35 @range = RangeFixtures.range
36 @reading = ReadingFixtures.reading 36 @reading = ReadingFixtures.reading
37 37
38 - @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration  
39 - @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash 38 + @native_metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
  39 + @native_metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
40 @created_metric_configuration = MetricConfigurationFixtures.created_metric_configuration 40 @created_metric_configuration = MetricConfigurationFixtures.created_metric_configuration
41 @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration 41 @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration
42 -=begin  
43 @compound_metric_configuration_hash = MetricConfigurationFixtures.sc_metric_configuration_hash 42 @compound_metric_configuration_hash = MetricConfigurationFixtures.sc_metric_configuration_hash
44 -  
45 -  
46 - @native_hash = @metric_configuration.to_hash.merge({:configuration_name => @metric_configuration.configuration_name})  
47 - @native_hash.delete :attributes!  
48 - @compound_hash.delete :attributes!  
49 - @compound_hash = @compound_metric_configuration.to_hash.merge({:configuration_name => @compound_metric_configuration.configuration_name})  
50 -=end  
51 end 43 end
52 - 44 +
53 should 'choose metric' do 45 should 'choose metric' do
54 Kalibro::BaseTool.expects(:all).returns([@base_tool]) 46 Kalibro::BaseTool.expects(:all).returns([@base_tool])
55 get :choose_metric, :profile => @profile.identifier, :id => @configuration_content.id 47 get :choose_metric, :profile => @profile.identifier, :id => @configuration_content.id
@@ -68,27 +60,27 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase @@ -68,27 +60,27 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
68 assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids) 60 assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
69 assert_response :success 61 assert_response :success
70 end 62 end
71 - 63 +
72 should 'create native' do 64 should 'create native' do
73 - Kalibro::MetricConfiguration.expects(:create).returns(@created_metric_configuration) #FIXME need .with(some_hash), should it mock the request?.  
74 - get :create_native, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @metric_configuration_hash 65 + Kalibro::MetricConfiguration.expects(:create).returns(@native_metric_configuration) #FIXME need .with(some_hash), should it mock the request?.
  66 + get :create_native, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @native_metric_configuration_hash
75 assert_response :redirect 67 assert_response :redirect
76 end 68 end
77 - 69 +
78 should 'edit native' do 70 should 'edit native' do
79 - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@metric_configuration]) 71 + Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@native_metric_configuration])
80 Kalibro::ReadingGroup.expects(:all).returns([@reading_group]) 72 Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
81 - Kalibro::Range.expects(:ranges_of).with(@metric_configuration.id).returns([@range]) 73 + Kalibro::Range.expects(:ranges_of).with(@native_metric_configuration.id).returns([@range])
82 Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading) 74 Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading)
83 - get :edit_native, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id 75 + get :edit_native, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @native_metric_configuration.id
84 assert_equal @configuration_content, assigns(:configuration_content) 76 assert_equal @configuration_content, assigns(:configuration_content)
85 - assert_equal @metric_configuration.code, assigns(:metric_configuration).code  
86 - assert_equal @metric_configuration.metric.name, assigns(:metric).name 77 + assert_equal @native_metric_configuration.code, assigns(:metric_configuration).code
  78 + assert_equal @native_metric_configuration.metric.name, assigns(:metric).name
87 assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids) 79 assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
88 assert_equal [@range], assigns(:ranges) 80 assert_equal [@range], assigns(:ranges)
89 assert_response :success 81 assert_response :success
90 end 82 end
91 - 83 +
92 should 'initialize compound' do 84 should 'initialize compound' do
93 Kalibro::ReadingGroup.expects(:all).returns([@reading_group]) 85 Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
94 Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration_content.configuration_id).returns([@compound_metric_configuration]) 86 Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration_content.configuration_id).returns([@compound_metric_configuration])
@@ -100,55 +92,39 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase @@ -100,55 +92,39 @@ class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
100 end 92 end
101 93
102 should 'create compound' do 94 should 'create compound' do
103 -=begin TODO ARRUMAR ESTE TESTE!!!  
104 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
105 - :metric_configuration => @compound_metric_configuration.to_hash,  
106 - :configuration_name => @compound_metric_configuration.configuration_name})  
107 - get :create_compound_metric_configuration, :profile => @profile.identifier, :id => @configuration_content.id,  
108 - :metric_configuration => @compound_hash  
109 - assert_response 302  
110 -=end 95 + Kalibro::MetricConfiguration.expects(:create).returns(@compound_metric_configuration) #FIXME need .with(some_hash), should it mock the request?.
  96 + get :create_compound, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @compound_metric_configuration_hash
  97 + assert_response :redirect
111 end 98 end
112 99
113 should 'edit compound' do 100 should 'edit compound' do
114 -=begin TODO ARRUMAR ESTE TESTE!!!  
115 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
116 - :configuration_name => @configuration_content.name,  
117 - :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})  
118 - Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @configuration_content.name}).returns({:configuration => @configuration_hash})  
119 - get :edit_compound_metric_configuration,  
120 - :profile => @profile.identifier,  
121 - :id => @configuration_content.id,  
122 - :metric_name => @compound_metric_configuration.metric.name 101 + Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@compound_metric_configuration])
  102 + Kalibro::ReadingGroup.expects(:all).returns([@reading_group])
  103 + Kalibro::Range.expects(:ranges_of).with(@compound_metric_configuration.id).returns([@range])
  104 + Kalibro::Reading.expects(:find).with(@range.reading_id).returns(@reading)
  105 + get :edit_compound, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @compound_metric_configuration.id
123 assert_equal @configuration_content, assigns(:configuration_content) 106 assert_equal @configuration_content, assigns(:configuration_content)
124 assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code 107 assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code
125 assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name 108 assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name
126 - assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code  
127 - assert_response 200  
128 -=end 109 + assert_equal [@compound_metric_configuration], assigns(:metric_configurations)
  110 + assert_equal [[@reading_group.name,@reading_group.id]], assigns(:reading_group_names_and_ids)
  111 + assert_equal [@range], assigns(:ranges)
  112 + assert_response :success
129 end 113 end
130 - 114 +
131 should 'update' do 115 should 'update' do
132 -=begin TODO ARRUMAR ESTE TESTE!!!  
133 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
134 - :configuration_name => @configuration_content.name,  
135 - :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
136 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
137 - :metric_configuration => @metric_configuration.to_hash,  
138 - :configuration_name => @metric_configuration.configuration_name})  
139 - get :update_metric_configuration, :profile => @profile.identifier, :id => @configuration_content.id,  
140 - :metric_configuration => @native_hash 116 + Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration_content.configuration_id).returns([@native_metric_configuration])
  117 + @native_metric_configuration.expects(:update_attributes).returns(true) #FIXME need .with(some_hash), should it mock the request?.
  118 + get :update, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration => @native_metric_configuration_hash
141 assert_equal @configuration_content, assigns(:configuration_content) 119 assert_equal @configuration_content, assigns(:configuration_content)
142 assert_response 302 120 assert_response 302
143 -=end  
144 end 121 end
145 - 122 +
146 should 'remove' do 123 should 'remove' do
147 - Kalibro::MetricConfiguration.expects(:metric_configurations_of).with(@configuration.id).returns([@metric_configuration])  
148 - @metric_configuration.expects(:destroy).returns()  
149 - get :remove, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @metric_configuration.id 124 + Kalibro::MetricConfiguration.expects(:new).with({:id => @native_metric_configuration.id}).returns(@native_metric_configuration)
  125 + @native_metric_configuration.expects(:destroy).returns()
  126 + get :remove, :profile => @profile.identifier, :id => @configuration_content.id, :metric_configuration_id => @native_metric_configuration.id
150 assert_response 302 127 assert_response 302
151 end 128 end
152 129
153 -  
154 end 130 end
plugins/mezuro/views/mezuro_plugin_metric_configuration/_native_metric_configuration_form.rhtml
1 <% form_for :metric_configuration, :url => {:action =>"update", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %> 1 <% form_for :metric_configuration, :url => {:action =>"update", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
2 <%= hidden_field_tag :id, @configuration_content.id %> 2 <%= hidden_field_tag :id, @configuration_content.id %>
3 <%= f.hidden_field :configuration_id, :value => @configuration_content.configuration_id %> 3 <%= f.hidden_field :configuration_id, :value => @configuration_content.configuration_id %>
4 - <%= f.hidden_field :id, :value => @metric_configuration.id %> 4 + <%= f.hidden_field :id %>
5 5
6 - <%= labelled_form_field _('Collector Name:'), f.text_field(:base_tool_name, :value => @base_tool_name, :readonly => true) %> 6 + <%= labelled_form_field _('Collector Name:'), f.text_field(:base_tool_name, :readonly => true) %>
7 7
8 <% f.fields_for :metric do |m| %> 8 <% f.fields_for :metric do |m| %>
9 <%= m.hidden_field :compound, :value => "false" %> 9 <%= m.hidden_field :compound, :value => "false" %>
@@ -18,13 +18,12 @@ @@ -18,13 +18,12 @@
18 <%= required labelled_form_field _('Code:'), f.text_field(:code) %> 18 <%= required labelled_form_field _('Code:'), f.text_field(:code) %>
19 19
20 <%= required labelled_form_field _('Aggregation Form:'), 20 <%= required labelled_form_field _('Aggregation Form:'),
21 - f.select(:aggregation_form, MezuroPlugin::Helpers::ContentViewerHelper.aggregation_options,  
22 - :selected => @metric_configuration.aggregation_form ) %> 21 + f.select(:aggregation_form, MezuroPlugin::Helpers::ContentViewerHelper.aggregation_options) %>
23 22
24 <%= required labelled_form_field _('Weight:'), f.text_field(:weight) %> 23 <%= required labelled_form_field _('Weight:'), f.text_field(:weight) %>
25 24
26 <%= required labelled_form_field _('Reading Group:'), 25 <%= required labelled_form_field _('Reading Group:'),
27 - f.select(:reading_group_id, @reading_group_names_and_ids, :selected => @metric_configuration.reading_group_id.to_i) %> 26 + f.select(:reading_group_id, @reading_group_names_and_ids) %>
28 27
29 <p> 28 <p>
30 <%= f.submit "Save" %> 29 <%= f.submit "Save" %>
plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_compound.html.erb
@@ -4,10 +4,12 @@ @@ -4,10 +4,12 @@
4 4
5 <h2><%= @configuration_content.name %> Configuration</h2> 5 <h2><%= @configuration_content.name %> Configuration</h2>
6 6
  7 +<% owner = (not user.nil?) && user.id == @profile.id %>
  8 +
7 <% form_for :metric_configuration, :url => {:action =>"update", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %> 9 <% form_for :metric_configuration, :url => {:action =>"update", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
8 <%= hidden_field_tag :id, @configuration_content.id %> 10 <%= hidden_field_tag :id, @configuration_content.id %>
9 <%= f.hidden_field :configuration_id, :value => @configuration_content.configuration_id %> 11 <%= f.hidden_field :configuration_id, :value => @configuration_content.configuration_id %>
10 - <%= f.hidden_field :id, :value => @metric_configuration.id %> 12 + <%= f.hidden_field :id %>
11 13
12 <% f.fields_for :metric do |m| %> 14 <% f.fields_for :metric do |m| %>
13 <%= m.hidden_field :compound, :value => "true" %> 15 <%= m.hidden_field :compound, :value => "true" %>
@@ -18,13 +20,11 @@ @@ -18,13 +20,11 @@
18 m.select(:scope, MezuroPlugin::Helpers::ContentViewerHelper.scope_options, :selected => @metric.scope) %> 20 m.select(:scope, MezuroPlugin::Helpers::ContentViewerHelper.scope_options, :selected => @metric.scope) %>
19 <% end %> 21 <% end %>
20 22
21 - <%= required labelled_form_field _('Code:'), f.text_field(:code), :value => @metric_configuration.code %> 23 + <%= required labelled_form_field _('Code:'), f.text_field(:code) %>
22 <%= required labelled_form_field _('Aggregation Form:'), 24 <%= required labelled_form_field _('Aggregation Form:'),
23 - f.select(:aggregation_form, MezuroPlugin::Helpers::ContentViewerHelper.aggregation_options,  
24 - :selected => @metric_configuration.aggregation_form ) %>  
25 - <%= required labelled_form_field _('Weight:'), f.text_field(:weight), :value => @metric_configuration.weight %>  
26 - <%= required labelled_form_field _('Reading Group:'), f.select(:reading_group_id, @reading_group_names_and_ids,  
27 - :selected => @metric_configuration.reading_group_id.to_i) %> 25 + f.select(:aggregation_form, MezuroPlugin::Helpers::ContentViewerHelper.aggregation_options) %>
  26 + <%= required labelled_form_field _('Weight:'), f.text_field(:weight) %>
  27 + <%= required labelled_form_field _('Reading Group:'), f.select(:reading_group_id, @reading_group_names_and_ids) %>
28 28
29 <p><%= f.submit "Save" %></p> 29 <p><%= f.submit "Save" %></p>
30 30