kalibro_client 3.0.1 → 4.0.0.alpha1

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/features/metric_collector_details/find_by_name.feature +12 -4
  3. data/features/step_definitions/metric_collector_details_steps.rb +11 -7
  4. data/features/step_definitions/metric_configuration_steps.rb +2 -2
  5. data/features/step_definitions/module_result_steps.rb +1 -1
  6. data/features/support/env.rb +0 -3
  7. data/kalibro_client.gemspec +1 -0
  8. data/lib/kalibro_client.rb +4 -39
  9. data/lib/kalibro_client/entities/base.rb +12 -207
  10. data/lib/kalibro_client/entities/configurations/base.rb +3 -3
  11. data/lib/kalibro_client/entities/configurations/kalibro_configuration.rb +0 -4
  12. data/lib/kalibro_client/entities/configurations/metric_configuration.rb +1 -19
  13. data/lib/kalibro_client/entities/configurations/reading_group.rb +1 -5
  14. data/lib/kalibro_client/entities/miscellaneous/base.rb +4 -2
  15. data/lib/kalibro_client/entities/miscellaneous/metric.rb +0 -2
  16. data/lib/kalibro_client/entities/processor/base.rb +3 -3
  17. data/lib/kalibro_client/entities/processor/hotspot_metric_result.rb +1 -1
  18. data/lib/kalibro_client/entities/processor/metric_collector_details.rb +19 -7
  19. data/lib/kalibro_client/entities/processor/module_result.rb +0 -13
  20. data/lib/kalibro_client/entities/processor/project.rb +0 -4
  21. data/lib/kalibro_client/entities/processor/repository.rb +0 -4
  22. data/lib/kalibro_client/entities/processor/tree_metric_result.rb +1 -1
  23. data/lib/kalibro_client/errors.rb +1 -4
  24. data/lib/kalibro_client/kalibro_cucumber_helpers.rb +7 -36
  25. data/lib/kalibro_client/kalibro_cucumber_helpers/cleaner.rb +27 -0
  26. data/lib/kalibro_client/version.rb +1 -1
  27. data/spec/entities/base_spec.rb +17 -449
  28. data/spec/entities/configurations/kalibro_configuration_spec.rb +0 -35
  29. data/spec/entities/configurations/kalibro_range_spec.rb +3 -3
  30. data/spec/entities/configurations/metric_configuration_spec.rb +1 -58
  31. data/spec/entities/configurations/reading_group_spec.rb +0 -32
  32. data/spec/entities/configurations/reading_spec.rb +3 -3
  33. data/spec/entities/processor/metric_collector_details_spec.rb +46 -25
  34. data/spec/entities/processor/module_result_spec.rb +0 -41
  35. data/spec/entities/processor/project_spec.rb +1 -35
  36. data/spec/entities/processor/repository_spec.rb +1 -14
  37. data/spec/{savon/fixtures → fixtures}/config.yml +0 -0
  38. data/spec/{savon/fixtures → fixtures}/invalid_config.yml +0 -0
  39. data/spec/kalibro_cucumber_helpers/cleaner_spec.rb +32 -0
  40. metadata +26 -32
  41. data/lib/kalibro_client/errors/record_invalid.rb +0 -19
  42. data/lib/kalibro_client/errors/record_not_found.rb +0 -22
  43. data/lib/kalibro_client/errors/request_error.rb +0 -27
  44. data/lib/kalibro_client/errors/standard.rb +0 -24
  45. data/lib/kalibro_client/helpers/date_attributes.rb +0 -11
  46. data/lib/kalibro_client/helpers/hash_converters.rb +0 -48
  47. data/lib/kalibro_client/helpers/request_methods.rb +0 -64
  48. data/lib/kalibro_client/helpers/xml_converters.rb +0 -20
  49. data/lib/kalibro_client/kalibro_cucumber_helpers/configuration.rb +0 -30
  50. data/spec/errors/record_invalid_spec.rb +0 -45
  51. data/spec/helpers/date_attributes_spec.rb +0 -30
  52. data/spec/helpers/hash_converters_spec.rb +0 -120
  53. data/spec/helpers/xml_converters_spec.rb +0 -64
  54. data/spec/kalibro_entities_spec.rb +0 -112
  55. data/spec/savon/fixtures/project/does_not_exists.xml +0 -1
  56. data/spec/savon/savon_test_helper.rb +0 -14
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
- require 'kalibro_client/helpers/date_attributes'
3
-
4
- include DateAttributes
5
-
6
- class Klass
7
- include DateAttributes
8
- end
9
-
10
-
11
- describe 'DateAttributes' do
12
- subject { Klass.new }
13
- let(:time){ "2015-02-04T15:53:18.452Z" }
14
-
15
- describe 'created_at=' do
16
- it 'is expected to parse it to DateTime' do
17
- DateTime.expects(:parse).with(time)
18
-
19
- subject.created_at = time
20
- end
21
- end
22
-
23
- describe 'updated_at=' do
24
- it 'is expected to parse it to DateTime' do
25
- DateTime.expects(:parse).with(time)
26
-
27
- subject.updated_at = time
28
- end
29
- end
30
- end
@@ -1,120 +0,0 @@
1
- # This file is part of KalibroClient
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 'spec_helper'
18
- require 'kalibro_client/helpers/hash_converters'
19
-
20
- include HashConverters
21
-
22
- describe HashConverters do
23
- describe 'date_with_miliseconds' do
24
- context 'with 21/12/1995 (first Ruby publication)' do
25
- it 'should return 1995-12-21T00:00:00.0/1+00:00' do
26
- expect(date_with_milliseconds(DateTime.parse("21/12/1995"))).to eq("1995-12-21T00:00:00.0/1+00:00")
27
- end
28
- end
29
- end
30
-
31
- describe 'convert_to_hash' do
32
- context 'with a nil value' do
33
- it 'should return nil' do
34
- expect(convert_to_hash(nil)).to be_nil
35
- end
36
- end
37
-
38
- context 'with an Array' do
39
- before :each do
40
- @array = []
41
- @element1 = :kalibro
42
-
43
- @array << @element1
44
- end
45
-
46
- it 'should return the Array wth its elements converted' do
47
- expect(convert_to_hash(@array)[0]).to eq(@element1.to_s)
48
- end
49
- end
50
-
51
- context 'with a Base' do
52
- before :each do
53
- @model = KalibroClient::Entities::Base.new
54
- end
55
-
56
- it "should return the Base's Hash" do
57
- expect(convert_to_hash(@model)).to eq(@model.to_hash)
58
- end
59
- end
60
-
61
- context 'with a DateTime' do
62
- before :each do
63
- @date = DateTime.parse("21/12/1995")
64
- end
65
-
66
- it 'should return th date with miliseconds' do
67
- expect(convert_to_hash(@date)).to eq(date_with_milliseconds(@date))
68
- end
69
- end
70
-
71
- context 'with an + infinite Float' do
72
- it 'should return INF' do
73
- expect(convert_to_hash(1.0/0.0)).to eq('INF')
74
- end
75
- end
76
-
77
- context 'with an - infinite Float' do
78
- it 'should return -INF' do
79
- expect(convert_to_hash(-1.0/0.0)).to eq('-INF')
80
- end
81
- end
82
-
83
- context 'with a granularity' do
84
- let(:granularity) { FactoryGirl.build(:granularity) }
85
-
86
- it 'is expected to convert the granularity to a hash' do
87
- expect(convert_to_hash(granularity)).to be_a Hash
88
- expect(convert_to_hash(granularity)).to include 'type'
89
- end
90
- end
91
- end
92
-
93
- describe 'field_to_hash' do
94
- context 'with a nil field value' do
95
- before do
96
- @model = KalibroClient::Entities::Base.new
97
- @model.expects(:send).with(:field_getter).returns(nil)
98
- end
99
-
100
- it 'should return an instance of Hash' do
101
- expect(@model.field_to_hash(:field_getter)).to be_a(Hash)
102
- end
103
-
104
- it 'should return an empty Hash' do
105
- expect(@model.field_to_hash(:field_getter)).to eq({})
106
- end
107
- end
108
-
109
- context 'with a Float field value' do
110
- before do
111
- @model = KalibroClient::Entities::Base.new
112
- @model.expects(:send).with(:field_getter).returns(1.0)
113
- end
114
-
115
- it 'should return an instance of Hash' do
116
- expect(@model.field_to_hash(:field_getter)).to be_a(Hash)
117
- end
118
- end
119
- end
120
- end
@@ -1,64 +0,0 @@
1
- # This file is part of KalibroClient
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 'spec_helper'
18
- require 'kalibro_client/helpers/xml_converters'
19
-
20
- include XMLConverters
21
-
22
- describe XMLConverters do
23
- describe 'xml_instance_class_name' do
24
- before { @model = KalibroClient::Entities::Base.new }
25
-
26
- it 'should return modelXml' do
27
- expect(xml_instance_class_name(@model)).to eq('baseXml')
28
- end
29
- end
30
-
31
- describe 'get_xml' do
32
- context 'with an object that is not an instance of Base' do
33
- before { @object = "kalibro" }
34
-
35
- it 'should return a Hash' do
36
- expect(get_xml("field", @object)).to be_a(Hash)
37
- end
38
-
39
- it 'should return an empty Hash' do
40
- expect(get_xml("field", @object)).to eq({})
41
- end
42
- end
43
-
44
- context 'with an instance of Base' do
45
- before { @object = KalibroClient::Entities::Base.new }
46
-
47
- it 'should return a Hash' do
48
- expect(get_xml("field", @object)).to be_a(Hash)
49
- end
50
-
51
- it 'should return the XML Hash' do
52
- field_xml_hash = {:attributes! =>
53
- {:field =>
54
- {"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
55
- "xsi:type"=>"kalibro:baseXml"
56
- }
57
- }
58
- }
59
-
60
- expect(get_xml("field", @object)).to eq(field_xml_hash)
61
- end
62
- end
63
- end
64
- end
@@ -1,112 +0,0 @@
1
- # This file is part of KalibroClient
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 'spec_helper'
18
-
19
- describe KalibroClient do
20
-
21
- context 'configuration' do
22
- #FIXME: there should be a better way to keep the default values
23
- let(:config) { { processor_address: "http://localhost:8082",
24
- configurations_address: "http://localhost:8083" } }
25
-
26
- describe 'config' do
27
- it 'should return the default configuration' do
28
- expect(KalibroClient.config).to eq({
29
- processor_address: "http://localhost:8082",
30
- configurations_address: "http://localhost:8083"
31
- })
32
- end
33
- end
34
-
35
- describe 'configure' do
36
- after(:each) {KalibroClient.configure(config)}
37
-
38
- it 'should set the address' do
39
- KalibroClient.configure({processor_address: 'http://test.test'})
40
- expect(KalibroClient.config[:processor_address]).to eq('http://test.test')
41
- end
42
- end
43
-
44
- describe 'configure_with' do
45
- context 'with an existent YAML' do
46
- after(:each) {KalibroClient.configure(config)}
47
-
48
- it 'should set the config' do
49
- KalibroClient.configure_with('spec/savon/fixtures/config.yml')
50
-
51
- expect(KalibroClient.config).to eq({
52
- processor_address: 'http://test1.test1',
53
- configurations_address: 'http://test2.test2'})
54
- end
55
- end
56
-
57
- context 'with an inexistent YAML' do
58
- before :each do
59
- @logger = Logger.new(File::NULL)
60
- KalibroClient.expects(:logger).returns(@logger)
61
- end
62
-
63
- it 'should keep the defaults' do
64
- KalibroClient.configure_with('spec/savon/fixtures/inexistent_file.yml')
65
- expect(KalibroClient.config).to eq(config)
66
- end
67
-
68
- it 'should log an warning' do
69
- @logger.expects(:warn).with("YAML configuration file couldn't be found. Using defaults.")
70
-
71
- KalibroClient.configure_with('spec/savon/fixtures/inexistent_file.yml')
72
- end
73
- end
74
-
75
- context 'with an invalid YAML' do
76
- before :each do
77
- @logger = Logger.new(File::NULL)
78
- KalibroClient.expects(:logger).returns(@logger)
79
- end
80
-
81
- it 'should keep the defaults' do
82
- KalibroClient.configure_with('spec/savon/fixtures/invalid_config.yml')
83
- expect(KalibroClient.config).to eq(config)
84
- end
85
-
86
- it 'should log an warning' do
87
- @logger.expects(:warn).with("YAML configuration file contains invalid syntax. Using defaults.")
88
-
89
- KalibroClient.configure_with('spec/savon/fixtures/invalid_config.yml')
90
- end
91
- end
92
- end
93
- end
94
-
95
- context 'Logger' do
96
- describe 'logger' do
97
- it 'should return the default logger' do
98
- expect(KalibroClient.logger).to be_a(Logger)
99
- end
100
- end
101
-
102
- describe 'logger=' do
103
- it 'should set the logger' do
104
- logger = Logger.new(STDOUT)
105
-
106
- KalibroClient.logger = logger
107
-
108
- expect(KalibroClient.logger).to eq(logger)
109
- end
110
- end
111
- end
112
- end
@@ -1 +0,0 @@
1
- <?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:projectExistsResponse xmlns:ns2="http://service.kalibro.org/"><exists>false</exists></ns2:projectExistsResponse></S:Body></S:Envelope>
@@ -1,14 +0,0 @@
1
- module SavonTestHelper
2
- HttpMock = Struct.new(:code, :headers, :body) do
3
- def error?
4
- false
5
- end
6
- end
7
-
8
- def mock_savon_response(xml_response, code = 200, headers = {})
9
- http = HttpMock.new(code, headers, xml_response)
10
- savon_local_options = Savon::LocalOptions.new
11
- savon_global_options = Savon::GlobalOptions.new
12
- savon_response = Savon::Response.new(http, savon_global_options, savon_local_options)
13
- end
14
- end