kalibro_gatekeeper_client 0.0.1.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +29 -0
- data/AUTHORS +4 -0
- data/COPYING +674 -0
- data/COPYING.LESSER +165 -0
- data/Gemfile +4 -0
- data/README.md +77 -0
- data/Rakefile +6 -0
- data/cucumber.yml +1 -0
- data/features/base_tool/all_names.feature +8 -0
- data/features/base_tool/find_by_name.feature +12 -0
- data/features/configuration/all.feature +10 -0
- data/features/metric_configuration/find.feature +18 -0
- data/features/metric_configuration/metric_configurations_of.feature +18 -0
- data/features/metric_result/descendant_results.feature +19 -0
- data/features/metric_result/history_of.feature +20 -0
- data/features/metric_result/metric_results_of.feature +19 -0
- data/features/module_result/children.feature +18 -0
- data/features/module_result/find.feature +15 -0
- data/features/module_result/history_of.feature +11 -0
- data/features/processing/first_processing_after.feature +18 -0
- data/features/processing/first_processing_of.feature +18 -0
- data/features/processing/has_processing.feature +18 -0
- data/features/processing/has_processing_after.feature +18 -0
- data/features/processing/has_processing_before.feature +18 -0
- data/features/processing/has_ready_processing.feature +18 -0
- data/features/processing/last_processing_before.feature +18 -0
- data/features/processing/last_processing_of.feature +18 -0
- data/features/processing/last_processing_state_of.feature +18 -0
- data/features/processing/last_ready_processing_of.feature +18 -0
- data/features/processing/processing_of.feature +32 -0
- data/features/processing/processing_with_date_of.feature +32 -0
- data/features/project/all.feature +10 -0
- data/features/project/creation.feature +9 -0
- data/features/project/destroy.feature +10 -0
- data/features/project/exists.feature +9 -0
- data/features/project/find.feature +10 -0
- data/features/range/all.feature +14 -0
- data/features/range/exists.feature +13 -0
- data/features/range/find.feature +14 -0
- data/features/range/ranges_of.feature +22 -0
- data/features/range/save.feature +14 -0
- data/features/reading/all.feature +13 -0
- data/features/reading/exists.feature +13 -0
- data/features/reading/find.feature +11 -0
- data/features/reading/readings_of.feature +11 -0
- data/features/reading_group/all.feature +10 -0
- data/features/repository/all.feature +14 -0
- data/features/repository/cancel_processing.feature +14 -0
- data/features/repository/exists.feature +14 -0
- data/features/repository/find.feature +14 -0
- data/features/repository/of.feature +15 -0
- data/features/repository/process.feature +16 -0
- data/features/repository/types.feature +9 -0
- data/features/step_definitions/base_tool_steps.rb +28 -0
- data/features/step_definitions/configuration_steps.rb +11 -0
- data/features/step_definitions/metric_configuration_steps.rb +52 -0
- data/features/step_definitions/metric_result_steps.rb +29 -0
- data/features/step_definitions/metric_steps.rb +3 -0
- data/features/step_definitions/module_result_steps.rb +30 -0
- data/features/step_definitions/processing_steps.rb +91 -0
- data/features/step_definitions/project_steps.rb +48 -0
- data/features/step_definitions/range_steps.rb +68 -0
- data/features/step_definitions/reading_group_steps.rb +19 -0
- data/features/step_definitions/reading_steps.rb +39 -0
- data/features/step_definitions/repository_steps.rb +61 -0
- data/features/support/env.rb +25 -0
- data/features/support/kalibro_cucumber_helpers.yml.sample +10 -0
- data/kalibro_gatekeeper_client.gemspec +49 -0
- data/lib/kalibro_gatekeeper_client/entities/base_tool.rb +55 -0
- data/lib/kalibro_gatekeeper_client/entities/configuration.rb +34 -0
- data/lib/kalibro_gatekeeper_client/entities/date_metric_result.rb +39 -0
- data/lib/kalibro_gatekeeper_client/entities/date_module_result.rb +39 -0
- data/lib/kalibro_gatekeeper_client/entities/metric.rb +21 -0
- data/lib/kalibro_gatekeeper_client/entities/metric_configuration.rb +76 -0
- data/lib/kalibro_gatekeeper_client/entities/metric_configuration_snapshot.rb +57 -0
- data/lib/kalibro_gatekeeper_client/entities/metric_result.rb +72 -0
- data/lib/kalibro_gatekeeper_client/entities/model.rb +174 -0
- data/lib/kalibro_gatekeeper_client/entities/module.rb +27 -0
- data/lib/kalibro_gatekeeper_client/entities/module_result.rb +75 -0
- data/lib/kalibro_gatekeeper_client/entities/process_time.rb +31 -0
- data/lib/kalibro_gatekeeper_client/entities/processing.rb +113 -0
- data/lib/kalibro_gatekeeper_client/entities/project.rb +35 -0
- data/lib/kalibro_gatekeeper_client/entities/range.rb +100 -0
- data/lib/kalibro_gatekeeper_client/entities/range_snapshot.rb +37 -0
- data/lib/kalibro_gatekeeper_client/entities/reading.rb +67 -0
- data/lib/kalibro_gatekeeper_client/entities/reading_group.rb +44 -0
- data/lib/kalibro_gatekeeper_client/entities/repository.rb +89 -0
- data/lib/kalibro_gatekeeper_client/entities/repository_observer.rb +50 -0
- data/lib/kalibro_gatekeeper_client/entities/stack_trace_element.rb +31 -0
- data/lib/kalibro_gatekeeper_client/entities/throwable.rb +42 -0
- data/lib/kalibro_gatekeeper_client/entities.rb +37 -0
- data/lib/kalibro_gatekeeper_client/errors/record_not_found.rb +22 -0
- data/lib/kalibro_gatekeeper_client/errors/standard.rb +24 -0
- data/lib/kalibro_gatekeeper_client/errors.rb +18 -0
- data/lib/kalibro_gatekeeper_client/helpers/aggregation_options.rb +25 -0
- data/lib/kalibro_gatekeeper_client/helpers/hash_converters.rb +48 -0
- data/lib/kalibro_gatekeeper_client/helpers/request_methods.rb +47 -0
- data/lib/kalibro_gatekeeper_client/helpers/xml_converters.rb +20 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/configuration.rb +39 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/hooks.rb +56 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/scripts/delete_all_kalibro_entries.sh +23 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/scripts/prepare_kalibro_query_file.sh +38 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/scripts/put_kalibro_on_test_mode.sh +39 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers/scripts/return_kalibro_from_test_mode.sh +26 -0
- data/lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers.rb +40 -0
- data/lib/kalibro_gatekeeper_client/version.rb +19 -0
- data/lib/kalibro_gatekeeper_client.rb +61 -0
- data/lib/rake/test_task.rb +57 -0
- data/spec/entities/base_tool_spec.rb +168 -0
- data/spec/entities/configuration_spec.rb +61 -0
- data/spec/entities/date_metric_result_spec.rb +62 -0
- data/spec/entities/date_module_result_spec.rb +61 -0
- data/spec/entities/metric_configuration_snapshot_spec.rb +107 -0
- data/spec/entities/metric_configuration_spec.rb +173 -0
- data/spec/entities/metric_result_spec.rb +188 -0
- data/spec/entities/metric_spec.rb +47 -0
- data/spec/entities/model_spec.rb +322 -0
- data/spec/entities/module_result_spec.rb +163 -0
- data/spec/entities/process_time_spec.rb +33 -0
- data/spec/entities/processing_spec.rb +334 -0
- data/spec/entities/project_spec.rb +68 -0
- data/spec/entities/range_snapshot_spec.rb +50 -0
- data/spec/entities/range_spec.rb +225 -0
- data/spec/entities/reading_group_spec.rb +90 -0
- data/spec/entities/reading_spec.rb +148 -0
- data/spec/entities/repository_observer_spec.rb +123 -0
- data/spec/entities/repository_spec.rb +191 -0
- data/spec/entities/stack_trace_element_spec.rb +26 -0
- data/spec/entities/throwable_spec.rb +51 -0
- data/spec/factories/base_tools.rb +31 -0
- data/spec/factories/configurations.rb +29 -0
- data/spec/factories/date_metric_results.rb +28 -0
- data/spec/factories/date_module_results.rb +22 -0
- data/spec/factories/metric_configurations.rb +28 -0
- data/spec/factories/metric_configurations_snapshot.rb +26 -0
- data/spec/factories/metric_results.rb +24 -0
- data/spec/factories/metrics.rb +35 -0
- data/spec/factories/models.rb +20 -0
- data/spec/factories/module_results.rb +33 -0
- data/spec/factories/modules.rb +22 -0
- data/spec/factories/process_times.rb +27 -0
- data/spec/factories/processings.rb +25 -0
- data/spec/factories/projects.rb +29 -0
- data/spec/factories/ranges.rb +35 -0
- data/spec/factories/ranges_snapshot.rb +26 -0
- data/spec/factories/reading_groups.rb +23 -0
- data/spec/factories/readings.rb +25 -0
- data/spec/factories/repositories.rb +34 -0
- data/spec/factories/repository_observers.rb +24 -0
- data/spec/factories/stack_trace_elements.rb +24 -0
- data/spec/factories/throwables.rb +23 -0
- data/spec/helpers/aggregation_options_spec.rb +31 -0
- data/spec/helpers/hash_converters_spec.rb +111 -0
- data/spec/helpers/xml_converters_spec.rb +64 -0
- data/spec/kalibro_entities_spec.rb +108 -0
- data/spec/savon/fixtures/config.yml +1 -0
- data/spec/savon/fixtures/invalid_config.yml +2 -0
- data/spec/savon/fixtures/project/does_not_exists.xml +1 -0
- data/spec/savon/savon_test_helper.rb +14 -0
- data/spec/spec_helper.rb +56 -0
- metadata +466 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Given(/^I have a project$/) do
|
|
2
|
+
@project = FactoryGirl.build(:project)
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
Given(/^the project name is "(.*?)"$/) do |name|
|
|
6
|
+
@project.name = name
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Given(/^I have a project with name "(.*?)"$/) do |name|
|
|
10
|
+
@project = FactoryGirl.create(:project, {name: name, id: nil})
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When(/^I save the project$/) do
|
|
14
|
+
@project.save
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When(/^I create the project with name "(.*?)"$/) do |name|
|
|
18
|
+
@project = FactoryGirl.create(:project, {name: name, id: nil})
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
When(/^I search a project with the same id of the given project$/) do
|
|
22
|
+
@found_project = KalibroGatekeeperClient::Entities::Project.find(@project.id)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
When(/^I destroy the project with the same id of the given project$/) do
|
|
26
|
+
@found_project = KalibroGatekeeperClient::Entities::Project.find(@project.id)
|
|
27
|
+
@found_project.destroy
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
When(/^I ask for all the projects$/) do
|
|
31
|
+
@all_projects = KalibroGatekeeperClient::Entities::Project.all
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Then(/^the project should exist$/) do
|
|
35
|
+
KalibroGatekeeperClient::Entities::Project.exists?(@project.id)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Then(/^it should return the same project as the given one$/) do
|
|
39
|
+
@found_project == @project
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Then(/^the project should not exist$/) do
|
|
43
|
+
!KalibroGatekeeperClient::Entities::Project.exists?(@found_project.id)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Then(/^I should get a list with the given project$/) do
|
|
47
|
+
@all_projects.include?(@project)
|
|
48
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Given(/^I have a range within the given reading$/) do
|
|
2
|
+
@range = FactoryGirl.build(:range, {id: nil, reading_id: @reading.id, metric_configuration_id: @metric_configuration.id})
|
|
3
|
+
@range.save
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
Given(/^I have an unsaved range$/) do
|
|
7
|
+
@range = FactoryGirl.build(:range, {id: nil})
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
Given(/^I have an unsaved range within the given reading$/) do
|
|
11
|
+
@range = FactoryGirl.build(:range, {id: nil, reading_id: @reading.id, metric_configuration_id: @metric_configuration.id})
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
When(/^I ask to save the given range$/) do
|
|
15
|
+
@range.save
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When(/^I ask to save the given range with an inexistent metric configuration$/) do
|
|
19
|
+
@range.metric_configuration_id = rand(Time.now.to_i)
|
|
20
|
+
@range.save
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
When(/^I ask ranges of the given metric configuration$/) do
|
|
24
|
+
@response = KalibroGatekeeperClient::Entities::Range.ranges_of @metric_configuration.id
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
When(/^I try to save a range with an inexistent metric configuration$/) do
|
|
28
|
+
@range = FactoryGirl.build(:range, {id: nil, reading_id: @reading.id})
|
|
29
|
+
@range.metric_configuration_id = rand(Time.now.to_i)
|
|
30
|
+
@range.save
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
When(/^I ask for all the ranges$/) do
|
|
34
|
+
@response = KalibroGatekeeperClient::Entities::Range.all
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
When(/^I search a range with the same id of the given range$/) do
|
|
38
|
+
@found_range = KalibroGatekeeperClient::Entities::Range.find(@range.id.to_i)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
Then(/^I should get an empty list$/) do
|
|
42
|
+
@response.should eq([])
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
Then(/^I should not get an empty list$/) do
|
|
46
|
+
@response.should_not eq([])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
Then(/^I should get a list with the given range$/) do
|
|
50
|
+
@response.size.should eq(1)
|
|
51
|
+
@response.first.comments.should eq(@range.comments)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
Then(/^I should get an error in range kalibro errors attribute$/) do
|
|
55
|
+
@range.kalibro_errors.should_not eq([])
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
Then(/^the id of the given range should be set$/) do
|
|
59
|
+
@range.id.should_not eq(0)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
Then(/^it should return the same range as the given one$/) do
|
|
63
|
+
@found_range == @range
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
Then(/^the range should exist$/) do
|
|
67
|
+
KalibroGatekeeperClient::Entities::Range.exists?(@range.id)
|
|
68
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Given(/^I have a reading group with name "(.*?)"$/) do |name|
|
|
2
|
+
@reading_group = FactoryGirl.create(:reading_group, {id: nil, name: name})
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When(/^I ask for all the reading groups$/) do
|
|
6
|
+
@all_reading_groups = KalibroGatekeeperClient::Entities::ReadingGroup.all
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
When(/^I call the reading_group_of method for the given MetricConfiguration$/) do
|
|
10
|
+
@metric_configuration_reading_group = KalibroGatekeeperClient::Entities::ReadingGroup.reading_group_of(@metric_configuration.id)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Then(/^I should get a list with the given reading group$/) do
|
|
14
|
+
@all_reading_groups.include?(@reading_group)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Then(/^I should get the given RedingGroup$/) do
|
|
18
|
+
@metric_configuration_reading_group.should eq(@reading_group)
|
|
19
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
Given(/^the given reading group has the following readings:$/) do |table|
|
|
2
|
+
hash = table.hashes.first
|
|
3
|
+
hash[:group_id] = @reading_group.id
|
|
4
|
+
hash[:id] = nil
|
|
5
|
+
|
|
6
|
+
@reading = FactoryGirl.create(:reading, hash)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
Given(/^I have a reading within the given reading group$/) do
|
|
10
|
+
@reading = FactoryGirl.create(:reading, {id: nil, group_id: @reading_group.id})
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
When(/^I ask for all the readings$/) do
|
|
14
|
+
@all_readings = KalibroGatekeeperClient::Entities::Reading.all
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When(/^I ask for a reading with the same id of the given reading$/) do
|
|
18
|
+
@found_reading = KalibroGatekeeperClient::Entities::Reading.find @reading.id
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
When(/^I ask for the readings of the given reading group$/) do
|
|
22
|
+
@found_readings = KalibroGatekeeperClient::Entities::Reading.readings_of @reading_group.id
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
When(/^I ask to check if the given reading exists$/) do
|
|
26
|
+
@response = KalibroGatekeeperClient::Entities::Reading.exists?(@reading.id)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
Then(/^I should get the given reading$/) do
|
|
30
|
+
@found_reading == @reading
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Then(/^I should get a list with the given reading$/) do
|
|
34
|
+
@found_readings.first == @reading
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
Then(/^the response should contain the given reading$/) do
|
|
38
|
+
@all_readings.first == @reading
|
|
39
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
Given(/^the given project has the following Repositories:$/) do |table|
|
|
2
|
+
hash = table.hashes.first
|
|
3
|
+
hash[:project_id] = @project.id
|
|
4
|
+
hash[:configuration_id] = @configuration.id
|
|
5
|
+
hash[:id] = nil
|
|
6
|
+
|
|
7
|
+
@repository = FactoryGirl.create(:repository, hash)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
When(/^I call the cancel_process method for the given repository$/) do
|
|
11
|
+
@response = @repository.cancel_processing_of_repository
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
When(/^I ask for repositories from the given project$/) do
|
|
15
|
+
@response = KalibroGatekeeperClient::Entities::Repository.repositories_of(@project.id)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
When(/^I call the process method for the given repository$/) do
|
|
19
|
+
@response = @repository.process
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
When(/^I list types$/) do
|
|
23
|
+
@repository_types = KalibroGatekeeperClient::Entities::Repository.repository_types
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
When(/^I ask for all the repositories$/) do
|
|
27
|
+
@response = KalibroGatekeeperClient::Entities::Repository.all
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
When(/^I ask to find the given repository$/) do
|
|
31
|
+
@response = KalibroGatekeeperClient::Entities::Repository.find(@repository.id)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
When(/^I ask to check if the given repository exists$/) do
|
|
35
|
+
@response = KalibroGatekeeperClient::Entities::Repository.exists?(@repository.id)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Then(/^I should get success$/) do
|
|
39
|
+
@response == true
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Then(/^I should get a list with the given repository$/) do
|
|
43
|
+
@response.should include(@repository)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
Then(/^I should get an array of types$/) do
|
|
47
|
+
@repository_types.is_a?(Array)
|
|
48
|
+
@repository_types.count >= 1
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
Then(/^I should get the given repository$/) do
|
|
52
|
+
@response.should eq(@repository)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
Then(/^the response should contain the given repository$/) do
|
|
56
|
+
@response.first.project_id.should eq(@project.id)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
Then(/^the repositories should contain the project id$/) do
|
|
60
|
+
@response.first.project_id.should eq(@project.id)
|
|
61
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# SimpleCov for test coverage report
|
|
2
|
+
require 'simplecov'
|
|
3
|
+
SimpleCov.start do
|
|
4
|
+
add_group "Entities", "lib/kalibro_gatekeeper_client/entities"
|
|
5
|
+
add_group "Errors", "lib/kalibro_gatekeeper_client/errors"
|
|
6
|
+
add_group "Helpers", "lib/kalibro_gatekeeper_client/helpers"
|
|
7
|
+
add_group "Cucumber Helpers", "lib/kalibro_gatekeeper_client/kalibro_cucumber_helpers"
|
|
8
|
+
|
|
9
|
+
add_filter "/spec/"
|
|
10
|
+
add_filter "/features/"
|
|
11
|
+
|
|
12
|
+
coverage_dir 'coverage/cucumber'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Kalibro hooks
|
|
16
|
+
require 'kalibro_gatekeeper_client/kalibro_cucumber_helpers/hooks'
|
|
17
|
+
|
|
18
|
+
# Configuring the right hooks
|
|
19
|
+
KalibroGatekeeperClient::KalibroCucumberHelpers.configure_from_yml("#{__dir__}/kalibro_cucumber_helpers.yml")
|
|
20
|
+
|
|
21
|
+
# The gem itself
|
|
22
|
+
require 'kalibro_gatekeeper_client'
|
|
23
|
+
|
|
24
|
+
require 'factory_girl'
|
|
25
|
+
FactoryGirl.find_definitions
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
kalibro_cucumber_helpers:
|
|
2
|
+
database: "kalibro_test"
|
|
3
|
+
user: "kalibro"
|
|
4
|
+
password: "kalibro"
|
|
5
|
+
psql_file_path: "/tmp/PostgreSQL.sql"
|
|
6
|
+
query_file_path: "/tmp/query"
|
|
7
|
+
kalibro_home: "/usr/share/tomcat6/.kalibro"
|
|
8
|
+
tomcat_user: "tomcat6"
|
|
9
|
+
tomcat_group: "tomcat6"
|
|
10
|
+
tomcat_restart_command: "sudo\\ service\\ tomcat6\\ restart"
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
# coding: utf-8
|
|
18
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
19
|
+
|
|
20
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
21
|
+
require 'kalibro_gatekeeper_client/version'
|
|
22
|
+
|
|
23
|
+
Gem::Specification.new do |spec|
|
|
24
|
+
spec.name = "kalibro_gatekeeper_client"
|
|
25
|
+
spec.version = KalibroGatekeeperClient::VERSION
|
|
26
|
+
spec.authors = ["Diego Araújo Martinez", "Fellipe Souto", "Rafael Reggiani Manzo", "Renan Fichberg"]
|
|
27
|
+
spec.email = ["diegamc90@gmail.com", "fllsouto@gmail.com", "rr.manzo@gmail.com", "rfichberg@gmail.com"]
|
|
28
|
+
spec.description = "KalibroGatekeeperClient is a Ruby gem intended to be an interface for KalibroGatekeeper WebService."
|
|
29
|
+
spec.summary = "KalibroGatekeeperClient is a communication interface with the KalibroGateKeeper service."
|
|
30
|
+
spec.homepage = "https://github.com/mezuro/kalibro_gatekeeper_client"
|
|
31
|
+
spec.license = "LGPLv3"
|
|
32
|
+
|
|
33
|
+
spec.files = `git ls-files`.split($/)
|
|
34
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
35
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
36
|
+
spec.require_paths = ["lib"]
|
|
37
|
+
|
|
38
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
|
39
|
+
spec.add_development_dependency "rake"
|
|
40
|
+
spec.add_development_dependency "rspec", "~> 2.14"
|
|
41
|
+
spec.add_development_dependency "cucumber", "~> 1.3.11"
|
|
42
|
+
spec.add_development_dependency "mocha", "~> 1.0.0"
|
|
43
|
+
spec.add_development_dependency "simplecov"
|
|
44
|
+
spec.add_development_dependency "factory_girl", "~> 4.4.0"
|
|
45
|
+
spec.add_development_dependency 'coveralls'
|
|
46
|
+
|
|
47
|
+
spec.add_dependency "activesupport", ">= 2.2.1" #version in which underscore was introduced
|
|
48
|
+
spec.add_dependency "faraday_middleware", "~> 0.9.0"
|
|
49
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class BaseTool < Model
|
|
22
|
+
attr_accessor :name, :description, :collector_class_name, :supported_metric
|
|
23
|
+
|
|
24
|
+
def supported_metric=(value)
|
|
25
|
+
@supported_metric = KalibroGatekeeperClient::Entities::Metric.to_objects_array value
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def supported_metrics
|
|
29
|
+
@supported_metric
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def metric(name)
|
|
33
|
+
supported_metrics.find {|metric| metric.name == name}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def self.find_by_name(base_tool_name)
|
|
37
|
+
begin
|
|
38
|
+
new request(:get, {name: base_tool_name})
|
|
39
|
+
rescue
|
|
40
|
+
raise KalibroGatekeeperClient::Errors::RecordNotFound
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.all_names
|
|
45
|
+
# FIXME: for some reason, the JSON is not getting automatically parsed
|
|
46
|
+
JSON.parse(request(:all_names, {}, :get))['base_tool_names'].to_a
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.all
|
|
50
|
+
base_tools = all_names
|
|
51
|
+
base_tools.map{ |name| find_by_name(name) }
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class Configuration < Model
|
|
22
|
+
attr_accessor :id, :name, :description
|
|
23
|
+
|
|
24
|
+
def id=(value)
|
|
25
|
+
@id = value.to_i
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.all
|
|
29
|
+
# FIXME: for some reason, the JSON is not getting automatically parsed
|
|
30
|
+
create_objects_array_from_hash(JSON.parse(request(:all, {}, :get))['configurations'])
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class DateMetricResult < Model
|
|
22
|
+
|
|
23
|
+
attr_accessor :date, :metric_result
|
|
24
|
+
|
|
25
|
+
def date=(value)
|
|
26
|
+
@date = value.is_a?(String) ? DateTime.parse(value) : value
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def metric_result=(value)
|
|
30
|
+
@metric_result = KalibroGatekeeperClient::Entities::MetricResult.to_object value
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def result
|
|
34
|
+
@metric_result.value
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class DateModuleResult < Model
|
|
22
|
+
|
|
23
|
+
attr_accessor :date, :module_result
|
|
24
|
+
|
|
25
|
+
def date=(value)
|
|
26
|
+
@date = value.is_a?(String) ? DateTime.parse(value) : value
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def module_result=(value)
|
|
30
|
+
@module_result = KalibroGatekeeperClient::Entities::ModuleResult.to_object value
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def result
|
|
34
|
+
@module_result.grade
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module KalibroGatekeeperClient
|
|
2
|
+
module Entities
|
|
3
|
+
class Metric < Model
|
|
4
|
+
|
|
5
|
+
attr_accessor :name, :compound, :scope, :description, :script, :language
|
|
6
|
+
|
|
7
|
+
def languages
|
|
8
|
+
@language
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def languages=(languages)
|
|
12
|
+
@language = languages
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def language=(value)
|
|
16
|
+
@language = self.class.to_objects_array value
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class MetricConfiguration < Model
|
|
22
|
+
|
|
23
|
+
attr_accessor :id, :code, :metric, :base_tool_name, :weight, :aggregation_form, :reading_group_id, :configuration_id
|
|
24
|
+
|
|
25
|
+
def id=(value)
|
|
26
|
+
@id = value.to_i
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def reading_group_id=(value)
|
|
30
|
+
@reading_group_id = value.to_i
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def metric=(value)
|
|
34
|
+
@metric = KalibroGatekeeperClient::Entities::Metric.to_object(value)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def weight=(value)
|
|
38
|
+
@weight = value.to_f
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def update_attributes(attributes={})
|
|
42
|
+
attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
|
|
43
|
+
save
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def to_hash
|
|
47
|
+
super :except => [:configuration_id]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.metric_configurations_of(configuration_id)
|
|
51
|
+
create_objects_array_from_hash request(:of, {:configuration_id => configuration_id})['metric_configurations']
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def self.find(id)
|
|
55
|
+
#TODO: on future versions of Kalibro this begin/rescue will be unnecessary
|
|
56
|
+
metric_configuration = request(:get, {id: id})
|
|
57
|
+
raise KalibroGatekeeperClient::Errors::RecordNotFound unless metric_configuration['error'].nil?
|
|
58
|
+
return new(metric_configuration)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def self.exists?(id)
|
|
62
|
+
begin
|
|
63
|
+
return true unless find(id).nil?
|
|
64
|
+
rescue KalibroGatekeeperClient::Errors::RecordNotFound
|
|
65
|
+
return false
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
private
|
|
70
|
+
|
|
71
|
+
def save_params
|
|
72
|
+
{:metric_configuration => self.to_hash, :configuration_id => self.configuration_id}
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# This file is part of KalibroGatekeeperClient
|
|
2
|
+
# Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
|
|
17
|
+
require "kalibro_gatekeeper_client/entities/model"
|
|
18
|
+
|
|
19
|
+
module KalibroGatekeeperClient
|
|
20
|
+
module Entities
|
|
21
|
+
class MetricConfigurationSnapshot < Model
|
|
22
|
+
attr_accessor :code, :weight, :aggregation_form, :metric, :base_tool_name, :range
|
|
23
|
+
|
|
24
|
+
def weight=(value)
|
|
25
|
+
@weight = value.to_f
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def metric=(value)
|
|
29
|
+
if value.kind_of?(Hash)
|
|
30
|
+
@metric = KalibroGatekeeperClient::Entities::Metric.to_object(value)
|
|
31
|
+
else
|
|
32
|
+
@metric = value
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def range=(value)
|
|
37
|
+
value = [value] unless value.kind_of?(Array)
|
|
38
|
+
@range = []
|
|
39
|
+
|
|
40
|
+
value.each do |range_snapshot|
|
|
41
|
+
@range << KalibroGatekeeperClient::Entities::RangeSnapshot.to_object(range_snapshot)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def range_snapshot
|
|
46
|
+
range
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def to_hash
|
|
50
|
+
hash = super
|
|
51
|
+
hash[:attributes!][:range] = {'xmlns:xsi'=> 'http://www.w3.org/2001/XMLSchema-instance',
|
|
52
|
+
'xsi:type' => 'kalibro:rangeSnapshotXml' }
|
|
53
|
+
hash
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|