kalibro_gatekeeper_client 1.0.0.rc1 → 1.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/reading/all.feature +1 -1
- data/features/reading/exists.feature +1 -1
- data/features/reading/readings_of.feature +1 -1
- data/features/step_definitions/metric_configuration_steps.rb +0 -2
- data/features/step_definitions/reading_steps.rb +0 -3
- data/lib/kalibro_gatekeeper_client/entities/metric_collector.rb +11 -11
- data/lib/kalibro_gatekeeper_client/entities/reading.rb +4 -0
- data/lib/kalibro_gatekeeper_client/version.rb +1 -1
- data/spec/entities/metric_collector_spec.rb +22 -30
- data/spec/factories/metric_collectors.rb +2 -3
- data/spec/factories/metrics.rb +5 -5
- data/spec/factories/reading_groups.rb +2 -2
- data/spec/factories/readings.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 949d2afc43f14ed6cae9ab66b710a27305cd3210
|
4
|
+
data.tar.gz: 661a875588669e291ca48e35b83ad765b345a00b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f06455e7c3b1011a031a7c6f5c003eac519d6cb0414bc2400ddf27dfcc3a6b81e0c4b8cfb8ea92c130c4fddbeda531dd6596ee512f9dd5599ddc91a3eea7b9e
|
7
|
+
data.tar.gz: 68730d8631441a827badd7b8ce203d582860182f85758bef5969072dce8e729956476ad354464e33ff4944aa26c4e4a674b02484acf34eb2ca6d896802a8a916
|
@@ -8,6 +8,6 @@ Feature: Reading listing
|
|
8
8
|
Given I have a reading group with name "Kalibro"
|
9
9
|
And the given reading group has the following readings:
|
10
10
|
| label | grade | color |
|
11
|
-
| "Awesome" | 10 |
|
11
|
+
| "Awesome" | 10 | 3333ff |
|
12
12
|
When I ask for all the readings
|
13
13
|
Then the response should contain the given reading
|
@@ -8,6 +8,6 @@ Feature: Reading listing
|
|
8
8
|
Given I have a reading group with name "RG"
|
9
9
|
And the given reading group has the following readings:
|
10
10
|
| label | grade | color |
|
11
|
-
| "Awesome" | 10 |
|
11
|
+
| "Awesome" | 10 | 3333ff |
|
12
12
|
When I ask to check if the given reading exists
|
13
13
|
Then I should get true
|
@@ -42,12 +42,10 @@ When(/^I request all metric configurations of the given configuration$/) do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
Then(/^it should return the same metric configuration as the given one$/) do
|
45
|
-
pending
|
46
45
|
expect(@found_metric_configuration).to eq(@metric_configuration)
|
47
46
|
end
|
48
47
|
|
49
48
|
Then(/^I should get a list of its metric configurations$/) do
|
50
|
-
pending
|
51
49
|
expect(@metric_configurations).to eq([@metric_configuration])
|
52
50
|
end
|
53
51
|
|
@@ -27,16 +27,13 @@ When(/^I ask to check if the given reading exists$/) do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
Then(/^I should get the given reading$/) do
|
30
|
-
pending
|
31
30
|
expect(@found_reading).to eq(@reading)
|
32
31
|
end
|
33
32
|
|
34
33
|
Then(/^I should get a list with the given reading$/) do
|
35
|
-
pending
|
36
34
|
expect(@found_readings.first).to eq(@reading)
|
37
35
|
end
|
38
36
|
|
39
37
|
Then(/^the response should contain the given reading$/) do
|
40
|
-
pending
|
41
38
|
expect(@all_readings.first).to eq(@reading)
|
42
39
|
end
|
@@ -19,18 +19,18 @@ require "kalibro_gatekeeper_client/entities/model"
|
|
19
19
|
module KalibroGatekeeperClient
|
20
20
|
module Entities
|
21
21
|
class MetricCollector < Model
|
22
|
-
attr_accessor :name, :description, :
|
22
|
+
attr_accessor :name, :description, :supported_metrics, :wanted_metrics, :processing
|
23
23
|
|
24
|
-
def
|
25
|
-
@
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
@supported_metric
|
24
|
+
def supported_metrics=(value)
|
25
|
+
@supported_metrics = {}
|
26
|
+
value.each do |code, metric|
|
27
|
+
@supported_metrics[code] = KalibroGatekeeperClient::Entities::Metric.new metric
|
28
|
+
end
|
30
29
|
end
|
31
30
|
|
32
31
|
def metric(name)
|
33
|
-
supported_metrics.find {|metric| metric.name == name}
|
32
|
+
metric = self.supported_metrics.find {|code, metric| metric.name == name}
|
33
|
+
metric.nil? ? nil : metric.last
|
34
34
|
end
|
35
35
|
|
36
36
|
def self.find_by_name(metric_collector_name)
|
@@ -47,9 +47,9 @@ module KalibroGatekeeperClient
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def self.all
|
50
|
-
|
51
|
-
|
50
|
+
metric_collectors_names = all_names
|
51
|
+
metric_collectors_names.map{ |name| find_by_name(name) }
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
|
-
end
|
55
|
+
end
|
@@ -28,6 +28,10 @@ module KalibroGatekeeperClient
|
|
28
28
|
@grade = value.to_f
|
29
29
|
end
|
30
30
|
|
31
|
+
def group_id=(value)
|
32
|
+
@group_id = value.to_i
|
33
|
+
end
|
34
|
+
|
31
35
|
def self.find(id)
|
32
36
|
response = request('get', {id: id})
|
33
37
|
raise KalibroGatekeeperClient::Errors::RecordNotFound unless response['error'].nil?
|
@@ -67,8 +67,8 @@ describe KalibroGatekeeperClient::Entities::MetricCollector do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
context 'with many metric collectors' do
|
70
|
-
let(:metric_collector) { FactoryGirl.build(:metric_collector) }
|
71
|
-
let(:another_metric_collector) { FactoryGirl.build(:another_metric_collector) }
|
70
|
+
let!(:metric_collector) { FactoryGirl.build(:metric_collector) }
|
71
|
+
let!(:another_metric_collector) { FactoryGirl.build(:another_metric_collector) }
|
72
72
|
|
73
73
|
before :each do
|
74
74
|
KalibroGatekeeperClient::Entities::MetricCollector.
|
@@ -77,14 +77,14 @@ describe KalibroGatekeeperClient::Entities::MetricCollector do
|
|
77
77
|
returns({'metric_collector_names' => [metric_collector.name, another_metric_collector.name]}.to_json)
|
78
78
|
|
79
79
|
KalibroGatekeeperClient::Entities::MetricCollector.
|
80
|
-
expects(:
|
81
|
-
with(
|
82
|
-
returns(metric_collector
|
80
|
+
expects(:find_by_name).
|
81
|
+
with(metric_collector.name).
|
82
|
+
returns(metric_collector)
|
83
83
|
|
84
84
|
KalibroGatekeeperClient::Entities::MetricCollector.
|
85
|
-
expects(:
|
86
|
-
with(
|
87
|
-
returns(another_metric_collector
|
85
|
+
expects(:find_by_name).
|
86
|
+
with(another_metric_collector.name).
|
87
|
+
returns(another_metric_collector)
|
88
88
|
end
|
89
89
|
|
90
90
|
it 'should return the two elements' do
|
@@ -115,11 +115,15 @@ describe KalibroGatekeeperClient::Entities::MetricCollector do
|
|
115
115
|
end
|
116
116
|
|
117
117
|
context 'with an existent name' do
|
118
|
+
#FIXME: Mocha is creating the expectations with strings, but FactoryGirl returns everything with sybols and integers
|
119
|
+
let!(:params) { Hash[FactoryGirl.attributes_for(:metric_collector).map { |k,v| [k.to_s, v.to_s]}] }
|
120
|
+
let(:metric_params) { { "total_abstract_classes" => Hash[FactoryGirl.attributes_for(:metric).map { |k,v| if v.is_a?(Array) then [k.to_s, v] else [k.to_s, v.to_s] end}] } }
|
118
121
|
before :each do
|
122
|
+
params["supported_metrics"] = metric_params
|
119
123
|
KalibroGatekeeperClient::Entities::MetricCollector.
|
120
124
|
expects(:request).
|
121
125
|
with(:get,{name: subject.name}).
|
122
|
-
returns(
|
126
|
+
returns(params)
|
123
127
|
end
|
124
128
|
|
125
129
|
it 'should return a metric_collector' do
|
@@ -128,34 +132,22 @@ describe KalibroGatekeeperClient::Entities::MetricCollector do
|
|
128
132
|
end
|
129
133
|
end
|
130
134
|
|
131
|
-
describe 'Supported
|
132
|
-
let(:
|
133
|
-
|
134
|
-
|
135
|
-
KalibroGatekeeperClient::Entities::Metric.
|
136
|
-
expects(:to_objects_array).at_least_once.
|
137
|
-
with(metric.to_hash).
|
138
|
-
returns([metric])
|
139
|
-
end
|
135
|
+
describe 'Supported Metrics' do
|
136
|
+
let(:code_and_metric) { { "total_abstract_classes" => FactoryGirl.build(:metric) } }
|
137
|
+
#FIXME: Mocha is creating the expectations with strings, but FactoryGirl returns everything with sybols and integers
|
138
|
+
let(:code_and_metric_parameter) { { "total_abstract_classes" => Hash[FactoryGirl.attributes_for(:metric).map { |k,v| if v.is_a?(Array) then [k.to_s, v] else [k.to_s, v.to_s] end}] } }
|
140
139
|
|
141
|
-
context '
|
140
|
+
context 'supported_metrics acessors' do
|
142
141
|
it 'should set the value of the array of supported metrics' do
|
143
|
-
subject.
|
144
|
-
expect(subject.
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
context 'supported_metrics' do
|
149
|
-
it 'should return the array of the supported metrics' do
|
150
|
-
subject.supported_metric = metric.to_hash
|
151
|
-
expect(subject.supported_metrics.first.name).to eq(metric.name)
|
142
|
+
subject.supported_metrics = code_and_metric_parameter
|
143
|
+
expect(subject.supported_metrics).to eq(code_and_metric)
|
152
144
|
end
|
153
145
|
end
|
154
146
|
end
|
155
147
|
|
156
148
|
describe 'metric' do
|
157
149
|
subject { FactoryGirl.build(:metric_collector) }
|
158
|
-
let(:metric) { subject.supported_metrics
|
150
|
+
let(:metric) { subject.supported_metrics["loc"] }
|
159
151
|
|
160
152
|
it 'should return nil with an inexistent name' do
|
161
153
|
expect(subject.metric("fake name")).to be_nil
|
@@ -165,4 +157,4 @@ describe KalibroGatekeeperClient::Entities::MetricCollector do
|
|
165
157
|
expect(subject.metric(metric.name).name).to eq(metric.name)
|
166
158
|
end
|
167
159
|
end
|
168
|
-
end
|
160
|
+
end
|
@@ -18,8 +18,7 @@ FactoryGirl.define do
|
|
18
18
|
factory :metric_collector, class: KalibroGatekeeperClient::Entities::MetricCollector do
|
19
19
|
name "Analizo"
|
20
20
|
description "Analizo is a suite of source code analysis tools."
|
21
|
-
|
22
|
-
supported_metric { [FactoryGirl.build(:metric), FactoryGirl.build(:metric)] }
|
21
|
+
supported_metrics { { "total_abstract_classes" => FactoryGirl.build(:metric).to_hash, "loc" => FactoryGirl.build(:loc).to_hash } }
|
23
22
|
|
24
23
|
trait :another_metric_collector do
|
25
24
|
name "Avalio"
|
@@ -28,4 +27,4 @@ FactoryGirl.define do
|
|
28
27
|
|
29
28
|
factory :another_metric_collector, traits: [:another_metric_collector]
|
30
29
|
end
|
31
|
-
end
|
30
|
+
end
|
data/spec/factories/metrics.rb
CHANGED
@@ -17,19 +17,19 @@
|
|
17
17
|
FactoryGirl.define do
|
18
18
|
factory :metric, class: KalibroGatekeeperClient::Entities::Metric do
|
19
19
|
name "Total Abstract Classes"
|
20
|
-
compound false
|
20
|
+
compound "false"
|
21
21
|
scope "SOFTWARE"
|
22
|
-
description
|
22
|
+
description ""
|
23
23
|
script ""
|
24
24
|
language ["C", "CPP", "JAVA"]
|
25
25
|
end
|
26
26
|
|
27
27
|
factory :loc, class: KalibroGatekeeperClient::Entities::Metric do
|
28
28
|
name "Lines of Code"
|
29
|
-
compound false
|
29
|
+
compound "false"
|
30
30
|
scope "CLASS"
|
31
|
-
description
|
31
|
+
description ""
|
32
32
|
script ""
|
33
33
|
language ["C", "CPP", "JAVA"]
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
6
6
|
# the Free Software Foundation, either version 3 of the License, or
|
7
7
|
# (at your option) any later version.
|
8
|
-
#
|
8
|
+
#
|
9
9
|
# This program is distributed in the hope that it will be useful,
|
10
10
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
11
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
@@ -19,5 +19,5 @@ FactoryGirl.define do
|
|
19
19
|
id 1
|
20
20
|
name "Mussum"
|
21
21
|
description "Cacildis!"
|
22
|
-
end
|
22
|
+
end
|
23
23
|
end
|
data/spec/factories/readings.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
6
6
|
# the Free Software Foundation, either version 3 of the License, or
|
7
7
|
# (at your option) any later version.
|
8
|
-
#
|
8
|
+
#
|
9
9
|
# This program is distributed in the hope that it will be useful,
|
10
10
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
11
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
@@ -18,8 +18,8 @@ FactoryGirl.define do
|
|
18
18
|
factory :reading, class: KalibroGatekeeperClient::Entities::Reading do
|
19
19
|
id 42
|
20
20
|
label "Good"
|
21
|
-
grade 10.5
|
22
|
-
color "
|
21
|
+
grade 10.5
|
22
|
+
color "33dd33"
|
23
23
|
group_id 31
|
24
|
-
end
|
24
|
+
end
|
25
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kalibro_gatekeeper_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego Araújo Martinez
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-09-
|
14
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|