danmayer-metric_fu 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +237 -0
- data/MIT-LICENSE +22 -0
- data/README +29 -0
- data/Rakefile +18 -0
- data/TODO +6 -0
- data/lib/base/base_template.rb +172 -0
- data/lib/base/churn_analyzer.rb +38 -0
- data/lib/base/code_issue.rb +97 -0
- data/lib/base/configuration.rb +199 -0
- data/lib/base/flay_analyzer.rb +50 -0
- data/lib/base/flog_analyzer.rb +43 -0
- data/lib/base/generator.rb +166 -0
- data/lib/base/graph.rb +44 -0
- data/lib/base/line_numbers.rb +74 -0
- data/lib/base/location.rb +85 -0
- data/lib/base/md5_tracker.rb +52 -0
- data/lib/base/metric_analyzer.rb +404 -0
- data/lib/base/ranking.rb +34 -0
- data/lib/base/rcov_analyzer.rb +43 -0
- data/lib/base/reek_analyzer.rb +163 -0
- data/lib/base/report.rb +108 -0
- data/lib/base/roodi_analyzer.rb +37 -0
- data/lib/base/saikuro_analyzer.rb +48 -0
- data/lib/base/scoring_strategies.rb +29 -0
- data/lib/base/stats_analyzer.rb +37 -0
- data/lib/base/table.rb +102 -0
- data/lib/generators/churn.rb +28 -0
- data/lib/generators/flay.rb +31 -0
- data/lib/generators/flog.rb +111 -0
- data/lib/generators/hotspots.rb +52 -0
- data/lib/generators/rails_best_practices.rb +53 -0
- data/lib/generators/rcov.rb +122 -0
- data/lib/generators/reek.rb +81 -0
- data/lib/generators/roodi.rb +35 -0
- data/lib/generators/saikuro.rb +256 -0
- data/lib/generators/stats.rb +58 -0
- data/lib/graphs/engines/bluff.rb +113 -0
- data/lib/graphs/engines/gchart.rb +157 -0
- data/lib/graphs/flay_grapher.rb +18 -0
- data/lib/graphs/flog_grapher.rb +57 -0
- data/lib/graphs/grapher.rb +11 -0
- data/lib/graphs/rails_best_practices_grapher.rb +19 -0
- data/lib/graphs/rcov_grapher.rb +18 -0
- data/lib/graphs/reek_grapher.rb +30 -0
- data/lib/graphs/roodi_grapher.rb +18 -0
- data/lib/graphs/stats_grapher.rb +20 -0
- data/lib/metric_fu.rb +40 -0
- data/lib/templates/awesome/awesome_template.rb +73 -0
- data/lib/templates/awesome/churn.html.erb +58 -0
- data/lib/templates/awesome/css/buttons.css +82 -0
- data/lib/templates/awesome/css/default.css +91 -0
- data/lib/templates/awesome/css/integrity.css +334 -0
- data/lib/templates/awesome/css/reset.css +7 -0
- data/lib/templates/awesome/css/syntax.css +19 -0
- data/lib/templates/awesome/flay.html.erb +34 -0
- data/lib/templates/awesome/flog.html.erb +55 -0
- data/lib/templates/awesome/hotspots.html.erb +62 -0
- data/lib/templates/awesome/index.html.erb +34 -0
- data/lib/templates/awesome/layout.html.erb +30 -0
- data/lib/templates/awesome/rails_best_practices.html.erb +27 -0
- data/lib/templates/awesome/rcov.html.erb +42 -0
- data/lib/templates/awesome/reek.html.erb +40 -0
- data/lib/templates/awesome/roodi.html.erb +27 -0
- data/lib/templates/awesome/saikuro.html.erb +71 -0
- data/lib/templates/awesome/stats.html.erb +51 -0
- data/lib/templates/javascripts/bluff-min.js +1 -0
- data/lib/templates/javascripts/excanvas.js +35 -0
- data/lib/templates/javascripts/js-class.js +1 -0
- data/lib/templates/standard/churn.html.erb +31 -0
- data/lib/templates/standard/default.css +64 -0
- data/lib/templates/standard/flay.html.erb +34 -0
- data/lib/templates/standard/flog.html.erb +57 -0
- data/lib/templates/standard/hotspots.html.erb +54 -0
- data/lib/templates/standard/index.html.erb +41 -0
- data/lib/templates/standard/rails_best_practices.html.erb +29 -0
- data/lib/templates/standard/rcov.html.erb +43 -0
- data/lib/templates/standard/reek.html.erb +42 -0
- data/lib/templates/standard/roodi.html.erb +29 -0
- data/lib/templates/standard/saikuro.html.erb +84 -0
- data/lib/templates/standard/standard_template.rb +26 -0
- data/lib/templates/standard/stats.html.erb +55 -0
- data/spec/base/base_template_spec.rb +177 -0
- data/spec/base/configuration_spec.rb +276 -0
- data/spec/base/generator_spec.rb +223 -0
- data/spec/base/graph_spec.rb +61 -0
- data/spec/base/line_numbers_spec.rb +62 -0
- data/spec/base/md5_tracker_spec.rb +57 -0
- data/spec/base/report_spec.rb +146 -0
- data/spec/generators/churn_spec.rb +41 -0
- data/spec/generators/flay_spec.rb +105 -0
- data/spec/generators/flog_spec.rb +70 -0
- data/spec/generators/rails_best_practices_spec.rb +52 -0
- data/spec/generators/rcov_spec.rb +180 -0
- data/spec/generators/reek_spec.rb +134 -0
- data/spec/generators/roodi_spec.rb +24 -0
- data/spec/generators/saikuro_spec.rb +74 -0
- data/spec/generators/stats_spec.rb +74 -0
- data/spec/graphs/engines/bluff_spec.rb +19 -0
- data/spec/graphs/engines/gchart_spec.rb +156 -0
- data/spec/graphs/flay_grapher_spec.rb +56 -0
- data/spec/graphs/flog_grapher_spec.rb +108 -0
- data/spec/graphs/rails_best_practices_grapher_spec.rb +61 -0
- data/spec/graphs/rcov_grapher_spec.rb +56 -0
- data/spec/graphs/reek_grapher_spec.rb +65 -0
- data/spec/graphs/roodi_grapher_spec.rb +56 -0
- data/spec/graphs/stats_grapher_spec.rb +68 -0
- data/spec/resources/line_numbers/foo.rb +33 -0
- data/spec/resources/line_numbers/module.rb +11 -0
- data/spec/resources/line_numbers/module_surrounds_class.rb +15 -0
- data/spec/resources/line_numbers/two_classes.rb +11 -0
- data/spec/resources/saikuro/app/controllers/sessions_controller.rb_cyclo.html +10 -0
- data/spec/resources/saikuro/app/controllers/users_controller.rb_cyclo.html +16 -0
- data/spec/resources/saikuro/index_cyclo.html +155 -0
- data/spec/resources/saikuro_sfiles/thing.rb_cyclo.html +11 -0
- data/spec/resources/yml/20090630.yml +7922 -0
- data/spec/resources/yml/metric_missing.yml +1 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +7 -0
- data/tasks/metric_fu.rake +22 -0
- metadata +462 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe FlayGrapher do
|
4
|
+
before :each do
|
5
|
+
@flay_grapher = MetricFu::FlayGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to flay_score and labels" do
|
10
|
+
@flay_grapher.should respond_to(:flay_score)
|
11
|
+
@flay_grapher.should respond_to(:labels)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "responding to #initialize" do
|
15
|
+
it "should initialise flay_score and labels" do
|
16
|
+
@flay_grapher.flay_score.should == []
|
17
|
+
@flay_grapher.labels.should == {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "responding to #get_metrics" do
|
22
|
+
context "when metrics were not generated" do
|
23
|
+
before(:each) do
|
24
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
25
|
+
@date = "1/2"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not push to flay_score" do
|
29
|
+
@flay_grapher.flay_score.should_not_receive(:push)
|
30
|
+
@flay_grapher.get_metrics(@metrics, @date)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not update labels with the date" do
|
34
|
+
@flay_grapher.labels.should_not_receive(:update)
|
35
|
+
@flay_grapher.get_metrics(@metrics, @date)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when metrics have been generated" do
|
40
|
+
before(:each) do
|
41
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
42
|
+
@date = "1/2"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should push to flay_score" do
|
46
|
+
@flay_grapher.flay_score.should_receive(:push).with(476)
|
47
|
+
@flay_grapher.get_metrics(@metrics, @date)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should update labels with the date" do
|
51
|
+
@flay_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
|
52
|
+
@flay_grapher.get_metrics(@metrics, @date)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe MetricFu::FlogGrapher do
|
4
|
+
before :each do
|
5
|
+
MetricFu.configuration
|
6
|
+
@flog_grapher = MetricFu::FlogGrapher.new
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should respond to flog_total, flog_average and labels" do
|
11
|
+
@flog_grapher.should respond_to(:flog_average)
|
12
|
+
@flog_grapher.should respond_to(:labels)
|
13
|
+
@flog_grapher.should respond_to(:top_five_percent_average)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "responding to #initialize" do
|
17
|
+
it "should initialize top_five_percent_average, flog_average and labels" do
|
18
|
+
@flog_grapher.flog_average.should == []
|
19
|
+
@flog_grapher.labels.should == {}
|
20
|
+
@flog_grapher.top_five_percent_average.should == []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "responding to #get_metrics" do
|
25
|
+
before(:each) do
|
26
|
+
methods = {}
|
27
|
+
100.times do |i|
|
28
|
+
methods["method_name_#{i}"] = {:score => i.to_f}
|
29
|
+
end
|
30
|
+
|
31
|
+
@metrics = {:flog => {:total => 111.1,
|
32
|
+
:average => 7.7,
|
33
|
+
:method_containers => [ {:methods => methods } ] } }
|
34
|
+
@date = "1/2"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should push to top_five_percent_average" do
|
38
|
+
average = (99.0 + 98.0 + 97.0 + 96.0 + 95.0) / 5.0
|
39
|
+
@flog_grapher.top_five_percent_average.should_receive(:push).with(average)
|
40
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should push 9.9 to flog_average" do
|
44
|
+
@flog_grapher.flog_average.should_receive(:push).with(7.7)
|
45
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
46
|
+
end
|
47
|
+
|
48
|
+
context "when metrics were not generated" do
|
49
|
+
before(:each) do
|
50
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
51
|
+
@date = "1/2"
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should not push to top_five_percent_average" do
|
55
|
+
@flog_grapher.top_five_percent_average.should_not_receive(:push)
|
56
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should not push to flog_average" do
|
60
|
+
@flog_grapher.flog_average.should_not_receive(:push)
|
61
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should not update labels with the date" do
|
65
|
+
@flog_grapher.labels.should_not_receive(:update)
|
66
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "when metrics have been generated" do
|
71
|
+
before(:each) do
|
72
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
73
|
+
@date = "1/2"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should push to top_five_percent_average" do
|
77
|
+
average = (73.6 + 68.5 + 66.1 + 46.6 + 44.8 + 44.1 + 41.2 + 36.0) / 8.0
|
78
|
+
@flog_grapher.top_five_percent_average.should_receive(:push).with(average)
|
79
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should push to flog_average" do
|
83
|
+
@flog_grapher.flog_average.should_receive(:push).with(9.9)
|
84
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should update labels with the date" do
|
88
|
+
@flog_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
|
89
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "responding to #get_metrics with legacy data" do
|
95
|
+
before(:each) do
|
96
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
97
|
+
|
98
|
+
@date = "1/2"
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should push to top_five_percent_average" do
|
102
|
+
average = (73.6 + 68.5 + 66.1 + 46.6 + 44.8 + 44.1 + 41.2 + 36.0) / 8.0
|
103
|
+
@flog_grapher.top_five_percent_average.should_receive(:push).with(average)
|
104
|
+
@flog_grapher.get_metrics(@metrics, @date)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe RailsBestPracticesGrapher do
|
4
|
+
before :each do
|
5
|
+
@stats_grapher = MetricFu::RailsBestPracticesGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to rails_best_practices_count and labels" do
|
10
|
+
@stats_grapher.should respond_to(:rails_best_practices_count)
|
11
|
+
@stats_grapher.should respond_to(:labels)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "responding to #initialize" do
|
15
|
+
it "should initialise rails_best_practices_count and labels" do
|
16
|
+
@stats_grapher.rails_best_practices_count.should == []
|
17
|
+
@stats_grapher.labels.should == {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "responding to #get_metrics" do
|
22
|
+
context "when metrics were not generated" do
|
23
|
+
before(:each) do
|
24
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
25
|
+
@date = "01022003"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not push to rails_best_practices_count" do
|
29
|
+
@stats_grapher.rails_best_practices_count.should_not_receive(:push)
|
30
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not update labels with the date" do
|
34
|
+
@stats_grapher.labels.should_not_receive(:update)
|
35
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when metrics have been generated" do
|
40
|
+
before(:each) do
|
41
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
42
|
+
@date = "01022003"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should push to rails_best_practices_count" do
|
46
|
+
@stats_grapher.rails_best_practices_count.should_receive(:push).with(2)
|
47
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should push 0 to rails_best_practices_count when no problems were found" do
|
51
|
+
@stats_grapher.rails_best_practices_count.should_receive(:push).with(0)
|
52
|
+
@stats_grapher.get_metrics({ :rails_best_practices => {} }, @date)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should update labels with the date" do
|
56
|
+
@stats_grapher.labels.should_receive(:update).with({ 0 => "01022003" })
|
57
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe RcovGrapher do
|
4
|
+
before :each do
|
5
|
+
@rcov_grapher = MetricFu::RcovGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to rcov_percent and labels" do
|
10
|
+
@rcov_grapher.should respond_to(:rcov_percent)
|
11
|
+
@rcov_grapher.should respond_to(:labels)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "responding to #initialize" do
|
15
|
+
it "should initialise rcov_percent and labels" do
|
16
|
+
@rcov_grapher.rcov_percent.should == []
|
17
|
+
@rcov_grapher.labels.should == {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "responding to #get_metrics" do
|
22
|
+
context "when metrics were not generated" do
|
23
|
+
before(:each) do
|
24
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
25
|
+
@date = "1/2"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not push to rcov_percent" do
|
29
|
+
@rcov_grapher.rcov_percent.should_not_receive(:push)
|
30
|
+
@rcov_grapher.get_metrics(@metrics, @date)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not update labels with the date" do
|
34
|
+
@rcov_grapher.labels.should_not_receive(:update)
|
35
|
+
@rcov_grapher.get_metrics(@metrics, @date)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when metrics have been generated" do
|
40
|
+
before(:each) do
|
41
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
42
|
+
@date = "1/2"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should push to rcov_percent" do
|
46
|
+
@rcov_grapher.rcov_percent.should_receive(:push).with(49.6)
|
47
|
+
@rcov_grapher.get_metrics(@metrics, @date)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should update labels with the date" do
|
51
|
+
@rcov_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
|
52
|
+
@rcov_grapher.get_metrics(@metrics, @date)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe ReekGrapher do
|
4
|
+
before :each do
|
5
|
+
@reek_grapher = MetricFu::ReekGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to reek_count and labels" do
|
10
|
+
@reek_grapher.should respond_to(:reek_count)
|
11
|
+
@reek_grapher.should respond_to(:labels)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "responding to #initialize" do
|
15
|
+
it "should initialise reek_count and labels" do
|
16
|
+
@reek_grapher.reek_count.should == {}
|
17
|
+
@reek_grapher.labels.should == {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "responding to #get_metrics" do
|
22
|
+
context "when metrics were not generated" do
|
23
|
+
before(:each) do
|
24
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
25
|
+
@date = "1/2"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not set a hash of code smells to reek_count" do
|
29
|
+
@reek_grapher.get_metrics(@metrics, @date)
|
30
|
+
@reek_grapher.reek_count.should == {}
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not update labels with the date" do
|
34
|
+
@reek_grapher.labels.should_not_receive(:update)
|
35
|
+
@reek_grapher.get_metrics(@metrics, @date)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when metrics have been generated" do
|
40
|
+
before(:each) do
|
41
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
42
|
+
@date = "1/2"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should set a hash of code smells to reek_count" do
|
46
|
+
@reek_grapher.get_metrics(@metrics, @date)
|
47
|
+
@reek_grapher.reek_count.should == {
|
48
|
+
"Uncommunicative Name" => [27],
|
49
|
+
"Feature Envy" => [20],
|
50
|
+
"Utility Function" => [15],
|
51
|
+
"Long Method" => [26],
|
52
|
+
"Nested Iterators" => [12],
|
53
|
+
"Control Couple" => [4],
|
54
|
+
"Duplication" => [48],
|
55
|
+
"Large Class" => [1]
|
56
|
+
}
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should update labels with the date" do
|
60
|
+
@reek_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
|
61
|
+
@reek_grapher.get_metrics(@metrics, @date)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe RoodiGrapher do
|
4
|
+
before :each do
|
5
|
+
@roodi_grapher = MetricFu::RoodiGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to roodi_count and labels" do
|
10
|
+
@roodi_grapher.should respond_to(:roodi_count)
|
11
|
+
@roodi_grapher.should respond_to(:labels)
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "responding to #initialize" do
|
15
|
+
it "should initialise roodi_count and labels" do
|
16
|
+
@roodi_grapher.roodi_count.should == []
|
17
|
+
@roodi_grapher.labels.should == {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "responding to #get_metrics" do
|
22
|
+
context "when metrics were not generated" do
|
23
|
+
before(:each) do
|
24
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
25
|
+
@date = "1/2"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not push to roodi_count" do
|
29
|
+
@roodi_grapher.roodi_count.should_not_receive(:push)
|
30
|
+
@roodi_grapher.get_metrics(@metrics, @date)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should not update labels with the date" do
|
34
|
+
@roodi_grapher.labels.should_not_receive(:update)
|
35
|
+
@roodi_grapher.get_metrics(@metrics, @date)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when metrics have been generated" do
|
40
|
+
before(:each) do
|
41
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
42
|
+
@date = "1/2"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should push to roodi_count" do
|
46
|
+
@roodi_grapher.roodi_count.should_receive(:push).with(13)
|
47
|
+
@roodi_grapher.get_metrics(@metrics, @date)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should update labels with the date" do
|
51
|
+
@roodi_grapher.labels.should_receive(:update).with({ 0 => "1/2" })
|
52
|
+
@roodi_grapher.get_metrics(@metrics, @date)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
2
|
+
|
3
|
+
describe StatsGrapher do
|
4
|
+
before :each do
|
5
|
+
@stats_grapher = MetricFu::StatsGrapher.new
|
6
|
+
MetricFu.configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should respond to loc_counts and lot_counts and labels" do
|
10
|
+
@stats_grapher.should respond_to(:loc_counts)
|
11
|
+
@stats_grapher.should respond_to(:lot_counts)
|
12
|
+
@stats_grapher.should respond_to(:labels)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "responding to #initialize" do
|
16
|
+
it "should initialise loc_counts and lot_counts and labels" do
|
17
|
+
@stats_grapher.loc_counts.should == []
|
18
|
+
@stats_grapher.lot_counts.should == []
|
19
|
+
@stats_grapher.labels.should == {}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "responding to #get_metrics" do
|
24
|
+
context "when metrics were not generated" do
|
25
|
+
before(:each) do
|
26
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "metric_missing.yml")))
|
27
|
+
@date = "01022003"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should not push to loc_counts" do
|
31
|
+
@stats_grapher.loc_counts.should_not_receive(:push)
|
32
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should not push to lot_counts" do
|
36
|
+
@stats_grapher.lot_counts.should_not_receive(:push)
|
37
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should not update labels with the date" do
|
41
|
+
@stats_grapher.labels.should_not_receive(:update)
|
42
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when metrics have been generated" do
|
47
|
+
before(:each) do
|
48
|
+
@metrics = YAML::load(File.open(File.join(File.dirname(__FILE__), "..", "resources", "yml", "20090630.yml")))
|
49
|
+
@date = "01022003"
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should push to loc_counts" do
|
53
|
+
@stats_grapher.loc_counts.should_receive(:push).with(15935)
|
54
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should push to lot_counts" do
|
58
|
+
@stats_grapher.lot_counts.should_receive(:push).with(7438)
|
59
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should update labels with the date" do
|
63
|
+
@stats_grapher.labels.should_receive(:update).with({ 0 => "01022003" })
|
64
|
+
@stats_grapher.get_metrics(@metrics, @date)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|