kalibro_client 0.0.1 → 0.0.2
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 +4 -4
- data/.travis.yml +1 -1
- data/features/kalibro_configuration/all.feature +6 -6
- data/features/kalibro_configuration/creation.feature +5 -5
- data/features/kalibro_configuration/destroy.feature +6 -6
- data/features/kalibro_configuration/metric_configurations.feature +4 -4
- data/features/{range → kalibro_range}/destroy.feature +2 -2
- data/features/{range → kalibro_range}/exists.feature +2 -2
- data/features/{range → kalibro_range}/find.feature +2 -2
- data/features/{range → kalibro_range}/ranges_of.feature +4 -4
- data/features/{range → kalibro_range}/save.feature +2 -2
- data/features/kalibro_range/update.feature +54 -0
- data/features/metric_configuration/creation.feature +2 -2
- data/features/metric_configuration/destroy.feature +2 -2
- data/features/metric_configuration/find.feature +2 -2
- data/features/metric_configuration/metric_configurations_of.feature +8 -8
- data/features/metric_result/descendant_values.feature +2 -2
- data/features/metric_result/history_of.feature +2 -2
- data/features/metric_result/metric_results_of.feature +2 -2
- data/features/module_result/children.feature +2 -2
- data/features/module_result/find.feature +2 -2
- data/features/module_result/history_of.feature +2 -2
- data/features/processing/first_processing_after.feature +2 -2
- data/features/processing/first_processing_of.feature +2 -2
- data/features/processing/has_processing.feature +2 -2
- data/features/processing/has_processing_after.feature +2 -2
- data/features/processing/has_processing_before.feature +2 -2
- data/features/processing/has_ready_processing.feature +2 -2
- data/features/processing/last_processing_before.feature +2 -2
- data/features/processing/last_processing_of.feature +2 -2
- data/features/processing/last_processing_state_of.feature +2 -2
- data/features/processing/last_ready_processing_of.feature +2 -2
- data/features/processing/processing_of.feature +4 -4
- data/features/processing/processing_with_date_of.feature +4 -4
- data/features/project/update.feature +13 -0
- data/features/repository/all.feature +1 -1
- data/features/repository/cancel_processing.feature +1 -1
- data/features/repository/destroy.feature +1 -1
- data/features/repository/exists.feature +1 -1
- data/features/repository/find.feature +1 -1
- data/features/repository/of.feature +1 -1
- data/features/repository/process.feature +2 -2
- data/features/step_definitions/kalibro_configuration_steps.rb +40 -0
- data/features/step_definitions/metric_configuration_steps.rb +9 -9
- data/features/step_definitions/module_result_steps.rb +1 -1
- data/features/step_definitions/project_steps.rb +12 -0
- data/features/step_definitions/range_steps.rb +25 -1
- data/features/step_definitions/reading_steps.rb +1 -1
- data/features/step_definitions/repository_steps.rb +1 -1
- data/lib/kalibro_client/entities/base.rb +53 -19
- data/lib/kalibro_client/entities/configurations/base.rb +4 -1
- data/lib/kalibro_client/entities/configurations/kalibro_configuration.rb +1 -1
- data/lib/kalibro_client/entities/configurations/kalibro_range.rb +8 -8
- data/lib/kalibro_client/entities/configurations/metric_configuration.rb +7 -5
- data/lib/kalibro_client/entities/configurations/reading.rb +4 -4
- data/lib/kalibro_client/entities/configurations/reading_group.rb +4 -0
- data/lib/kalibro_client/entities/processor/base.rb +2 -1
- data/lib/kalibro_client/entities/processor/kalibro_module.rb +1 -0
- data/lib/kalibro_client/entities/processor/metric_collector_details.rb +7 -2
- data/lib/kalibro_client/entities/processor/metric_result.rb +9 -10
- data/lib/kalibro_client/entities/processor/module_result.rb +10 -2
- data/lib/kalibro_client/entities/processor/processing.rb +26 -10
- data/lib/kalibro_client/entities/processor/project.rb +4 -0
- data/lib/kalibro_client/entities/processor/repository.rb +63 -4
- data/lib/kalibro_client/helpers/date_attributes.rb +11 -0
- data/lib/kalibro_client/helpers/request_methods.rb +9 -0
- data/lib/kalibro_client/version.rb +1 -1
- data/spec/entities/base_spec.rb +106 -24
- data/spec/entities/configurations/kalibro_configuration_spec.rb +8 -8
- data/spec/entities/configurations/kalibro_range_spec.rb +18 -24
- data/spec/entities/configurations/metric_configuration_spec.rb +22 -23
- data/spec/entities/configurations/reading_group_spec.rb +27 -0
- data/spec/entities/configurations/reading_spec.rb +15 -7
- data/spec/entities/processor/metric_collector_details_spec.rb +19 -7
- data/spec/entities/processor/metric_result_spec.rb +40 -54
- data/spec/entities/processor/module_result_spec.rb +52 -3
- data/spec/entities/processor/processing_spec.rb +35 -92
- data/spec/entities/processor/project_spec.rb +52 -5
- data/spec/entities/processor/repository_spec.rb +255 -5
- data/spec/factories/kalibro_configurations.rb +3 -3
- data/spec/factories/kalibro_ranges.rb +9 -3
- data/spec/factories/metrics.rb +1 -1
- data/spec/factories/readings.rb +1 -1
- data/spec/factories/repositories.rb +1 -1
- data/spec/helpers/date_attributes_spec.rb +30 -0
- metadata +21 -14
- data/features/step_definitions/configuration_steps.rb +0 -40
@@ -6,9 +6,9 @@ Feature: Last processing before
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after starting to process
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Last processing of
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after starting to process
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Last processing state of
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after starting to process
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Last ready processing of
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after with ready processing
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Processing of
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after starting to process
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -20,9 +20,9 @@ Feature: Processing of
|
|
20
20
|
@kalibro_processor_restart @kalibro_configuration_restart
|
21
21
|
Scenario: With one repository just after with ready processing
|
22
22
|
Given I have a project with name "Kalibro"
|
23
|
-
And I have a configuration with name "Java"
|
23
|
+
And I have a kalibro configuration with name "Java"
|
24
24
|
And I have a reading group with name "Group"
|
25
|
-
And I have a loc configuration within the given configuration
|
25
|
+
And I have a loc configuration within the given kalibro configuration
|
26
26
|
And the given project has the following Repositories:
|
27
27
|
| name | scm_type | address |
|
28
28
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Processing with date of
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository just after starting to process and tomorrow's date
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -20,9 +20,9 @@ Feature: Processing with date of
|
|
20
20
|
@kalibro_processor_restart @kalibro_configuration_restart
|
21
21
|
Scenario: With one repository just after starting to process and yesterday's date
|
22
22
|
Given I have a project with name "Kalibro"
|
23
|
-
And I have a configuration with name "Java"
|
23
|
+
And I have a kalibro configuration with name "Java"
|
24
24
|
And I have a reading group with name "Group"
|
25
|
-
And I have a loc configuration within the given configuration
|
25
|
+
And I have a loc configuration within the given kalibro configuration
|
26
26
|
And the given project has the following Repositories:
|
27
27
|
| name | scm_type | address |
|
28
28
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Update
|
2
|
+
In order to be able to have projects
|
3
|
+
As a developer
|
4
|
+
I want to update projects
|
5
|
+
|
6
|
+
@kalibro_processor_restart
|
7
|
+
Scenario: Setting and resetting the name of a valid project (ensures that update is getting called instead of create)
|
8
|
+
Given I have a project with name "Kalibro"
|
9
|
+
And I set the project name to "QtCalculator"
|
10
|
+
And I save the given project
|
11
|
+
And I set the project name to "Kalibro"
|
12
|
+
And I save the given project
|
13
|
+
Then I should get true as the response
|
@@ -6,7 +6,7 @@ Feature: Repositories listing
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With existing project repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,7 +6,7 @@ Feature: Process
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,7 +6,7 @@ Feature: Repositories destroying
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With existing repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,7 +6,7 @@ Feature: Repositories listing
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With existing project repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,7 +6,7 @@ Feature: Repositories listing
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With existing project repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,7 +6,7 @@ Feature: Repositories listing
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With existing project repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And the given project has the following Repositories:
|
11
11
|
| name | scm_type | address |
|
12
12
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -6,9 +6,9 @@ Feature: Process
|
|
6
6
|
@kalibro_processor_restart @kalibro_configuration_restart
|
7
7
|
Scenario: With one repository
|
8
8
|
Given I have a project with name "Kalibro"
|
9
|
-
And I have a configuration with name "Java"
|
9
|
+
And I have a kalibro configuration with name "Java"
|
10
10
|
And I have a reading group with name "Group"
|
11
|
-
And I have a loc configuration within the given configuration
|
11
|
+
And I have a loc configuration within the given kalibro configuration
|
12
12
|
And the given project has the following Repositories:
|
13
13
|
| name | scm_type | address |
|
14
14
|
| Kalibro | GIT | https://git.gitorious.org/sbking/sbking.git |
|
@@ -0,0 +1,40 @@
|
|
1
|
+
Given(/^I have a kalibro configuration with name "(.*?)"$/) do |name|
|
2
|
+
@kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {name: name})
|
3
|
+
end
|
4
|
+
|
5
|
+
When(/^I get all the kalibro configurations$/) do
|
6
|
+
@all_kalibro_configurations = KalibroClient::Entities::Configurations::KalibroConfiguration.all
|
7
|
+
end
|
8
|
+
|
9
|
+
When(/^I create the kalibro configuration with name "(.*?)"$/) do |name|
|
10
|
+
@kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {name: name})
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^I should get a list with the given kalibro configuration$/) do
|
14
|
+
expect(@all_kalibro_configurations.include?(@kalibro_configuration)).to be_truthy
|
15
|
+
end
|
16
|
+
|
17
|
+
Then(/^the kalibro configuration should exist$/) do
|
18
|
+
expect(KalibroClient::Entities::Configurations::KalibroConfiguration.exists?(@kalibro_configuration.id)).to be_truthy
|
19
|
+
end
|
20
|
+
|
21
|
+
When(/^I destroy the kalibro configuration$/) do
|
22
|
+
@kalibro_configuration.destroy
|
23
|
+
end
|
24
|
+
|
25
|
+
Then(/^the kalibro configuration should no longer exist$/) do
|
26
|
+
expect(KalibroClient::Entities::Configurations::KalibroConfiguration.exists?(@kalibro_configuration.id)).to be_falsey
|
27
|
+
end
|
28
|
+
|
29
|
+
Given(/^the kalibro configuration has a metric configuration$/) do
|
30
|
+
@metric_configuration = FactoryGirl.create(:metric_configuration, kalibro_configuration_id: @kalibro_configuration.id)
|
31
|
+
end
|
32
|
+
|
33
|
+
When(/^I list all the metric configurations of the kalibro configuration$/) do
|
34
|
+
@metric_configurations = @kalibro_configuration.metric_configurations
|
35
|
+
end
|
36
|
+
|
37
|
+
Then(/^I should get a list with the given metric configuration$/) do
|
38
|
+
expect(@metric_configurations.include?(@metric_configuration)).to be_truthy
|
39
|
+
end
|
40
|
+
|
@@ -1,21 +1,21 @@
|
|
1
|
-
Given(/^I have a metric configuration within the given configuration$/) do
|
1
|
+
Given(/^I have a metric configuration within the given kalibro configuration$/) do
|
2
2
|
@metric_configuration = FactoryGirl.create(:metric_configuration,
|
3
3
|
{reading_group_id: @reading_group.id,
|
4
|
-
kalibro_configuration_id: @
|
4
|
+
kalibro_configuration_id: @kalibro_configuration.id})
|
5
5
|
end
|
6
6
|
|
7
|
-
Given(/^I have a metric configuration within the given configuration with the given metric$/) do
|
7
|
+
Given(/^I have a metric configuration within the given kalibro configuration with the given metric$/) do
|
8
8
|
@metric_configuration = FactoryGirl.create(:metric_configuration,
|
9
9
|
{metric: @metric,
|
10
10
|
reading_group_id: @reading_group.id,
|
11
|
-
kalibro_configuration_id: @
|
11
|
+
kalibro_configuration_id: @kalibro_configuration.id})
|
12
12
|
end
|
13
13
|
|
14
|
-
Given(/^I have a loc configuration within the given configuration$/) do
|
14
|
+
Given(/^I have a loc configuration within the given kalibro configuration$/) do
|
15
15
|
@metric_configuration = FactoryGirl.create(:metric_configuration,
|
16
16
|
{metric: FactoryGirl.build(:loc),
|
17
17
|
reading_group_id: @reading_group.id,
|
18
|
-
kalibro_configuration_id: @
|
18
|
+
kalibro_configuration_id: @kalibro_configuration.id})
|
19
19
|
end
|
20
20
|
|
21
21
|
When(/^I search a metric configuration with the same id of the given metric configuration$/) do
|
@@ -32,8 +32,8 @@ When(/^I search an inexistent metric configuration$/) do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
When(/^I request all metric configurations of the given configuration$/) do
|
36
|
-
@metric_configurations = KalibroClient::Entities::Configurations::MetricConfiguration.metric_configurations_of(@
|
35
|
+
When(/^I request all metric configurations of the given kalibro configuration$/) do
|
36
|
+
@metric_configurations = KalibroClient::Entities::Configurations::MetricConfiguration.metric_configurations_of(@kalibro_configuration.id)
|
37
37
|
end
|
38
38
|
|
39
39
|
Then(/^it should return the same metric configuration as the given one$/) do
|
@@ -53,7 +53,7 @@ When(/^I destroy the metric configuration$/) do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
Then(/^the metric configuration should no longer exist$/) do
|
56
|
-
expect { KalibroClient::Entities::Configurations::MetricConfiguration.find(@metric_configuration.id)
|
56
|
+
expect { KalibroClient::Entities::Configurations::MetricConfiguration.find(@metric_configuration.id)}.to raise_error(KalibroClient::Errors::RecordNotFound)
|
57
57
|
end
|
58
58
|
|
59
59
|
Then(/^the metric configuration should exist$/) do
|
@@ -30,7 +30,7 @@ Given(/^I get the module result of the processing$/) do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
When(/^I ask for the history of the given module result$/) do
|
33
|
-
@history = KalibroClient::Entities::Processor::ModuleResult.history_of(@module_result.id)
|
33
|
+
@history = KalibroClient::Entities::Processor::ModuleResult.history_of(@module_result, @repository.id)
|
34
34
|
end
|
35
35
|
|
36
36
|
Then(/^I should get a list with date module results$/) do
|
@@ -10,6 +10,10 @@ Given(/^I have a project with name "(.*?)"$/) do |name|
|
|
10
10
|
@project = FactoryGirl.create(:project, {name: name})
|
11
11
|
end
|
12
12
|
|
13
|
+
Given(/^I set the project name to "(.*?)"$/) do |name|
|
14
|
+
@project.name = name
|
15
|
+
end
|
16
|
+
|
13
17
|
When(/^I save the project$/) do
|
14
18
|
@project.save
|
15
19
|
end
|
@@ -31,6 +35,10 @@ When(/^I ask for all the projects$/) do
|
|
31
35
|
@all_projects = KalibroClient::Entities::Processor::Project.all
|
32
36
|
end
|
33
37
|
|
38
|
+
When(/^I save the given project$/) do
|
39
|
+
@response = @project.save
|
40
|
+
end
|
41
|
+
|
34
42
|
Then(/^the project should exist$/) do
|
35
43
|
expect(KalibroClient::Entities::Processor::Project.exists?(@project.id)).to be_truthy
|
36
44
|
end
|
@@ -46,3 +54,7 @@ end
|
|
46
54
|
Then(/^I should get a list with the given project$/) do
|
47
55
|
expect(@all_projects).to include(@project)
|
48
56
|
end
|
57
|
+
|
58
|
+
Then(/^I should get true as the response$/) do
|
59
|
+
expect(@response).to be_truthy
|
60
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Given(/^I have a range within the given reading$/) do
|
2
|
-
@range = FactoryGirl.create(:range, {reading_id: @reading.id, metric_configuration_id: @metric_configuration.id})
|
2
|
+
@range = FactoryGirl.create(:range, {reading_id: @reading.id, metric_configuration_id: @metric_configuration.id, beginning: 1.1, end: 5.1})
|
3
3
|
end
|
4
4
|
|
5
5
|
Given(/^I have an unsaved range$/) do
|
@@ -70,3 +70,27 @@ Then(/^the range should no longer exist$/) do
|
|
70
70
|
expect(KalibroClient::Entities::Configurations::KalibroRange.exists?(@range.id)).to be_falsey
|
71
71
|
end
|
72
72
|
|
73
|
+
When(/^I change the "(.*?)" to "(.*?)"$/) do |attribute, value|
|
74
|
+
@range.send("#{attribute}=", value)
|
75
|
+
end
|
76
|
+
|
77
|
+
When(/^I ask to update the given range$/) do
|
78
|
+
@range.update
|
79
|
+
end
|
80
|
+
|
81
|
+
Then(/^I should not receive errors$/) do
|
82
|
+
expect(@range.kalibro_errors).to be_empty
|
83
|
+
end
|
84
|
+
|
85
|
+
Then(/^I should get the error "(.*?)"$/) do |message|
|
86
|
+
expect(@range.kalibro_errors).to include(message)
|
87
|
+
end
|
88
|
+
|
89
|
+
Given(/^I have another range within the given reading$/) do
|
90
|
+
@another_range = FactoryGirl.create(:another_range, reading_id: @reading.id, metric_configuration_id: @metric_configuration.id)
|
91
|
+
end
|
92
|
+
|
93
|
+
When(/^I change the "(.*?)" of the other range to "(.*?)"$/) do |attribute, value|
|
94
|
+
@another_range.send("#{attribute}=", value)
|
95
|
+
end
|
96
|
+
|
@@ -6,7 +6,7 @@ Given(/^the given reading group has the following readings:$/) do |table|
|
|
6
6
|
end
|
7
7
|
|
8
8
|
Given(/^I have a reading within the given reading group$/) do
|
9
|
-
@reading = FactoryGirl.create(:reading,
|
9
|
+
@reading = FactoryGirl.create(:reading, reading_group_id: @reading_group.id, grade: 10.5)
|
10
10
|
end
|
11
11
|
|
12
12
|
When(/^I ask for all the readings$/) do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Given(/^the given project has the following Repositories:$/) do |table|
|
2
2
|
hash = table.hashes.first
|
3
3
|
hash[:project_id] = @project.id
|
4
|
-
hash[:
|
4
|
+
hash[:kalibro_configuration_id] = @kalibro_configuration.id
|
5
5
|
|
6
6
|
@repository = FactoryGirl.create(:repository, hash)
|
7
7
|
end
|
@@ -21,17 +21,19 @@ require 'kalibro_client/helpers/request_methods'
|
|
21
21
|
module KalibroClient
|
22
22
|
module Entities
|
23
23
|
class Base
|
24
|
-
attr_accessor :kalibro_errors
|
24
|
+
attr_accessor :kalibro_errors, :persisted
|
25
25
|
|
26
|
-
def initialize(attributes={})
|
26
|
+
def initialize(attributes={}, persisted=false)
|
27
27
|
attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
|
28
28
|
@kalibro_errors = []
|
29
|
+
@persisted = persisted
|
29
30
|
end
|
30
31
|
|
31
32
|
def to_hash(options={})
|
32
33
|
hash = Hash.new
|
33
34
|
excepts = options[:except].nil? ? [] : options[:except]
|
34
35
|
excepts << "kalibro_errors"
|
36
|
+
excepts << "persisted"
|
35
37
|
fields.each do |field|
|
36
38
|
hash = field_to_hash(field).merge(hash) if !excepts.include?(field)
|
37
39
|
end
|
@@ -52,7 +54,7 @@ module KalibroClient
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def self.to_object value
|
55
|
-
value.kind_of?(Hash) ? new(value) : value
|
57
|
+
value.kind_of?(Hash) ? new(value, true) : value
|
56
58
|
end
|
57
59
|
|
58
60
|
def self.to_objects_array value
|
@@ -61,17 +63,26 @@ module KalibroClient
|
|
61
63
|
end
|
62
64
|
|
63
65
|
def save
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
66
|
+
if persisted?
|
67
|
+
self.update
|
68
|
+
else
|
69
|
+
begin
|
70
|
+
response = self.class.request(save_action, save_params, :post, save_prefix)
|
71
|
+
|
72
|
+
if response["errors"].nil?
|
73
|
+
self.id = response[instance_class_name]["id"]
|
74
|
+
self.created_at = response[instance_class_name]["created_at"] unless response[instance_class_name]["created_at"].nil?
|
75
|
+
self.updated_at = response[instance_class_name]["updated_at"] unless response[instance_class_name]["updated_at"].nil?
|
76
|
+
@persisted = true
|
77
|
+
true
|
78
|
+
else
|
79
|
+
self.kalibro_errors = response["errors"]
|
80
|
+
false
|
81
|
+
end
|
82
|
+
rescue Exception => exception
|
83
|
+
add_error exception
|
84
|
+
false
|
85
|
+
end
|
75
86
|
end
|
76
87
|
end
|
77
88
|
|
@@ -85,13 +96,24 @@ module KalibroClient
|
|
85
96
|
new_model
|
86
97
|
end
|
87
98
|
|
99
|
+
def update(attributes={})
|
100
|
+
attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) }
|
101
|
+
response = self.class.request(update_action, update_params, :put, update_prefix)
|
102
|
+
unless response["errors"].nil?
|
103
|
+
response["errors"].each { |error| add_error(error) }
|
104
|
+
false
|
105
|
+
else
|
106
|
+
true
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
88
110
|
def ==(another)
|
89
111
|
unless self.class == another.class
|
90
112
|
return false
|
91
113
|
end
|
92
114
|
|
93
115
|
self.variable_names.each do |name|
|
94
|
-
next if name == "created_at" or name == "updated_at"
|
116
|
+
next if name == "created_at" or name == "updated_at" or name == "persisted"
|
95
117
|
unless self.send("#{name}") == another.send("#{name}") then
|
96
118
|
return false
|
97
119
|
end
|
@@ -107,7 +129,7 @@ module KalibroClient
|
|
107
129
|
def self.find(id)
|
108
130
|
if(exists?(id))
|
109
131
|
response = request(find_action, id_params(id), :get)
|
110
|
-
new
|
132
|
+
new(response[entity_name], true)
|
111
133
|
else
|
112
134
|
raise KalibroClient::Errors::RecordNotFound
|
113
135
|
end
|
@@ -115,8 +137,18 @@ module KalibroClient
|
|
115
137
|
|
116
138
|
def destroy
|
117
139
|
begin
|
118
|
-
self.class.request(destroy_action, destroy_params, :delete, destroy_prefix)
|
119
|
-
|
140
|
+
response = self.class.request(destroy_action, destroy_params, :delete, destroy_prefix)
|
141
|
+
|
142
|
+
unless response['errors'].nil?
|
143
|
+
response['errors'].each { |error| add_error(error) }
|
144
|
+
end
|
145
|
+
|
146
|
+
if self.kalibro_errors.empty?
|
147
|
+
@persisted = false
|
148
|
+
true
|
149
|
+
else
|
150
|
+
false
|
151
|
+
end
|
120
152
|
rescue Exception => exception
|
121
153
|
add_error exception
|
122
154
|
false
|
@@ -124,7 +156,7 @@ module KalibroClient
|
|
124
156
|
end
|
125
157
|
|
126
158
|
def self.create_objects_array_from_hash (response)
|
127
|
-
create_array_from_hash(response[entity_name.pluralize]).map { |hash| new
|
159
|
+
create_array_from_hash(response[entity_name.pluralize]).map { |hash| new(hash, true) }
|
128
160
|
end
|
129
161
|
|
130
162
|
def self.create_array_from_hash (response)
|
@@ -133,6 +165,8 @@ module KalibroClient
|
|
133
165
|
response
|
134
166
|
end
|
135
167
|
|
168
|
+
alias_method :persisted?, :persisted
|
169
|
+
|
136
170
|
protected
|
137
171
|
|
138
172
|
def instance_variable_names
|