google-ads-common 0.6.4 → 0.7.0
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.
- data/ChangeLog +4 -0
- data/README +1 -1
- data/lib/ads_common/api.rb +66 -86
- data/lib/ads_common/api_config.rb +37 -64
- data/lib/ads_common/auth/base_handler.rb +9 -19
- data/lib/ads_common/auth/client_login_handler.rb +43 -44
- data/lib/ads_common/auth/oauth_handler.rb +63 -77
- data/lib/ads_common/build/savon_generator.rb +1 -5
- data/lib/ads_common/build/savon_service_generator.rb +3 -16
- data/lib/ads_common/credential_handler.rb +31 -9
- data/lib/ads_common/http.rb +20 -21
- data/lib/ads_common/parameters_validator.rb +2 -1
- data/lib/ads_common/results_extractor.rb +183 -0
- data/lib/ads_common/savon_headers/base_header_handler.rb +26 -21
- data/lib/ads_common/savon_headers/oauth_header_handler.rb +4 -29
- data/lib/ads_common/savon_service.rb +28 -174
- data/lib/ads_common/version.rb +1 -1
- data/test/coverage.rb +35 -0
- data/test/suite_unittests.rb +30 -0
- data/test/test_client_login_handler.rb +41 -8
- data/test/test_config.rb +3 -4
- data/test/test_credential_handler.rb +55 -0
- data/test/test_parameters_validator.rb +24 -1
- data/test/test_results_extractor.rb +165 -0
- data/test/test_savon_service.rb +14 -167
- metadata +38 -25
- data/lib/ads_common/savon_headers/simple_header_handler.rb +0 -63
data/test/test_config.rb
CHANGED
@@ -53,7 +53,7 @@ class TestConfig < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# Test initializer with filename argument.
|
56
|
-
def
|
56
|
+
def test_initialize_filename_correct
|
57
57
|
config = AdsCommon::Config.new(DEFAULT_CONFIG_FILENAME)
|
58
58
|
assert_equal(false, config.read('service.use_ruby_names'))
|
59
59
|
assert_equal('sandbox', config.read('service.environment'))
|
@@ -63,13 +63,12 @@ class TestConfig < Test::Unit::TestCase
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# Test initializer with an incorrect existing file.
|
66
|
-
def
|
66
|
+
def test_initialize_filename_incorrect
|
67
67
|
assert_raises (AdsCommon::Errors::Error) do
|
68
68
|
config = AdsCommon::Config.new('/dev/null')
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
|
73
72
|
# Test default result.
|
74
73
|
def test_read_default_result
|
75
74
|
config = AdsCommon::Config.new(DEFAULT_CONFIG_HASH)
|
@@ -89,7 +88,7 @@ class TestConfig < Test::Unit::TestCase
|
|
89
88
|
end
|
90
89
|
|
91
90
|
# Test subhash.
|
92
|
-
def
|
91
|
+
def test_get_hash
|
93
92
|
config = AdsCommon::Config.new(DEFAULT_CONFIG_HASH)
|
94
93
|
result = config.read('service')
|
95
94
|
assert_instance_of(Hash, result)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Encoding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
5
|
+
#
|
6
|
+
# Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
|
7
|
+
#
|
8
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
17
|
+
# implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
# Tests credential handler methods.
|
22
|
+
|
23
|
+
require 'logger'
|
24
|
+
require 'test/unit'
|
25
|
+
|
26
|
+
require 'ads_common/config'
|
27
|
+
require 'ads_common/credential_handler'
|
28
|
+
|
29
|
+
class TestCredentialHandler < Test::Unit::TestCase
|
30
|
+
|
31
|
+
def setup()
|
32
|
+
logger = Logger.new(STDERR)
|
33
|
+
@default_credentials = {:client_customer_id => '1234567890', :foo => 'bar'}
|
34
|
+
config = AdsCommon::Config.new({
|
35
|
+
:library => {:logger => logger},
|
36
|
+
:authentication => @default_credentials
|
37
|
+
})
|
38
|
+
@handler = AdsCommon::CredentialHandler.new(config)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_credentials_simple()
|
42
|
+
credentials = @handler.credentials()
|
43
|
+
assert_equal(@default_credentials, credentials)
|
44
|
+
assert_not_same(@default_credentials, credentials)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_credentials_override()
|
48
|
+
@override = {:client_customer_id => 42}
|
49
|
+
credentials = @handler.credentials(@override)
|
50
|
+
assert_not_equal(@default_credentials, credentials)
|
51
|
+
assert_not_same(@default_credentials, credentials)
|
52
|
+
assert_equal(42, credentials[:client_customer_id])
|
53
|
+
assert_equal('bar', credentials[:foo])
|
54
|
+
end
|
55
|
+
end
|
@@ -28,7 +28,7 @@ require 'ads_common/parameters_validator'
|
|
28
28
|
module AdsCommon
|
29
29
|
class ParametersValidator
|
30
30
|
public :deep_copy, :add_attribute, :array_from_named_list
|
31
|
-
public :check_required_argument_present
|
31
|
+
public :check_required_argument_present, :arrayize
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -129,4 +129,27 @@ class TestParametersValidator < Test::Unit::TestCase
|
|
129
129
|
@validator.check_required_argument_present([field1, field2], field2)
|
130
130
|
end
|
131
131
|
end
|
132
|
+
|
133
|
+
def test_arrayize_empty
|
134
|
+
result1 = @validator.arrayize(nil)
|
135
|
+
assert_instance_of(Array, result1, 'returned object is not an Array')
|
136
|
+
assert_equal(0, result1.size, 'array is not empty')
|
137
|
+
|
138
|
+
result2 = @validator.arrayize([])
|
139
|
+
assert_instance_of(Array, result2, 'returned object is not an Array')
|
140
|
+
assert_equal(0, result2.size, 'array is not empty')
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_arrayize_on_array
|
144
|
+
result1 = @validator.arrayize([nil])
|
145
|
+
assert_instance_of(Array, result1, 'returned object is not an Array')
|
146
|
+
assert_equal(1, result1.size, 'array changed size')
|
147
|
+
assert_equal(nil, result1[0], 'array changed data')
|
148
|
+
|
149
|
+
result2 = @validator.arrayize(['a', 'b'])
|
150
|
+
assert_instance_of(Array, result2, 'returned object is not an Array')
|
151
|
+
assert_equal(2, result2.size, 'array changed size')
|
152
|
+
assert_equal('a', result2[0], 'array changed data')
|
153
|
+
assert_equal('b', result2[1], 'array changed data')
|
154
|
+
end
|
132
155
|
end
|
@@ -0,0 +1,165 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Encoding: utf-8
|
3
|
+
#
|
4
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
5
|
+
#
|
6
|
+
# Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
|
7
|
+
#
|
8
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
17
|
+
# implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
# Tests the array replies from services.
|
22
|
+
|
23
|
+
require 'test/unit'
|
24
|
+
|
25
|
+
require 'ads_common/results_extractor'
|
26
|
+
|
27
|
+
module AdsCommon
|
28
|
+
class ResultsExtractor
|
29
|
+
|
30
|
+
public :check_array_collapse
|
31
|
+
public :normalize_item
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
class StubRegistry
|
36
|
+
end
|
37
|
+
|
38
|
+
class TestResultsExtractor < Test::Unit::TestCase
|
39
|
+
|
40
|
+
# Initialize tests.
|
41
|
+
def setup()
|
42
|
+
registry = StubRegistry.new()
|
43
|
+
@extractor = AdsCommon::ResultsExtractor.new(registry)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_normalize_item_nil()
|
47
|
+
result1 = @extractor.normalize_item(nil, {:type => 'unknown'})
|
48
|
+
assert_equal(nil, result1, 'bad conversion')
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_normalize_item_int()
|
52
|
+
result1 = @extractor.normalize_item(5, {:type => 'int'})
|
53
|
+
assert_kind_of(Integer, result1)
|
54
|
+
assert_equal(5, result1, 'bad conversion')
|
55
|
+
|
56
|
+
result2 = @extractor.normalize_item(2147483648, {:type => 'int'})
|
57
|
+
assert_kind_of(Integer, result2)
|
58
|
+
assert_equal(2147483648, result2, 'bad conversion')
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_normalize_item_string()
|
62
|
+
result1 = @extractor.normalize_item('foobar',
|
63
|
+
{:type => 'string'})
|
64
|
+
assert_kind_of(String, result1)
|
65
|
+
assert_equal('foobar', result1, 'bad conversion')
|
66
|
+
|
67
|
+
result2 = @extractor.normalize_item('', {:type => 'string'})
|
68
|
+
assert_kind_of(String, result2)
|
69
|
+
assert_equal('', result2, 'bad conversion')
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_normalize_item_long()
|
73
|
+
result1 = @extractor.normalize_item(2147483648,
|
74
|
+
{:type => 'long'})
|
75
|
+
assert_kind_of(Integer, result1)
|
76
|
+
assert_equal(2147483648, result1, 'bad conversion')
|
77
|
+
|
78
|
+
result2 = @extractor.normalize_item(-1, {:type => 'long'})
|
79
|
+
assert_kind_of(Integer, result2)
|
80
|
+
assert_equal(-1, result2, 'bad conversion')
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_normalize_item_boolean()
|
84
|
+
result1 = @extractor.normalize_item(true, {:type => 'boolean'})
|
85
|
+
assert_kind_of(TrueClass, result1)
|
86
|
+
|
87
|
+
result2 = @extractor.normalize_item(false, {:type => 'boolean'})
|
88
|
+
assert_kind_of(FalseClass, result2)
|
89
|
+
|
90
|
+
result3 = @extractor.normalize_item('true', {:type => 'boolean'})
|
91
|
+
assert_kind_of(TrueClass, result3)
|
92
|
+
|
93
|
+
result4 = @extractor.normalize_item('false',
|
94
|
+
{:type => 'boolean'})
|
95
|
+
assert_kind_of(FalseClass, result4)
|
96
|
+
|
97
|
+
result5 = @extractor.normalize_item('True',
|
98
|
+
{:type => 'boolean'})
|
99
|
+
assert_kind_of(TrueClass, result3)
|
100
|
+
|
101
|
+
result6 = @extractor.normalize_item('False',
|
102
|
+
{:type => 'boolean'})
|
103
|
+
assert_kind_of(FalseClass, result4)
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_normalize_item_object()
|
107
|
+
result1 = @extractor.normalize_item({:a => 'b'},
|
108
|
+
{:type => 'StubClass'})
|
109
|
+
assert_equal('b', result1[:a], 'object corrupted')
|
110
|
+
|
111
|
+
result2 = @extractor.normalize_item(@extractor,
|
112
|
+
{:type => 'SavonService'})
|
113
|
+
assert_equal(@extractor.hash, result2.hash, 'object corrupted')
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_normalize_item_double()
|
117
|
+
result1 = @extractor.normalize_item(3.14, {:type => 'double'})
|
118
|
+
assert_kind_of(Float, result1)
|
119
|
+
assert_equal(3.14, result1, 'bad conversion')
|
120
|
+
|
121
|
+
result2 = @extractor.normalize_item('-3.14', {:type => 'double'})
|
122
|
+
assert_kind_of(Float, result2)
|
123
|
+
assert_equal(-3.14, result2, 'bad conversion')
|
124
|
+
|
125
|
+
result3 = @extractor.normalize_item('42', {:type => 'double'})
|
126
|
+
assert_kind_of(Float, result3)
|
127
|
+
assert_equal(42.0, result3, 'bad conversion')
|
128
|
+
end
|
129
|
+
|
130
|
+
def test_check_array_collapse()
|
131
|
+
result1 = @extractor.check_array_collapse(
|
132
|
+
42.0, {:min_occurs => '0', :max_occurs => 1})
|
133
|
+
assert_kind_of(Float, result1)
|
134
|
+
assert_equal(42.0, result1, 'Float is expected for max_occurs 1')
|
135
|
+
|
136
|
+
result2 = @extractor.check_array_collapse(
|
137
|
+
42.0, {:min_occurs => '0', :max_occurs => :unbounded})
|
138
|
+
assert_instance_of(Array, result2)
|
139
|
+
assert_equal(42.0, result2[0])
|
140
|
+
|
141
|
+
result3 = @extractor.check_array_collapse(
|
142
|
+
42.0, {:min_occurs => '0', :max_occurs => 2})
|
143
|
+
assert_instance_of(Array, result3)
|
144
|
+
assert_equal(42.0, result3[0])
|
145
|
+
|
146
|
+
result4 = @extractor.check_array_collapse(
|
147
|
+
42.0, {:min_occurs => '0', :max_occurs => nil})
|
148
|
+
assert_instance_of(Float, result4)
|
149
|
+
assert_equal(42.0, result4, 'Float is expected for nil max_occurs')
|
150
|
+
|
151
|
+
result5 = @extractor.check_array_collapse(
|
152
|
+
[42, -1], {:min_occurs => '0', :max_occurs => :unbounded})
|
153
|
+
assert_instance_of(Array, result5)
|
154
|
+
assert_equal(42, result5[0])
|
155
|
+
assert_equal(-1, result5[1])
|
156
|
+
|
157
|
+
result6 = @extractor.check_array_collapse(
|
158
|
+
{}, {:min_occurs => '0', :max_occurs => 1})
|
159
|
+
assert_equal({}, result6)
|
160
|
+
|
161
|
+
result7 = @extractor.check_array_collapse(
|
162
|
+
{}, {:min_occurs => '0', :max_occurs => :unbounded})
|
163
|
+
assert_equal([{}], result7)
|
164
|
+
end
|
165
|
+
end
|
data/test/test_savon_service.rb
CHANGED
@@ -25,57 +25,31 @@ require 'test/unit'
|
|
25
25
|
require 'ads_common/config'
|
26
26
|
require 'ads_common/savon_service'
|
27
27
|
|
28
|
-
# AdsCommon::Api is abstract, defining a stub class for the test.
|
29
|
-
class StubApi
|
30
|
-
attr_accessor :config
|
31
|
-
def initialize()
|
32
|
-
@config = AdsCommon::Config.new
|
33
|
-
end
|
34
|
-
def self.get_instance()
|
35
|
-
@api ||= StubApi.new
|
36
|
-
return @api
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
28
|
# SavonService is abstract, defining a child class for the test.
|
41
29
|
class StubService < AdsCommon::SavonService
|
30
|
+
|
31
|
+
public :get_service_registry, :get_module
|
32
|
+
|
42
33
|
def initialize(namespace, endpoint, version)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
return get_service_registry
|
47
|
-
end
|
48
|
-
def private_get_module()
|
49
|
-
return get_module
|
50
|
-
end
|
51
|
-
def private_normalize_type(data, field)
|
52
|
-
return normalize_type(data, field)
|
53
|
-
end
|
54
|
-
def private_get_field_by_name(fields_list, name)
|
55
|
-
return get_field_by_name(fields_list, name)
|
56
|
-
end
|
57
|
-
def private_arrayize(object)
|
58
|
-
return arrayize(object)
|
59
|
-
end
|
60
|
-
def private_deep_copy(object)
|
61
|
-
return deep_copy(object)
|
62
|
-
end
|
63
|
-
def private_add_attribute(node, key, name, value)
|
64
|
-
return add_attribute(node, key, name, value)
|
34
|
+
@logger = Logger.new(STDERR)
|
35
|
+
@config = AdsCommon::Config.new({:library => {:logger => @logger}})
|
36
|
+
super(@config, namespace, endpoint, version)
|
65
37
|
end
|
66
38
|
end
|
67
39
|
|
40
|
+
|
68
41
|
class TestSavonService < Test::Unit::TestCase
|
42
|
+
|
69
43
|
TEST_NAMESPACE = 'namespace'
|
70
44
|
TEST_ENDPOINT = 'endpoint'
|
71
45
|
TEST_VERSION = :vVersion
|
72
46
|
|
73
47
|
# Initialize tests.
|
74
|
-
def setup
|
48
|
+
def setup()
|
75
49
|
@stub_service = StubService.new(TEST_NAMESPACE, TEST_ENDPOINT, TEST_VERSION)
|
76
50
|
end
|
77
51
|
|
78
|
-
def test_initialize_abstract
|
52
|
+
def test_initialize_abstract()
|
79
53
|
assert_raises(NoMethodError) do
|
80
54
|
AdsCommon::SavonService.new(nil, TEST_NAMESPACE, TEST_ENDPOINT,
|
81
55
|
TEST_VERSION)
|
@@ -85,138 +59,11 @@ class TestSavonService < Test::Unit::TestCase
|
|
85
59
|
end
|
86
60
|
end
|
87
61
|
|
88
|
-
def test_get_service_registry_abstract
|
89
|
-
assert_raises(NoMethodError) { @stub_service.
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_get_module_abstract
|
93
|
-
assert_raises(NoMethodError) { @stub_service.private_get_module }
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_arrayize_empty
|
97
|
-
result1 = @stub_service.private_arrayize(nil)
|
98
|
-
assert_instance_of(Array, result1, 'returned object is not an Array')
|
99
|
-
assert_equal(0, result1.size, 'array is not empty')
|
100
|
-
|
101
|
-
result2 = @stub_service.private_arrayize([])
|
102
|
-
assert_instance_of(Array, result2, 'returned object is not an Array')
|
103
|
-
assert_equal(0, result2.size, 'array is not empty')
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_arrayize_on_array
|
107
|
-
result1 = @stub_service.private_arrayize([nil])
|
108
|
-
assert_instance_of(Array, result1, 'returned object is not an Array')
|
109
|
-
assert_equal(1, result1.size, 'array changed size')
|
110
|
-
assert_equal(nil, result1[0], 'array changed data')
|
111
|
-
|
112
|
-
result2 = @stub_service.private_arrayize(['a', 'b'])
|
113
|
-
assert_instance_of(Array, result2, 'returned object is not an Array')
|
114
|
-
assert_equal(2, result2.size, 'array changed size')
|
115
|
-
assert_equal('a', result2[0], 'array changed data')
|
116
|
-
assert_equal('b', result2[1], 'array changed data')
|
62
|
+
def test_get_service_registry_abstract()
|
63
|
+
assert_raises(NoMethodError) { @stub_service.get_service_registry() }
|
117
64
|
end
|
118
65
|
|
119
|
-
def
|
120
|
-
|
121
|
-
assert_kind_of(Integer, result1)
|
122
|
-
assert_equal(5, result1, 'bad conversion')
|
123
|
-
|
124
|
-
result2 = @stub_service.private_normalize_type(2147483648, {:type => 'int'})
|
125
|
-
assert_kind_of(Integer, result2)
|
126
|
-
assert_equal(2147483648, result2, 'bad conversion')
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_normalize_type_string
|
130
|
-
result1 = @stub_service.private_normalize_type('foobar',
|
131
|
-
{:type => 'string'})
|
132
|
-
assert_kind_of(String, result1)
|
133
|
-
assert_equal('foobar', result1, 'bad conversion')
|
134
|
-
|
135
|
-
result2 = @stub_service.private_normalize_type('', {:type => 'string'})
|
136
|
-
assert_kind_of(String, result2)
|
137
|
-
assert_equal('', result2, 'bad conversion')
|
138
|
-
end
|
139
|
-
|
140
|
-
def test_normalize_type_long
|
141
|
-
result1 = @stub_service.private_normalize_type(2147483648,
|
142
|
-
{:type => 'long'})
|
143
|
-
assert_kind_of(Integer, result1)
|
144
|
-
assert_equal(2147483648, result1, 'bad conversion')
|
145
|
-
|
146
|
-
result2 = @stub_service.private_normalize_type(-1, {:type => 'long'})
|
147
|
-
assert_kind_of(Integer, result2)
|
148
|
-
assert_equal(-1, result2, 'bad conversion')
|
149
|
-
end
|
150
|
-
|
151
|
-
def test_normalize_type_boolean
|
152
|
-
result1 = @stub_service.private_normalize_type(true, {:type => 'boolean'})
|
153
|
-
assert_kind_of(TrueClass, result1)
|
154
|
-
|
155
|
-
result2 = @stub_service.private_normalize_type(false, {:type => 'boolean'})
|
156
|
-
assert_kind_of(FalseClass, result2)
|
157
|
-
|
158
|
-
result3 = @stub_service.private_normalize_type('true', {:type => 'boolean'})
|
159
|
-
assert_kind_of(TrueClass, result3)
|
160
|
-
|
161
|
-
result4 = @stub_service.private_normalize_type('false',
|
162
|
-
{:type => 'boolean'})
|
163
|
-
assert_kind_of(FalseClass, result4)
|
164
|
-
|
165
|
-
result5 = @stub_service.private_normalize_type('True',
|
166
|
-
{:type => 'boolean'})
|
167
|
-
assert_kind_of(TrueClass, result3)
|
168
|
-
|
169
|
-
result6 = @stub_service.private_normalize_type('False',
|
170
|
-
{:type => 'boolean'})
|
171
|
-
assert_kind_of(FalseClass, result4)
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_normalize_type_object
|
175
|
-
result1 = @stub_service.private_normalize_type({:a => 'b'},
|
176
|
-
{:type => 'StubClass'})
|
177
|
-
assert_equal('b', result1[:a], 'object corrupted')
|
178
|
-
|
179
|
-
result2 = @stub_service.private_normalize_type(@stub_service,
|
180
|
-
{:type => 'SavonService'})
|
181
|
-
assert_equal(@stub_service.hash, result2.hash, 'object corrupted')
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_normalize_type_double
|
185
|
-
result1 = @stub_service.send(:private_normalize_type, 3.14,
|
186
|
-
{:type => 'double'})
|
187
|
-
assert_kind_of(Float, result1)
|
188
|
-
assert_equal(3.14, result1, 'bad conversion')
|
189
|
-
|
190
|
-
result2 = @stub_service.send(:private_normalize_type, '-3.14',
|
191
|
-
{:type => 'double'})
|
192
|
-
assert_kind_of(Float, result2)
|
193
|
-
assert_equal(-3.14, result2, 'bad conversion')
|
194
|
-
|
195
|
-
result3 = @stub_service.send(:private_normalize_type, '42',
|
196
|
-
{:type => 'double'})
|
197
|
-
assert_kind_of(Float, result3)
|
198
|
-
assert_equal(42.0, result3, 'bad conversion')
|
199
|
-
end
|
200
|
-
|
201
|
-
def test_normalize_type_single_array_item
|
202
|
-
result1 = @stub_service.private_normalize_type('42',
|
203
|
-
{:type => 'double', :min_occurs => '0', :max_occurs => 1})
|
204
|
-
assert_kind_of(Float, result1)
|
205
|
-
assert_equal(42.0, result1, 'Float is expected for max_occurs 1')
|
206
|
-
|
207
|
-
result2 = @stub_service.private_normalize_type('42',
|
208
|
-
{:type => 'double', :min_occurs => '0', :max_occurs => :unbounded})
|
209
|
-
assert_instance_of(Array, result2)
|
210
|
-
assert_equal(42.0, result2[0], 'Array is expected for unbounded max_occurs')
|
211
|
-
|
212
|
-
result3 = @stub_service.private_normalize_type('42',
|
213
|
-
{:type => 'double', :min_occurs => '0', :max_occurs => 2})
|
214
|
-
assert_instance_of(Array, result3)
|
215
|
-
assert_equal(42.0, result3[0], 'Array is expected for max_occurs > 1')
|
216
|
-
|
217
|
-
result4 = @stub_service.private_normalize_type('42',
|
218
|
-
{:type => 'double', :min_occurs => '0', :max_occurs => nil})
|
219
|
-
assert_instance_of(Float, result4)
|
220
|
-
assert_equal(42.0, result4, 'Float is expected for nil max_occurs')
|
66
|
+
def test_get_module_abstract()
|
67
|
+
assert_raises(NoMethodError) { @stub_service.get_module() }
|
221
68
|
end
|
222
69
|
end
|