razorrisk-razor-connectivity 0.14.10
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/Rakefile +89 -0
- data/lib/razor_risk/razor/connectivity/clarite_2/config_maker.rb +162 -0
- data/lib/razor_risk/razor/connectivity/exceptions.rb +101 -0
- data/lib/razor_risk/razor/connectivity/razor_3/body_maker.rb +126 -0
- data/lib/razor_risk/razor/connectivity/razor_3/header_maker.rb +273 -0
- data/lib/razor_risk/razor/connectivity/razor_3/message_map.rb +156 -0
- data/lib/razor_risk/razor/connectivity/razor_3/razor_requester.rb +559 -0
- data/lib/razor_risk/razor/connectivity/razor_3/response.rb +224 -0
- data/lib/razor_risk/razor/connectivity/razor_3.rb +5 -0
- data/lib/razor_risk/razor/connectivity/version.rb +40 -0
- data/test/bin/razor_request_exe_empty_response.rb +28 -0
- data/test/unit/connectivity/clarite_2/tc_config_maker.rb +399 -0
- data/test/unit/connectivity/razor_3/tc_body_maker.rb +164 -0
- data/test/unit/connectivity/razor_3/tc_header_maker.rb +652 -0
- data/test/unit/connectivity/razor_3/tc_message_map.rb +125 -0
- data/test/unit/connectivity/razor_3/tc_razor_requester.rb +244 -0
- data/test/unit/connectivity/razor_3/tc_razor_requester_executable.rb +176 -0
- data/test/unit/connectivity/razor_3/tc_response.rb +239 -0
- metadata +158 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
# ##########################################################################
|
5
|
+
#
|
6
|
+
# Copyright (c) 2018 Razor Risk Technologies Pty Limited. All rights reserved.
|
7
|
+
#
|
8
|
+
# ##########################################################################
|
9
|
+
|
10
|
+
|
11
|
+
# ##########################################################
|
12
|
+
# load path
|
13
|
+
|
14
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 4), 'lib')
|
15
|
+
|
16
|
+
|
17
|
+
# ##########################################################
|
18
|
+
# diagnostics
|
19
|
+
|
20
|
+
unless $DEBUG
|
21
|
+
|
22
|
+
require 'pantheios/globals'
|
23
|
+
require 'pantheios/services/null_log_service'
|
24
|
+
|
25
|
+
::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [ ::Pantheios::Services::NullLogService ]
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# ##########################################################
|
30
|
+
# code coverage
|
31
|
+
|
32
|
+
require 'simplecov'
|
33
|
+
|
34
|
+
|
35
|
+
# ##########################################################
|
36
|
+
# requires
|
37
|
+
|
38
|
+
require 'razor_risk/razor/connectivity/razor_3/message_map'
|
39
|
+
|
40
|
+
require 'nokogiri'
|
41
|
+
require 'pantheios'
|
42
|
+
require 'xqsr3/extensions/test/unit'
|
43
|
+
|
44
|
+
require 'test/unit'
|
45
|
+
require 'time'
|
46
|
+
|
47
|
+
|
48
|
+
# ##########################################################
|
49
|
+
# tests
|
50
|
+
|
51
|
+
class Test_MessageMap < Test::Unit::TestCase
|
52
|
+
|
53
|
+
include ::Pantheios
|
54
|
+
|
55
|
+
include ::RazorRisk::Razor::Connectivity::Razor3
|
56
|
+
|
57
|
+
def severity_logged? sev; false; end
|
58
|
+
|
59
|
+
|
60
|
+
def test_type_exists_and_is_a_class
|
61
|
+
|
62
|
+
assert defined? ::RazorRisk
|
63
|
+
assert defined? ::RazorRisk::Razor
|
64
|
+
assert defined? ::RazorRisk::Razor::Connectivity
|
65
|
+
assert defined? ::RazorRisk::Razor::Connectivity::Razor3
|
66
|
+
assert defined? ::RazorRisk::Razor::Connectivity::Razor3::MessageMap
|
67
|
+
assert MessageMap.is_a? ::Class
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_DefaultInstance
|
71
|
+
|
72
|
+
di = MessageMap::DefaultInstance
|
73
|
+
|
74
|
+
assert_kind_of MessageMap, di
|
75
|
+
|
76
|
+
assert_equal 'CreditRiskServer', di.lookup_server('statusEnquiry')
|
77
|
+
assert_equal 'CreditRiskServer', di.lookup_server('statusenquiry')
|
78
|
+
assert_equal 'CreditRiskServer', di.lookup_server('STATUSENQUIRY')
|
79
|
+
assert_equal 'CreditRiskServer', di.lookup_server(' STATUSENQUIRY ')
|
80
|
+
|
81
|
+
assert_raise(::ArgumentError) { di.lookup_server(nil) }
|
82
|
+
assert_raise(::ArgumentError) { di.lookup_server('') }
|
83
|
+
|
84
|
+
assert_equal 'CreditRiskServer', di.lookup_server('selectTrades')
|
85
|
+
|
86
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('selectNettingAgreements')
|
87
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('selectNettingAgreements')
|
88
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('deletePortfolio')
|
89
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('insertPortfolios')
|
90
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('selectPortfolios')
|
91
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('lookupRiskPointRecord')
|
92
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('selectRiskPointTree')
|
93
|
+
|
94
|
+
assert_nil di.lookup_server('some-unknown-message')
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_custom_specification
|
98
|
+
|
99
|
+
mappings = {
|
100
|
+
|
101
|
+
'crs-msg-1' => 'CreditRiskServer',
|
102
|
+
'crs-msg-2' => 'CreditRiskServer',
|
103
|
+
|
104
|
+
'pes-msg-1' => 'PortfolioExposureServer',
|
105
|
+
'pes-msg-2' => 'PortfolioExposureServer',
|
106
|
+
}
|
107
|
+
|
108
|
+
di = MessageMap.new mappings
|
109
|
+
|
110
|
+
assert_raise(::ArgumentError) { di.lookup_server(nil) }
|
111
|
+
assert_raise(::ArgumentError) { di.lookup_server('') }
|
112
|
+
|
113
|
+
assert_equal 'CreditRiskServer', di.lookup_server('crs-msg-1')
|
114
|
+
assert_equal 'CreditRiskServer', di.lookup_server('CRS-MSG-2')
|
115
|
+
|
116
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('PES-msg-1')
|
117
|
+
assert_equal 'PortfolioExposureServer', di.lookup_server('pes-MSG-2')
|
118
|
+
|
119
|
+
assert_nil di.lookup_server('selectTrades')
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# ############################## end of file ############################# #
|
124
|
+
|
125
|
+
|
@@ -0,0 +1,244 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
# ##########################################################################
|
5
|
+
#
|
6
|
+
# Copyright (c) 2017 Razor Risk Technologies Pty Limited. All rights reserved.
|
7
|
+
#
|
8
|
+
# ##########################################################################
|
9
|
+
|
10
|
+
|
11
|
+
# ##########################################################
|
12
|
+
# load path
|
13
|
+
|
14
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 4), 'lib')
|
15
|
+
|
16
|
+
|
17
|
+
# ##########################################################
|
18
|
+
# diagnostics
|
19
|
+
|
20
|
+
unless $DEBUG
|
21
|
+
|
22
|
+
require 'pantheios/globals'
|
23
|
+
require 'pantheios/services/null_log_service'
|
24
|
+
|
25
|
+
::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [ ::Pantheios::Services::NullLogService ]
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# ##########################################################
|
30
|
+
# code coverage
|
31
|
+
|
32
|
+
require 'simplecov'
|
33
|
+
|
34
|
+
|
35
|
+
# ##########################################################
|
36
|
+
# requires
|
37
|
+
|
38
|
+
require 'razor_risk/razor/connectivity/razor_3/razor_requester'
|
39
|
+
require 'razor_risk/core/diagnostics/exceptions/rrcs_base_exception'
|
40
|
+
|
41
|
+
require 'nokogiri'
|
42
|
+
require 'xqsr3/extensions/test/unit'
|
43
|
+
|
44
|
+
require 'test/unit'
|
45
|
+
require 'time'
|
46
|
+
|
47
|
+
|
48
|
+
# ##########################################################
|
49
|
+
# constants
|
50
|
+
|
51
|
+
ProjectRoot = File.join(File.dirname(__FILE__), *(['..']*4))
|
52
|
+
RazorRequestStub = File.join(ProjectRoot, 'test', 'bin', 'razor_requester.rb')
|
53
|
+
|
54
|
+
|
55
|
+
# ##########################################################
|
56
|
+
# tests
|
57
|
+
|
58
|
+
class Test_RazorRequester_types_exist < Test::Unit::TestCase
|
59
|
+
|
60
|
+
def test_has_RazorRisk_module
|
61
|
+
|
62
|
+
assert Object.const_defined? :RazorRisk
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_has_RazorRisk_Razor_module
|
66
|
+
|
67
|
+
assert RazorRisk.const_defined? :Razor
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_has_RazorRisk_Razor_Connectivity_module
|
71
|
+
|
72
|
+
assert RazorRisk::Razor.const_defined? :Connectivity
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_has_RazorRisk_Razor_Connectivity_Razor3_module
|
76
|
+
|
77
|
+
assert RazorRisk::Razor::Connectivity.const_defined? :Razor3
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_has_RazorRequester_class
|
81
|
+
|
82
|
+
assert RazorRisk::Razor::Connectivity::Razor3.const_defined? :RazorRequester
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_RazorRequester_is_a_class
|
86
|
+
|
87
|
+
assert_kind_of ::Class, ::RazorRisk::Razor::Connectivity::Razor3::RazorRequester
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_RazorRequester_Executable_is_a_class
|
91
|
+
|
92
|
+
assert ::RazorRisk::Razor::Connectivity::Razor3::RazorRequester.const_defined? :Executable
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
class Test_RazorRequester_exceptions < Test::Unit::TestCase
|
98
|
+
|
99
|
+
include ::RazorRisk::Razor::Connectivity::Razor3
|
100
|
+
|
101
|
+
def test_RazorRequester_RazorRequestFailedException_type_exists
|
102
|
+
|
103
|
+
assert RazorRequester.const_defined? :RequestFailedException
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_RazorRequester_RazorRequestFailedException_type_is_a_class
|
107
|
+
|
108
|
+
assert_kind_of ::Class, RazorRequester::RequestFailedException
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_RazorRequester_RazorRequestFailedException_type_is_derived_from_RRCSBaseException
|
112
|
+
|
113
|
+
assert_subclass_of ::Exception, RazorRequester::RequestFailedException
|
114
|
+
assert_subclass_of ::RazorRisk::Core::Diagnostics::Exceptions::RRCSBaseException, RazorRequester::RequestFailedException
|
115
|
+
assert_subclass_of ::Exception, RazorRequester::RequestFailedException
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
class Test_RazorRequester_construction < Test::Unit::TestCase
|
121
|
+
|
122
|
+
include ::RazorRisk::Razor::Connectivity::Razor3
|
123
|
+
|
124
|
+
class AbortException < StandardError; end
|
125
|
+
|
126
|
+
class AborterClass
|
127
|
+
|
128
|
+
def initialize cls
|
129
|
+
|
130
|
+
@cls = cls
|
131
|
+
end
|
132
|
+
|
133
|
+
def abort message
|
134
|
+
|
135
|
+
raise @cls, message
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
Aborter = AborterClass.new AbortException
|
140
|
+
|
141
|
+
def test_construct_failures
|
142
|
+
|
143
|
+
assert_raise_with_message(::ArgumentError, /config not specified/i) do
|
144
|
+
RazorRequester.new nil
|
145
|
+
end
|
146
|
+
assert_raise_with_message(::ArgumentError, /either :razor_environment or :razor_alias.*specified/i) do
|
147
|
+
RazorRequester.new $0, {}
|
148
|
+
end
|
149
|
+
assert_raise_with_message(::ArgumentError, /:executable.*required/i) do
|
150
|
+
RazorRequester.new $0, {razor_environment: 'abc'}
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_send_request_with_invalid_options
|
155
|
+
|
156
|
+
rr = RazorRequester.new $0, {executable: $0, razor_alias: 'abc'}
|
157
|
+
|
158
|
+
assert_raise_with_message(::ArgumentError, /:razor_alias.*may not be combined/i) do
|
159
|
+
rr.send_request 'abc', razor_environment: 'abc', single_sign_on: true
|
160
|
+
end
|
161
|
+
assert_raise_with_message(::ArgumentError, /:razor_alias.*may not be combined/i) do
|
162
|
+
rr.send_request 'abc', razor_space: 'abc', single_sign_on: true
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_send_request_fails_without_credentials
|
167
|
+
|
168
|
+
rr = RazorRequester.new $0, {executable: $0, razor_environment: 'env'}
|
169
|
+
|
170
|
+
assert_raise_with_message(::ArgumentError, /some form of credentials must be provided/i) do
|
171
|
+
rr.send_request 'abc', razor_environment: 'abc'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
def test_send_request_ignores_empty_strings
|
176
|
+
|
177
|
+
rr = RazorRequester.new $0, {executable: $0, razor_environment: 'env'}
|
178
|
+
|
179
|
+
assert_raise_with_message(::ArgumentError, /some form of credentials must be provided/i) do
|
180
|
+
rr.send_request 'abc', username: 'abc', password: ''
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
class Test_RazorRequester < Test::Unit::TestCase
|
188
|
+
|
189
|
+
include ::RazorRisk::Razor::Connectivity::Razor3
|
190
|
+
|
191
|
+
# FIXME: This does not ensure SQL safety.
|
192
|
+
class Test_StopgapSqlValidator < Test_RazorRequester
|
193
|
+
|
194
|
+
def test_validator_requires_string_argument
|
195
|
+
|
196
|
+
assert_raise_with_message(::TypeError, /'str'/) do
|
197
|
+
RazorRequester.stopgap_sql_string_validator_fix_me(123) {}
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def test_validator_requires_a_block
|
202
|
+
|
203
|
+
assert_raise_with_message ArgumentError, /No block was given/ do
|
204
|
+
RazorRequester.stopgap_sql_string_validator_fix_me 'abc'
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_validator_only_calls_block_for_invalid_string
|
209
|
+
|
210
|
+
RazorRequester.stopgap_sql_string_validator_fix_me 'abc' do
|
211
|
+
flunk 'Block should not execute for valid string'
|
212
|
+
end
|
213
|
+
|
214
|
+
assert_raise_with_message ArgumentError, /The block executed/ do
|
215
|
+
RazorRequester.stopgap_sql_string_validator_fix_me '!.?' do
|
216
|
+
raise ArgumentError.new 'The block executed'
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
def test_validator_as_instance_method
|
222
|
+
|
223
|
+
rr = RazorRequester.new(
|
224
|
+
$0,
|
225
|
+
executable: $0,
|
226
|
+
razor_environment: 'env',
|
227
|
+
)
|
228
|
+
|
229
|
+
rr.stopgap_sql_string_validator_fix_me 'abc' do
|
230
|
+
flunk 'Block should not execute for valid string'
|
231
|
+
end
|
232
|
+
|
233
|
+
assert_raise_with_message ArgumentError, /The block executed/ do
|
234
|
+
rr.stopgap_sql_string_validator_fix_me '!.?' do
|
235
|
+
raise ArgumentError.new 'The block executed'
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
# ############################## end of file ############################# #
|
243
|
+
|
244
|
+
|
@@ -0,0 +1,176 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
# ##########################################################################
|
5
|
+
#
|
6
|
+
# Copyright (c) 2017 Razor Risk Technologies Pty Limited. All rights reserved.
|
7
|
+
#
|
8
|
+
# ##########################################################################
|
9
|
+
|
10
|
+
|
11
|
+
# ##########################################################
|
12
|
+
# load path
|
13
|
+
|
14
|
+
$:.unshift File.join(File.dirname(__FILE__), *(['..'] * 4), 'lib')
|
15
|
+
|
16
|
+
|
17
|
+
# ##########################################################
|
18
|
+
# diagnostics
|
19
|
+
|
20
|
+
unless $DEBUG
|
21
|
+
|
22
|
+
require 'pantheios/globals'
|
23
|
+
require 'pantheios/services/null_log_service'
|
24
|
+
|
25
|
+
::Pantheios::Globals.INITIAL_SERVICE_CLASSES = [ ::Pantheios::Services::NullLogService ]
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# ##########################################################
|
30
|
+
# code coverage
|
31
|
+
|
32
|
+
require 'simplecov'
|
33
|
+
|
34
|
+
|
35
|
+
# ##########################################################
|
36
|
+
# requires
|
37
|
+
|
38
|
+
require 'razor_risk/razor/connectivity/razor_3/razor_requester'
|
39
|
+
|
40
|
+
require 'nokogiri'
|
41
|
+
require 'xqsr3/extensions/test/unit'
|
42
|
+
|
43
|
+
require 'test/unit'
|
44
|
+
require 'time'
|
45
|
+
|
46
|
+
|
47
|
+
# ##########################################################
|
48
|
+
# tests
|
49
|
+
|
50
|
+
class Test_RazorRisk_Executable_type_exists < Test::Unit::TestCase
|
51
|
+
|
52
|
+
def test_has_RazorRisk_module
|
53
|
+
|
54
|
+
assert Object.const_defined? :RazorRisk
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_has_RazorRisk_Razor_module
|
58
|
+
|
59
|
+
assert RazorRisk.const_defined? :Razor
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_has_RazorRisk_Razor_Connectivity_module
|
63
|
+
|
64
|
+
assert RazorRisk::Razor.const_defined? :Connectivity
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_has_RazorRisk_Razor_Connectivity_Razor3_module
|
68
|
+
|
69
|
+
assert RazorRisk::Razor::Connectivity.const_defined? :Razor3
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_has_RazorRequester_class
|
73
|
+
|
74
|
+
assert RazorRisk::Razor::Connectivity::Razor3.const_defined? :RazorRequester
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_RazorRequester_is_a_class
|
78
|
+
|
79
|
+
assert_kind_of ::Class, ::RazorRisk::Razor::Connectivity::Razor3::RazorRequester
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_RazorRequester_Executable_is_a_class
|
83
|
+
|
84
|
+
assert ::RazorRisk::Razor::Connectivity::Razor3::RazorRequester.const_defined? :Executable
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
class Test_RazorRisk_Executable_functionality < Test::Unit::TestCase
|
89
|
+
|
90
|
+
include ::RazorRisk::Razor::Connectivity::Razor3
|
91
|
+
|
92
|
+
def test_construction_failures
|
93
|
+
|
94
|
+
assert_raise_with_message(::ArgumentError, /the given executable.*resolves to nothing/) { RazorRequester::Executable.new '' }
|
95
|
+
assert_raise_with_message(::ArgumentError, /the given executable.*resolves to nothing/) { RazorRequester::Executable.new '|' }
|
96
|
+
assert_raise_with_message(::ArgumentError, /the given executable.*resolves to nothing/) { RazorRequester::Executable.new ' |' }
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_simple_construction
|
100
|
+
|
101
|
+
ex = RazorRequester::Executable.new $0
|
102
|
+
|
103
|
+
path0 = File.realpath($0)
|
104
|
+
|
105
|
+
assert_not_nil ex
|
106
|
+
assert_equal path0, ex.program_path.path
|
107
|
+
assert_kind_of ::Array, ex.program_arguments
|
108
|
+
assert_equal [], ex.program_arguments
|
109
|
+
|
110
|
+
assert_equal(
|
111
|
+
%Q<#{path0} /config clarite_config.xml /request "my request.xml" /env RZR_ENV-01>,
|
112
|
+
ex.form_command(
|
113
|
+
'clarite_config.xml',
|
114
|
+
'my request.xml',
|
115
|
+
razor_environment: 'RZR_ENV-01'
|
116
|
+
)
|
117
|
+
)
|
118
|
+
assert_equal(
|
119
|
+
%Q<#{path0} /config clarite_config.xml /request "my request.xml" /impersonate some-user /env RZR_ENV-01>,
|
120
|
+
ex.form_command(
|
121
|
+
'clarite_config.xml',
|
122
|
+
'my request.xml',
|
123
|
+
razor_environment: 'RZR_ENV-01',
|
124
|
+
impersonatee: 'some-user'
|
125
|
+
)
|
126
|
+
)
|
127
|
+
assert_equal(
|
128
|
+
%Q<#{path0} /config clarite_config.xml /request "my request.xml" /space RZR_ENV-02 /env RZR_ENV-01>,
|
129
|
+
ex.form_command(
|
130
|
+
'clarite_config.xml',
|
131
|
+
'my request.xml',
|
132
|
+
razor_environment: 'RZR_ENV-01',
|
133
|
+
razor_space: 'RZR_ENV-02',
|
134
|
+
)
|
135
|
+
)
|
136
|
+
assert_equal(
|
137
|
+
%Q<#{path0} /config clarite_config.xml /request "my request.xml" /alias RZR_ENV-01>,
|
138
|
+
ex.form_command(
|
139
|
+
'clarite_config.xml',
|
140
|
+
'my request.xml',
|
141
|
+
razor_alias: 'RZR_ENV-01',
|
142
|
+
)
|
143
|
+
)
|
144
|
+
assert_equal(
|
145
|
+
%Q<#{path0} /config clarite_config.xml /request "my request.xml" /usr "some user" /pwd "&* fgh" /domain "some domain" /impersonate some-user /env RZR_ENV-01 /session>,
|
146
|
+
ex.form_command(
|
147
|
+
'clarite_config.xml',
|
148
|
+
'my request.xml',
|
149
|
+
razor_environment: 'RZR_ENV-01',
|
150
|
+
impersonatee: 'some-user',
|
151
|
+
domain: 'some domain',
|
152
|
+
username: 'some user',
|
153
|
+
password: "&* fgh",
|
154
|
+
session: true
|
155
|
+
)
|
156
|
+
)
|
157
|
+
end
|
158
|
+
|
159
|
+
def test_constructed_from_complex_arguments
|
160
|
+
|
161
|
+
ex = RazorRequester::Executable.new "#$0|| |abc|--def=x y z||"
|
162
|
+
|
163
|
+
path0 = File.realpath($0)
|
164
|
+
|
165
|
+
assert_not_nil ex
|
166
|
+
assert_equal path0, ex.program_path.path
|
167
|
+
assert_kind_of ::Array, ex.program_arguments
|
168
|
+
assert_equal [ 'abc', '--def=x y z' ], ex.program_arguments
|
169
|
+
|
170
|
+
assert_equal %Q<#{path0} abc "--def=x y z">, ex.form_command(nil, nil)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
# ############################## end of file ############################# #
|
175
|
+
|
176
|
+
|