Commit 4c408ea484ac7498b6e8a2183d8c24d231a66ecb

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

[Mezuro] Refactored metric_configuration entity and client to metric_configuration model

plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
@@ -26,13 +26,13 @@ class MezuroPluginMyprofileController < ProfileController @@ -26,13 +26,13 @@ class MezuroPluginMyprofileController < ProfileController
26 26
27 def edit_metric_configuration 27 def edit_metric_configuration
28 @configuration_content = profile.articles.find(params[:id]) 28 @configuration_content = profile.articles.find(params[:id])
29 - @metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(@configuration_content.name, params[:metric_name]) 29 + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, params[:metric_name])
30 @metric = @metric_configuration.metric 30 @metric = @metric_configuration.metric
31 end 31 end
32 32
33 def edit_compound_metric_configuration 33 def edit_compound_metric_configuration
34 @configuration_content = profile.articles.find(params[:id]) 34 @configuration_content = profile.articles.find(params[:id])
35 - @metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(@configuration_content.name, params[:metric_name]) 35 + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, params[:metric_name])
36 @metric_configurations = @configuration_content.metric_configurations 36 @metric_configurations = @configuration_content.metric_configurations
37 @metric = @metric_configuration.metric 37 @metric = @metric_configuration.metric
38 end 38 end
@@ -51,13 +51,13 @@ class MezuroPluginMyprofileController < ProfileController @@ -51,13 +51,13 @@ class MezuroPluginMyprofileController < ProfileController
51 51
52 def update_metric_configuration 52 def update_metric_configuration
53 @configuration_content = profile.articles.find(params[:id]) 53 @configuration_content = profile.articles.find(params[:id])
54 - auxiliar_update_metric_configuration(Kalibro::Entities::MetricConfiguration::NATIVE_TYPE) 54 + auxiliar_update_metric_configuration(Kalibro::MetricConfiguration::NATIVE_TYPE)
55 redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" 55 redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
56 end 56 end
57 57
58 def update_compound_metric_configuration 58 def update_compound_metric_configuration
59 @configuration_content = profile.articles.find(params[:id]) 59 @configuration_content = profile.articles.find(params[:id])
60 - auxiliar_update_metric_configuration(Kalibro::Entities::MetricConfiguration::COMPOUND_TYPE) 60 + auxiliar_update_metric_configuration(Kalibro::MetricConfiguration::COMPOUND_TYPE)
61 redirect_to "/#{profile.identifier}/#{@configuration_content.slug}" 61 redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
62 end 62 end
63 63
@@ -71,41 +71,39 @@ class MezuroPluginMyprofileController < ProfileController @@ -71,41 +71,39 @@ class MezuroPluginMyprofileController < ProfileController
71 @metric_name = params[:metric_name] 71 @metric_name = params[:metric_name]
72 @beginning_id = params[:beginning_id] 72 @beginning_id = params[:beginning_id]
73 73
74 - metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(@configuration_content.name, @metric_name) 74 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, @metric_name)
75 @range = metric_configuration.ranges.find{ |range| range.beginning == @beginning_id.to_f } 75 @range = metric_configuration.ranges.find{ |range| range.beginning == @beginning_id.to_f }
76 end 76 end
77 77
78 def create_range 78 def create_range
79 @configuration_content = profile.articles.find(params[:id]) 79 @configuration_content = profile.articles.find(params[:id])
80 - @range = new_range_instance 80 + @range = Kalibro::Range.new params[:range]
81 metric_name = params[:metric_name] 81 metric_name = params[:metric_name]
82 beginning_id = params[:beginning_id] 82 beginning_id = params[:beginning_id]
83 -  
84 - metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(@configuration_content.name, metric_name) 83 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, metric_name)
85 metric_configuration.add_range(@range) 84 metric_configuration.add_range(@range)
86 - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_content.name) 85 + metric_configuration.save
87 end 86 end
88 87
89 def update_range 88 def update_range
90 configuration_content = profile.articles.find(params[:id]) 89 configuration_content = profile.articles.find(params[:id])
91 metric_name = params[:metric_name] 90 metric_name = params[:metric_name]
92 beginning_id = params[:beginning_id] 91 beginning_id = params[:beginning_id]
93 - metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(configuration_content.name, metric_name) 92 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name)
94 index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f } 93 index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f }
95 - metric_configuration.ranges[index] = new_range_instance  
96 - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_content.name) 94 + metric_configuration.ranges[index] = Kalibro::Range.new params[:range]
  95 + metric_configuration.save
97 end 96 end
98 97
99 def remove_range 98 def remove_range
100 configuration_content = profile.articles.find(params[:id]) 99 configuration_content = profile.articles.find(params[:id])
101 metric_name = params[:metric_name] 100 metric_name = params[:metric_name]
102 beginning_id = params[:range_beginning] 101 beginning_id = params[:range_beginning]
103 -  
104 - metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(configuration_content.name, metric_name) 102 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name)
105 metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f }.inspect 103 metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f }.inspect
106 - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name) 104 + metric_configuration.save
107 formatted_metric_name = metric_name.gsub(/\s/, '+') 105 formatted_metric_name = metric_name.gsub(/\s/, '+')
108 - if metric_configuration.metric.class == Kalibro::Entities::CompoundMetric 106 + if metric_configuration.metric.class == Kalibro::CompoundMetric
109 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" 107 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
110 else 108 else
111 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}" 109 redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
@@ -115,25 +113,26 @@ class MezuroPluginMyprofileController < ProfileController @@ -115,25 +113,26 @@ class MezuroPluginMyprofileController < ProfileController
115 def remove_metric_configuration 113 def remove_metric_configuration
116 configuration_content = profile.articles.find(params[:id]) 114 configuration_content = profile.articles.find(params[:id])
117 metric_name = params[:metric_name] 115 metric_name = params[:metric_name]
118 - Kalibro::Client::MetricConfigurationClient.new.remove(configuration_content.name, metric_name) 116 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(configuration_content.name, metric_name)
  117 + metric_configuration.destroy
119 redirect_to "/#{profile.identifier}/#{configuration_content.slug}" 118 redirect_to "/#{profile.identifier}/#{configuration_content.slug}"
120 end 119 end
121 120
122 private 121 private
123 122
124 def new_metric_configuration_instance 123 def new_metric_configuration_instance
125 - metric_configuration = Kalibro::Entities::MetricConfiguration.new 124 + metric_configuration = Kalibro::MetricConfiguration.new
126 metric_configuration.metric = Kalibro::NativeMetric.new 125 metric_configuration.metric = Kalibro::NativeMetric.new
127 - assign_metric_configuration_instance(metric_configuration, Kalibro::Entities::MetricConfiguration::NATIVE_TYPE) 126 + assign_metric_configuration_instance(metric_configuration, Kalibro::MetricConfiguration::NATIVE_TYPE)
128 end 127 end
129 128
130 def new_compound_metric_configuration_instance 129 def new_compound_metric_configuration_instance
131 - metric_configuration = Kalibro::Entities::MetricConfiguration.new  
132 - metric_configuration.metric = Kalibro::Entities::CompoundMetric.new  
133 - assign_metric_configuration_instance(metric_configuration, Kalibro::Entities::MetricConfiguration::COMPOUND_TYPE) 130 + metric_configuration = Kalibro::MetricConfiguration.new
  131 + metric_configuration.metric = Kalibro::CompoundMetric.new
  132 + assign_metric_configuration_instance(metric_configuration, Kalibro::MetricConfiguration::COMPOUND_TYPE)
134 end 133 end
135 134
136 - def assign_metric_configuration_instance(metric_configuration, type=Kalibro::Entities::MetricConfiguration::NATIVE_TYPE) 135 + def assign_metric_configuration_instance(metric_configuration, type=Kalibro::MetricConfiguration::NATIVE_TYPE)
137 metric_configuration.metric.name = params[:metric_configuration][:metric][:name] 136 metric_configuration.metric.name = params[:metric_configuration][:metric][:name]
138 metric_configuration.metric.description = params[:metric_configuration][:metric][:description] 137 metric_configuration.metric.description = params[:metric_configuration][:metric][:description]
139 metric_configuration.metric.scope = params[:metric_configuration][:metric][:scope] 138 metric_configuration.metric.scope = params[:metric_configuration][:metric][:scope]
@@ -141,36 +140,25 @@ class MezuroPluginMyprofileController < ProfileController @@ -141,36 +140,25 @@ class MezuroPluginMyprofileController < ProfileController
141 metric_configuration.weight = params[:metric_configuration][:weight] 140 metric_configuration.weight = params[:metric_configuration][:weight]
142 metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form] 141 metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form]
143 142
144 - if type == Kalibro::Entities::MetricConfiguration::NATIVE_TYPE 143 + if type == Kalibro::MetricConfiguration::NATIVE_TYPE
145 metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin] 144 metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin]
146 metric_configuration.metric.language = params[:metric_configuration][:metric][:language] 145 metric_configuration.metric.language = params[:metric_configuration][:metric][:language]
147 - elsif type == Kalibro::Entities::MetricConfiguration::COMPOUND_TYPE 146 + elsif type == Kalibro::MetricConfiguration::COMPOUND_TYPE
148 metric_configuration.metric.script = params[:metric_configuration][:metric][:script] 147 metric_configuration.metric.script = params[:metric_configuration][:metric][:script]
149 end 148 end
150 metric_configuration 149 metric_configuration
151 end 150 end
152 151
153 def generic_metric_configuration_creation(metric_configuration, configuration_name) 152 def generic_metric_configuration_creation(metric_configuration, configuration_name)
154 - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name) 153 + metric_configuration.save
155 metric_configuration.metric.name 154 metric_configuration.metric.name
156 end 155 end
157 156
158 def auxiliar_update_metric_configuration(type) 157 def auxiliar_update_metric_configuration(type)
159 metric_name = params[:metric_configuration][:metric][:name] 158 metric_name = params[:metric_configuration][:metric][:name]
160 - metric_configuration = Kalibro::Client::MetricConfigurationClient.metric_configuration(@configuration_content.name, metric_name) 159 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_name(@configuration_content.name, metric_name)
161 metric_configuration = assign_metric_configuration_instance(metric_configuration, type) 160 metric_configuration = assign_metric_configuration_instance(metric_configuration, type)
162 - Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_content.name)  
163 - end  
164 -  
165 - def new_range_instance  
166 - range = Kalibro::Entities::Range.new  
167 - range.beginning = params[:range][:beginning]  
168 - range.end = params[:range][:end]  
169 - range.label = params[:range][:label]  
170 - range.grade = params[:range][:grade]  
171 - range.color = params[:range][:color]  
172 - range.comments = params[:range][:comments]  
173 - range 161 + metric_configuration.save
174 end 162 end
175 163
176 end 164 end
plugins/mezuro/lib/kalibro/client/metric_configuration_client.rb
@@ -1,32 +0,0 @@ @@ -1,32 +0,0 @@
1 -class Kalibro::Client::MetricConfigurationClient  
2 -  
3 - def self.metric_configuration(configuration_name, metric_name)  
4 - new.metric_configuration(configuration_name, metric_name)  
5 - end  
6 -  
7 - def initialize  
8 - @port = Kalibro::Client::Port.new('MetricConfiguration')  
9 - end  
10 -  
11 - def save(metric_configuration, configuration_name)  
12 - @port.request(:save_metric_configuration, {  
13 - :metric_configuration => metric_configuration.to_hash,  
14 - :configuration_name => configuration_name})  
15 - end  
16 -  
17 - def metric_configuration(configuration_name, metric_name)  
18 - hash = @port.request(:get_metric_configuration, {  
19 - :configuration_name => configuration_name,  
20 - :metric_name => metric_name  
21 - })[:metric_configuration]  
22 - Kalibro::Entities::MetricConfiguration.from_hash(hash)  
23 - end  
24 -  
25 - def remove (configuration_name, metric_name)  
26 - @port.request(:remove_metric_configuration, {  
27 - :configuration_name => configuration_name,  
28 - :metric_name=> metric_name  
29 - })  
30 - end  
31 -  
32 -end  
plugins/mezuro/lib/kalibro/entities/metric_configuration.rb
@@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
1 -class Kalibro::Entities::MetricConfiguration < Kalibro::Entities::Entity  
2 -  
3 - NATIVE_TYPE='native'  
4 - COMPOUND_TYPE='compound'  
5 -  
6 - attr_accessor :metric, :code, :weight, :aggregation_form, :range  
7 -  
8 - def metric=(value)  
9 - if value.kind_of?(Hash)  
10 - @metric = to_entity(value, Kalibro::Entities::CompoundMetric) if value.has_key?(:script)  
11 - @metric = to_entity(value, Kalibro::Entities::NativeMetric) if value.has_key?(:origin)  
12 - else  
13 - @metric = value  
14 - end  
15 - end  
16 -  
17 - def weight=(value)  
18 - @weight = value.to_f  
19 - end  
20 -  
21 - def range=(value)  
22 - @range = to_entity_array(value, Kalibro::Entities::Range)  
23 - end  
24 -  
25 - def add_range(new_range)  
26 - @range = [] if @range.nil?  
27 - @range << new_range  
28 - end  
29 -  
30 - def ranges  
31 - @range  
32 - end  
33 -  
34 - def ranges=(ranges)  
35 - @range = ranges  
36 - end  
37 -  
38 -end  
plugins/mezuro/lib/kalibro/metric_configuration.rb 0 → 100644
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
  1 +class Kalibro::MetricConfiguration < Kalibro::Model
  2 +
  3 + NATIVE_TYPE='native'
  4 + COMPOUND_TYPE='compound'
  5 +
  6 + attr_accessor :metric, :code, :weight, :aggregation_form, :range, :configuration_name
  7 +
  8 + def metric=(value)
  9 + if value.kind_of?(Hash)
  10 + @metric = to_object(value, Kalibro::CompoundMetric) if value.has_key?(:script)
  11 + @metric = to_object(value, Kalibro::NativeMetric) if value.has_key?(:origin)
  12 + else
  13 + @metric = value
  14 + end
  15 + end
  16 +
  17 + def weight=(value)
  18 + @weight = value.to_f
  19 + end
  20 +
  21 + def range=(value)
  22 + @range = to_objects_array(value, Kalibro::Range)
  23 + end
  24 +
  25 + def add_range(new_range)
  26 + @range = [] if @range.nil?
  27 + @range << new_range
  28 + end
  29 +
  30 + def ranges
  31 + @range
  32 + end
  33 +
  34 + def ranges=(ranges)
  35 + @range = ranges
  36 + end
  37 +
  38 + def self.find_by_configuration_and_metric(configuration_name, metric_name)
  39 + metric_configuration = new request("MetricConfiguration", :get_metric_configuration, {
  40 + :configuration_name => configuration_name,
  41 + :metric_name => metric_name
  42 + })[:metric_configuration]
  43 + metric_configuration.configuration_name = configuration_name
  44 + metric_configuration
  45 + end
  46 +
  47 + def save
  48 + begin
  49 + self.class.request("MetricConfiguration", :save_metric_configuration, {
  50 + :metric_configuration => to_hash,
  51 + :configuration_name => configuration_name})
  52 + true
  53 + rescue
  54 + false
  55 + end
  56 + end
  57 +
  58 + def destroy
  59 + self.class.request("MetricConfiguration", :remove_metric_configuration, {
  60 + :configuration_name => configuration_name,
  61 + :metric_name=> metric.name
  62 + })
  63 + end
  64 +
  65 + def to_hash
  66 + hash = Hash.new
  67 + fields.each do |field|
  68 + if !(field == :configuration_name)
  69 + field_value = send(field)
  70 + hash[field] = convert_to_hash(field_value)
  71 + if field_value.is_a?(Kalibro::Model)
  72 + hash = {:attributes! => {}}.merge(hash)
  73 + hash[:attributes!][field.to_sym] = {
  74 + 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
  75 + 'xsi:type' => 'kalibro:' + xml_class_name(field_value) }
  76 + end
  77 + end
  78 + end
  79 + hash
  80 + end
  81 +
  82 +end
plugins/mezuro/lib/kalibro/model.rb
1 class Kalibro::Model 1 class Kalibro::Model
2 2
3 def initialize(attributes={}) 3 def initialize(attributes={})
4 - attributes.each { |field, value| send("#{field}=", value) } 4 + attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
5 end 5 end
6 6
7 def to_hash 7 def to_hash
@@ -51,6 +51,10 @@ class Kalibro::Model @@ -51,6 +51,10 @@ class Kalibro::Model
51 response.to_hash["#{action}_response".to_sym] 51 response.to_hash["#{action}_response".to_sym]
52 end 52 end
53 53
  54 + def self.is_valid?(field)
  55 + field.to_s[0] != '@' and field != :attributes!
  56 + end
  57 +
54 def to_objects_array(value, model_class = nil) 58 def to_objects_array(value, model_class = nil)
55 array = value.kind_of?(Array) ? value : [value] 59 array = value.kind_of?(Array) ? value : [value]
56 array.each.collect { |element| to_object(element, model_class) } 60 array.each.collect { |element| to_object(element, model_class) }
plugins/mezuro/lib/kalibro/project.rb
@@ -15,10 +15,6 @@ class Kalibro::Project &lt; Kalibro::Model @@ -15,10 +15,6 @@ class Kalibro::Project &lt; Kalibro::Model
15 end 15 end
16 end 16 end
17 17
18 - def self.destroy(project_name)  
19 - request("Project", :remove_project, {:project_name => project_name})  
20 - end  
21 -  
22 def self.create (content) 18 def self.create (content)
23 new({ 19 new({
24 :name => content.name, 20 :name => content.name,
@@ -32,6 +28,10 @@ class Kalibro::Project &lt; Kalibro::Model @@ -32,6 +28,10 @@ class Kalibro::Project &lt; Kalibro::Model
32 }) 28 })
33 end 29 end
34 30
  31 + def destroy
  32 + self.class.request("Project", :remove_project, {:project_name => name})
  33 + end
  34 +
35 def save 35 def save
36 begin 36 begin
37 self.class.request("Project", :save_project, {:project => to_hash}) 37 self.class.request("Project", :save_project, {:project => to_hash})
@@ -46,4 +46,3 @@ class Kalibro::Project &lt; Kalibro::Model @@ -46,4 +46,3 @@ class Kalibro::Project &lt; Kalibro::Model
46 end 46 end
47 47
48 end 48 end
49 -  
plugins/mezuro/test/fixtures/metric_configuration_fixtures.rb
@@ -4,45 +4,41 @@ require File.dirname(__FILE__) + &#39;/range_fixtures&#39; @@ -4,45 +4,41 @@ require File.dirname(__FILE__) + &#39;/range_fixtures&#39;
4 4
5 class MetricConfigurationFixtures 5 class MetricConfigurationFixtures
6 6
7 - def self.amloc_configuration  
8 - amloc = Kalibro::Entities::MetricConfiguration.new  
9 - amloc.metric = NativeMetricFixtures.amloc  
10 - amloc.code = 'amloc'  
11 - amloc.weight = 1.0  
12 - amloc.aggregation_form = 'AVERAGE'  
13 - amloc.ranges = [RangeFixtures.amloc_excellent, RangeFixtures.amloc_bad] 7 + def self.amloc_metric_configuration
  8 + amloc = Kalibro::MetricConfiguration.new amloc_metric_configuration_hash
  9 + amloc.configuration_name = "Sample Configuration"
14 amloc 10 amloc
15 end 11 end
16 12
17 def self.metric_configuration_without_ranges 13 def self.metric_configuration_without_ranges
18 - amloc = Kalibro::Entities::MetricConfiguration.new  
19 - amloc.metric = NativeMetricFixtures.amloc  
20 - amloc.code = 'amloc'  
21 - amloc.weight = 1.0  
22 - amloc.aggregation_form = 'AVERAGE' 14 + amloc = Kalibro::MetricConfiguration.new
  15 + {
  16 + :metric => NativeMetricFixtures.amloc_hash,
  17 + :code => 'amloc',
  18 + :weight => 1.0,
  19 + :aggregation_form => 'AVERAGE'
  20 + }
  21 + amloc.configuration_name = "Sample Configuration"
23 amloc 22 amloc
24 end 23 end
25 24
26 - def self.sc_configuration  
27 - sc = Kalibro::Entities::MetricConfiguration.new  
28 - sc.metric = CompoundMetricFixtures.sc  
29 - sc.code = 'sc'  
30 - sc.weight = 1.0  
31 - sc.aggregation_form = 'AVERAGE' 25 + def self.sc_metric_configuration
  26 + sc = Kalibro::MetricConfiguration.new sc_metric_configuration_hash
  27 + sc.configuration_name = "Sample Configuration"
32 sc 28 sc
33 end 29 end
34 30
35 - def self.amloc_configuration_hash 31 + def self.amloc_metric_configuration_hash
36 {:metric => NativeMetricFixtures.amloc_hash, :code => 'amloc', :weight => 1.0, 32 {:metric => NativeMetricFixtures.amloc_hash, :code => 'amloc', :weight => 1.0,
37 :aggregation_form => 'AVERAGE', 33 :aggregation_form => 'AVERAGE',
38 - :range => [RangeFixtures.amloc_excellent_hash, RangeFixtures.amloc_bad_hash], 34 + :range => [RangeFixtures.range_excellent_hash, RangeFixtures.range_bad_hash],
39 :attributes! => {:metric => { 35 :attributes! => {:metric => {
40 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', 36 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
41 'xsi:type' => 'kalibro:nativeMetricXml' }}} 37 'xsi:type' => 'kalibro:nativeMetricXml' }}}
42 end 38 end
43 39
44 - def self.sc_configuration_hash  
45 - {:metric => CompoundMetricFixtures.sc_hash, :code => 'sc', :weight => 1.0, :aggregation_form => 'AVERAGE', 40 + def self.sc_metric_configuration_hash
  41 + {:metric => CompoundMetricFixtures.compound_metric_hash, :code => 'sc', :weight => 1.0, :aggregation_form => 'AVERAGE',
46 :attributes! => {:metric => { 42 :attributes! => {:metric => {
47 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance', 43 'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
48 'xsi:type' => 'kalibro:compoundMetricXml' }}} 44 'xsi:type' => 'kalibro:compoundMetricXml' }}}
plugins/mezuro/test/unit/kalibro/metric_configuration_test.rb 0 → 100644
@@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
  1 +require "test_helper"
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"
  5 +
  6 +class MetricConfigurationTest < ActiveSupport::TestCase
  7 +
  8 + def setup
  9 + @hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
  10 + @metric_configuration1 = MetricConfigurationFixtures.amloc_metric_configuration
  11 + @metric_configuration2 = MetricConfigurationFixtures.sc_metric_configuration
  12 + @metric_configuration_without_ranges = MetricConfigurationFixtures.metric_configuration_without_ranges
  13 + @range1 = RangeFixtures.range_excellent
  14 + @range2 = RangeFixtures.range_bad
  15 + end
  16 +
  17 + should 'create metric configuration from hash' do
  18 + assert_equal @hash[:code], Kalibro::MetricConfiguration.new(@hash).code
  19 + end
  20 +
  21 + should 'convert metric configuration to hash' do
  22 + assert_equal @hash, @metric_configuration1.to_hash
  23 + end
  24 +
  25 + should 'create appropriate metric type' do
  26 + assert @metric_configuration1.metric.instance_of?(Kalibro::NativeMetric)
  27 + assert @metric_configuration2.metric.instance_of?(Kalibro::CompoundMetric)
  28 + end
  29 +
  30 + should 'add a range to an empty range list' do
  31 + @metric_configuration_without_ranges.add_range @range1
  32 + assert_equal @metric_configuration_without_ranges.ranges, [@range1]
  33 + end
  34 +
  35 + should 'add a range to an non-empty range list' do
  36 + @metric_configuration_without_ranges.ranges = [@range1]
  37 + @metric_configuration_without_ranges.add_range @range2
  38 + assert_equal @metric_configuration_without_ranges.ranges, [@range1, @range2]
  39 + end
  40 +
  41 + should 'save metric configuration' do
  42 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  43 + :metric_configuration => @metric_configuration1.to_hash,
  44 + :configuration_name => @metric_configuration1.configuration_name
  45 + })
  46 + @metric_configuration1.save
  47 + end
  48 +
  49 + should 'get metric configuration by name and configuration name' do
  50 + request_body = {
  51 + :configuration_name => @metric_configuration1.configuration_name,
  52 + :metric_name => @metric_configuration1.metric.name
  53 + }
  54 + response_hash = {:metric_configuration => @metric_configuration1.to_hash}
  55 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, request_body).returns(response_hash)
  56 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_and_metric(@metric_configuration1.configuration_name,
  57 + @metric_configuration1.metric.name)
  58 + assert_equal @metric_configuration1.code, metric_configuration.code
  59 + end
  60 +
  61 + should 'destroy metric configuration by name' do
  62 + request_body = {
  63 + :configuration_name => @metric_configuration1.configuration_name,
  64 + :metric_name => @metric_configuration1.metric.name
  65 + }
  66 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :remove_metric_configuration, request_body)
  67 + @metric_configuration1.destroy
  68 + end
  69 +
  70 +end
plugins/mezuro/test/unit/kalibro/project_test.rb
@@ -42,12 +42,12 @@ class ProjectTest &lt; ActiveSupport::TestCase @@ -42,12 +42,12 @@ class ProjectTest &lt; ActiveSupport::TestCase
42 42
43 should 'remove existent project from service' do 43 should 'remove existent project from service' do
44 Kalibro::Project.expects(:request).with("Project", :remove_project, {:project_name => @project.name}) 44 Kalibro::Project.expects(:request).with("Project", :remove_project, {:project_name => @project.name})
45 - Kalibro::Project.destroy(@project.name) 45 + @project.destroy
46 end 46 end
47 47
48 should 'raise error when try to remove inexistent project from service' do 48 should 'raise error when try to remove inexistent project from service' do
49 Kalibro::Project.expects(:request).with("Project", :remove_project, {:project_name => @project.name}).raises(Exception.new) 49 Kalibro::Project.expects(:request).with("Project", :remove_project, {:project_name => @project.name}).raises(Exception.new)
50 - assert_raise Exception do Kalibro::Project.destroy(@project.name) end 50 + assert_raise Exception do @project.destroy end
51 end 51 end
52 52
53 should 'initialize new project from hash' do 53 should 'initialize new project from hash' do