xmlservice 1.3.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.
- checksums.yaml +7 -0
- data/LICENSE +19 -0
- data/README_IBM_i +62 -0
- data/lib/adapters/abstract_adapter.rb +82 -0
- data/lib/adapters/db2_adapter.rb +70 -0
- data/lib/adapters/rest_adapter.rb +32 -0
- data/lib/password/password.rb +229 -0
- data/lib/xmlservice.rb +2477 -0
- data/test/README_IBM_i +3 -0
- data/test/Rakefile +42 -0
- data/test/genpassword.rb +111 -0
- data/test/test_60000_toolkit_driver/Rakefile +11 -0
- data/test/test_60000_toolkit_driver/test_60010_DriverCallPgmZZCALL.rb +403 -0
- data/test/test_60000_toolkit_driver/test_60110_DriverCallSrvPgmZZARRAY.rb +149 -0
- data/test/test_60000_toolkit_driver/test_60310_DriverCMD.rb +77 -0
- data/test/test_60000_toolkit_driver/test_60510_DriverDataQueue.rb +126 -0
- data/test/test_60000_toolkit_driver/test_60610_DriverCallSrvPgmZZBINARY.rb +59 -0
- data/test/test_60000_toolkit_driver/test_60710_DriverSH.rb +73 -0
- data/test/test_60000_toolkit_driver/test_60910_DriverCallPgmZZMISS.rb +44 -0
- data/test/test_60000_toolkit_driver/test_65010_DriverCallDB2.rb +265 -0
- data/test/test_60000_toolkit_driver/zzassign.rb +66 -0
- data/test/test_60000_toolkit_driver/zzquick.rb +149 -0
- data/test/test_60000_toolkit_driver/zztestrest.rb +45 -0
- data/test/test_60000_toolkit_driver/zzthreadold.rb +78 -0
- data/test/test_70000_toolkit_testonly/Rakefile +11 -0
- data/test/test_70000_toolkit_testonly/test_70010_DriverCallPgmTestOnly.rb +270 -0
- data/test/test_80000_toolkit_dsl/Rakefile +11 -0
- data/test/test_80000_toolkit_dsl/test_80010_DSLCallPgmZZCALL.rb +162 -0
- data/test/test_80000_toolkit_dsl/test_80110_DSLCallSrvPgmZZARRAY.rb +150 -0
- data/test/test_authorization/README_IBM_i +15 -0
- data/test/test_authorization/auth.rb +101 -0
- data/test/test_authorization/key.yml +2 -0
- data/test/test_authorization/password.yml +3 -0
- data/test/test_authorization/xmlservice.yml +69 -0
- data/test/test_data/rowcol.rb +57 -0
- data/version.txt +1 -0
- metadata +92 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
# File: test_60110_DriverCallSrvPgmZZARRAY.rb
|
2
|
+
require "../test_authorization/auth"
|
3
|
+
require "../test_data/rowcol"
|
4
|
+
|
5
|
+
# D ARRAYMAX c const(999)
|
6
|
+
# D dcRec_t ds qualified based(Template)
|
7
|
+
# D dcMyName 10A
|
8
|
+
# D dcMyJob 4096A
|
9
|
+
# D dcMyRank 10i 0
|
10
|
+
# D dcMyPay 12p 2
|
11
|
+
# *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
12
|
+
# * zzarray: check return array aggregate
|
13
|
+
# *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
14
|
+
# P zzarray B export
|
15
|
+
# D zzarray PI likeds(dcRec_t) dim(ARRAYMAX)
|
16
|
+
# D myName 10A
|
17
|
+
# D myMax 10i 0
|
18
|
+
# D myCount 10i 0
|
19
|
+
class Test_60110_DriverCallSrvPgmZZARRAY < RowColUnitTest
|
20
|
+
# -------------------------------
|
21
|
+
# test functions (start with prefix test_)
|
22
|
+
# rake test -- Unit run alpha sort order
|
23
|
+
# run #1) test_0000_connect
|
24
|
+
# run #2) test_nnnn_xxx
|
25
|
+
# :
|
26
|
+
# run #n) test_9999_close
|
27
|
+
# -------------------------------
|
28
|
+
|
29
|
+
def test_0050_zzarray
|
30
|
+
count = 5
|
31
|
+
zzwho = 'Ranger'
|
32
|
+
zzarray = XMLService::I_SRVPGM.new("ZZSRV","ZZARRAY",$toolkit_test_lib,{'error'=>'on'})
|
33
|
+
zzarray << XMLService::I_Char.new('myName',10,'FlinRock')
|
34
|
+
zzarray << XMLService::I_Int32.new('myMax',20)
|
35
|
+
zzarray << XMLService::I_Int32.new('myCount',0,'mycount')
|
36
|
+
zzarray.setReturn("aggregate",
|
37
|
+
XMLService::I_DS.new("dcRec_t",999,'mycount',
|
38
|
+
[
|
39
|
+
XMLService::I_Char.new('dcMyName',10,'na'),
|
40
|
+
XMLService::I_Char.new('dcMyJob',4096,'na'),
|
41
|
+
XMLService::I_Int32.new('dcMyRank',0),
|
42
|
+
XMLService::I_PackedDecimal.new('dcMyPay',12,2,0.0)
|
43
|
+
]))
|
44
|
+
|
45
|
+
|
46
|
+
# set input variables for call
|
47
|
+
zzarray.input.PARM0.myName = 'Skippy'
|
48
|
+
zzarray.input.PARM1.myMax = 9
|
49
|
+
zzarray.input.PARM2.myCount= 0
|
50
|
+
puts "\n+++++++++ input normal ++++++++++++++++"
|
51
|
+
puts zzarray.to_xml
|
52
|
+
# verify
|
53
|
+
self.match_value(__method__,__LINE__,'myName' ,'Skippy' ,zzarray.input.PARM0.myName)
|
54
|
+
self.match_value(__method__,__LINE__,'myMax' ,9 ,zzarray.input.PARM1.myMax)
|
55
|
+
self.match_value(__method__,__LINE__,'myCount' ,0 ,zzarray.input.PARM2.myCount)
|
56
|
+
|
57
|
+
|
58
|
+
# set input variables for call
|
59
|
+
zzarray.input.myName = zzwho
|
60
|
+
zzarray.input.myMax = count
|
61
|
+
zzarray.input.myCount= 0
|
62
|
+
puts "\n+++++++++ input fewer ++++++++++++++++"
|
63
|
+
puts zzarray.to_xml
|
64
|
+
# verify
|
65
|
+
self.match_value(__method__,__LINE__,'myName' ,zzwho ,zzarray.input.PARM0.myName)
|
66
|
+
self.match_value(__method__,__LINE__,'myMax' ,count ,zzarray.input.PARM1.myMax)
|
67
|
+
self.match_value(__method__,__LINE__,'myCount' ,0 ,zzarray.input.PARM2.myCount)
|
68
|
+
|
69
|
+
# call IBM i
|
70
|
+
zzarray.call
|
71
|
+
|
72
|
+
# puts zzarray.inspect
|
73
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
74
|
+
puts zzarray.dump_inspect
|
75
|
+
|
76
|
+
# xmlservice error occurred?
|
77
|
+
rc = zzarray.xmlservice_error
|
78
|
+
if rc
|
79
|
+
puts zzcall.dump_error
|
80
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
81
|
+
end
|
82
|
+
|
83
|
+
# output xml
|
84
|
+
puts "\n+++++++++ output xml ++++++++++++++++"
|
85
|
+
puts zzarray.out_xml
|
86
|
+
|
87
|
+
|
88
|
+
# output
|
89
|
+
puts "\n+++++++++ output ++++++++++++++++"
|
90
|
+
puts "#{zzarray.name}.#{zzarray.func}:\n"
|
91
|
+
puts " myName....#{zzarray.response.myName}\n"
|
92
|
+
puts " myMax.....#{zzarray.response.myMax}\n"
|
93
|
+
puts " myCount...#{zzarray.response.myCount}\n"
|
94
|
+
i = 0
|
95
|
+
zzarray.returndata.dcRec_t.each do |dcRec_t|
|
96
|
+
i += 1
|
97
|
+
puts "dcRec_t[#{i}]"
|
98
|
+
puts " Name...#{dcRec_t.dcMyName}"
|
99
|
+
puts " Job....#{dcRec_t.dcMyJob}"
|
100
|
+
puts " Rank...#{dcRec_t.dcMyRank}"
|
101
|
+
puts " Pay....#{dcRec_t.dcMyPay}"
|
102
|
+
end
|
103
|
+
# verify
|
104
|
+
self.match_value(__method__,__LINE__,'myName' ,zzwho ,zzarray.response.myName)
|
105
|
+
self.match_value(__method__,__LINE__,'myMax' ,count ,zzarray.response.myMax)
|
106
|
+
self.match_value(__method__,__LINE__,'myCount' ,count ,zzarray.response.myCount)
|
107
|
+
for i in 0..zzarray.returndata.dcRec_t.count-1
|
108
|
+
dcMyName = zzarray.response.myName.to_s + (i+1).to_s
|
109
|
+
dcMyJob = "Test " + (100 + i + 1).to_s
|
110
|
+
dcMyRank = 10 + i + 1
|
111
|
+
dcMyPay = 13.42 * (i+1)
|
112
|
+
self.match_value(__method__,__LINE__,'dcMyName' ,dcMyName ,zzarray.returndata.dcRec_t[i].dcMyName)
|
113
|
+
self.match_value(__method__,__LINE__,'dcMyJob' ,dcMyJob ,zzarray.returndata.dcRec_t[i].dcMyJob)
|
114
|
+
self.match_value(__method__,__LINE__,'dcMyRank' ,dcMyRank ,zzarray.returndata.dcRec_t[i].dcMyRank)
|
115
|
+
self.match_value(__method__,__LINE__,'dcMyPay' ,dcMyPay ,zzarray.returndata.dcRec_t[i].dcMyPay)
|
116
|
+
end
|
117
|
+
|
118
|
+
# output
|
119
|
+
puts "\n+++++++++ output long ++++++++++++++++"
|
120
|
+
puts "#{zzarray.name}.#{zzarray.func}:\n"
|
121
|
+
puts " myName....#{zzarray.response.PARM0.myName}\n"
|
122
|
+
puts " myMax.....#{zzarray.response.PARM1.myMax}\n"
|
123
|
+
puts " myCount...#{zzarray.response.PARM2.myCount}\n"
|
124
|
+
i = 0
|
125
|
+
zzarray.returndata.aggregate.dcRec_t.each do |dcRec_t|
|
126
|
+
i += 1
|
127
|
+
puts "dcRec_t[#{i}]"
|
128
|
+
puts " Name...#{dcRec_t.dcMyName}"
|
129
|
+
puts " Job....#{dcRec_t.dcMyJob}"
|
130
|
+
puts " Rank...#{dcRec_t.dcMyRank}"
|
131
|
+
puts " Pay....#{dcRec_t.dcMyPay}"
|
132
|
+
end
|
133
|
+
# verify
|
134
|
+
self.match_value(__method__,__LINE__,'myName' ,zzwho ,zzarray.response.PARM0.myName)
|
135
|
+
self.match_value(__method__,__LINE__,'myMax' ,count ,zzarray.response.PARM1.myMax)
|
136
|
+
self.match_value(__method__,__LINE__,'myCount' ,count ,zzarray.response.PARM2.myCount)
|
137
|
+
for i in 0..zzarray.returndata.aggregate.dcRec_t.count-1
|
138
|
+
dcMyName = zzarray.response.PARM0.myName.to_s + (i+1).to_s
|
139
|
+
dcMyJob = "Test " + (100 + i + 1).to_s
|
140
|
+
dcMyRank = 10 + i + 1
|
141
|
+
dcMyPay = 13.42 * (i+1)
|
142
|
+
self.match_value(__method__,__LINE__,'dcMyName' ,dcMyName ,zzarray.returndata.aggregate.dcRec_t[i].dcMyName)
|
143
|
+
self.match_value(__method__,__LINE__,'dcMyJob' ,dcMyJob ,zzarray.returndata.aggregate.dcRec_t[i].dcMyJob)
|
144
|
+
self.match_value(__method__,__LINE__,'dcMyRank' ,dcMyRank ,zzarray.returndata.aggregate.dcRec_t[i].dcMyRank)
|
145
|
+
self.match_value(__method__,__LINE__,'dcMyPay' ,dcMyPay ,zzarray.returndata.aggregate.dcRec_t[i].dcMyPay)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# File: test_60310_DriverCMD.rb
|
2
|
+
require "../test_authorization/auth"
|
3
|
+
require "../test_data/rowcol"
|
4
|
+
|
5
|
+
class Test_60310_DriverCMD < RowColUnitTest
|
6
|
+
# -------------------------------
|
7
|
+
# test functions (start with prefix test_)
|
8
|
+
# rake test -- Unit run alpha sort order
|
9
|
+
# run #1) test_0000_connect
|
10
|
+
# run #2) test_nnnn_xxx
|
11
|
+
# :
|
12
|
+
# run #n) test_9999_close
|
13
|
+
# -------------------------------
|
14
|
+
def test_0020_cmd_CHGLIBL
|
15
|
+
# ***************************************
|
16
|
+
# * CMD - CHGLIBL
|
17
|
+
# ***************************************
|
18
|
+
cmd = XMLService::I_CMD.new("CHGLIBL LIBL(QTEMP #{$toolkit_test_lib})")
|
19
|
+
# call IBM i
|
20
|
+
cmd.xmlservice
|
21
|
+
# inspect
|
22
|
+
puts cmd.dump_inspect
|
23
|
+
# xmlservice error occurred?
|
24
|
+
rc = cmd.xmlservice_error
|
25
|
+
if rc
|
26
|
+
puts cmd.dump_error()
|
27
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
28
|
+
end
|
29
|
+
# output
|
30
|
+
# puts cmd.out_xml
|
31
|
+
output = cmd.response.output
|
32
|
+
puts output
|
33
|
+
# verify
|
34
|
+
must = "success"
|
35
|
+
ok = output.include? must
|
36
|
+
self.match_value(__method__,__LINE__,"E N D",must,output)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_0020_cmd_RTVJOBA
|
40
|
+
# ***************************************
|
41
|
+
# * CMD - RTVJOBA
|
42
|
+
# ***************************************
|
43
|
+
cmd = XMLService::I_CMD.new("RTVJOBA USRLIBL(?) SYSLIBL(?) CCSID(?N) OUTQ(?)")
|
44
|
+
for i in 0..5
|
45
|
+
# call IBM i
|
46
|
+
cmd.xmlservice
|
47
|
+
# inspect
|
48
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
49
|
+
puts cmd.dump_inspect
|
50
|
+
# xmlservice error occurred?
|
51
|
+
rc = cmd.xmlservice_error
|
52
|
+
if rc
|
53
|
+
puts cmd.dump_error()
|
54
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
55
|
+
end
|
56
|
+
# output
|
57
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
58
|
+
output = cmd.response.output
|
59
|
+
puts output
|
60
|
+
puts "\n+++++++++ returndata output ++++++++++++++++"
|
61
|
+
puts "USRLIBL... #{cmd.returndata.USRLIBL}"
|
62
|
+
puts "SYSLIBL... #{cmd.returndata.SYSLIBL}"
|
63
|
+
puts "CCSID..... #{cmd.returndata.CCSID}"
|
64
|
+
puts "OUTQ...... #{cmd.returndata.OUTQ}"
|
65
|
+
# verify
|
66
|
+
must = "success"
|
67
|
+
ok = output.include? must
|
68
|
+
self.match_value(__method__,__LINE__,"E N D",must,output)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
# -------------------------------
|
74
|
+
# non-test functions (no prefix test_)
|
75
|
+
# -------------------------------
|
76
|
+
|
77
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# File: test_60510_DriverDataQueue.rb
|
2
|
+
require "../test_authorization/auth"
|
3
|
+
require "../test_data/rowcol"
|
4
|
+
|
5
|
+
class Test_60510_DriverDataQueue < RowColUnitTest
|
6
|
+
|
7
|
+
# -------------------------------
|
8
|
+
# test functions (start with prefix test_)
|
9
|
+
# rake test -- Unit run alpha sort order
|
10
|
+
# run #1) test_0000_connect
|
11
|
+
# run #2) test_nnnn_xxx
|
12
|
+
# :
|
13
|
+
# run #n) test_9999_close
|
14
|
+
# -------------------------------
|
15
|
+
|
16
|
+
def test_0020_data_queue
|
17
|
+
# ***************************************
|
18
|
+
# * CMD - Recreate Data Queue (DLTDTAQ, CRTDTAQ)
|
19
|
+
# ***************************************
|
20
|
+
dltdatq = XMLService::I_CMD.new("DLTDTAQ DTAQ(#{$toolkit_test_lib}/MYDATAQ)")
|
21
|
+
# call IBM i
|
22
|
+
dltdatq.xmlservice
|
23
|
+
# xmlservice error occurred?
|
24
|
+
rc = dltdatq.xmlservice_error
|
25
|
+
if rc
|
26
|
+
puts dltdatq.dump_all()
|
27
|
+
# self.match_value(__method__,__LINE__,'error' ,false,rc)
|
28
|
+
end
|
29
|
+
|
30
|
+
# inspect
|
31
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
32
|
+
puts dltdatq.dump_inspect
|
33
|
+
|
34
|
+
# output
|
35
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
36
|
+
puts dltdatq.response.output
|
37
|
+
|
38
|
+
crtdatq = XMLService::I_CMD.new("CRTDTAQ DTAQ(#{$toolkit_test_lib}/MYDATAQ) MAXLEN(100) AUT(*EXCLUDE)")
|
39
|
+
# call IBM i
|
40
|
+
crtdatq.xmlservice
|
41
|
+
# xmlservice error occurred?
|
42
|
+
rc = crtdatq.xmlservice_error
|
43
|
+
if rc
|
44
|
+
puts crtdatq.dump_all()
|
45
|
+
# self.match_value(__method__,__LINE__,'error' ,false,rc)
|
46
|
+
end
|
47
|
+
|
48
|
+
# inspect
|
49
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
50
|
+
puts crtdatq.dump_inspect
|
51
|
+
|
52
|
+
# output
|
53
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
54
|
+
puts crtdatq.response.output
|
55
|
+
|
56
|
+
# ***************************************
|
57
|
+
# * PGM - Send Data Queue (QSNDDTAQ) API
|
58
|
+
# ***************************************
|
59
|
+
# * 1 Data queue name Input Char(10)
|
60
|
+
# * 2 Library name Input Char(10)
|
61
|
+
# * 3 Length of data Input Packed(5,0)
|
62
|
+
# * 4 Data Input Char(*) Input
|
63
|
+
messageSnd = 'System i data queues forever'
|
64
|
+
qsnddtaq = XMLService::I_PGM.new("QSNDDTAQ")
|
65
|
+
qsnddtaq << XMLService::I_a.new('queueName',10,'MYDATAQ')
|
66
|
+
qsnddtaq << XMLService::I_a.new('libName',10,$toolkit_test_lib)
|
67
|
+
qsnddtaq << XMLService::I_p.new('lenData',5,0,50.0)
|
68
|
+
qsnddtaq << XMLService::I_a.new('dataInput',100,messageSnd)
|
69
|
+
# call IBM i
|
70
|
+
qsnddtaq.xmlservice
|
71
|
+
# xmlservice error occurred?
|
72
|
+
rc = qsnddtaq.xmlservice_error
|
73
|
+
if rc
|
74
|
+
puts qsnddtaq.dump_all()
|
75
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
76
|
+
end
|
77
|
+
# inspect
|
78
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
79
|
+
puts qsnddtaq.dump_inspect
|
80
|
+
|
81
|
+
# output
|
82
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
83
|
+
puts qsnddtaq.response.output
|
84
|
+
puts "Send......#{qsnddtaq.name}: #{qsnddtaq.response.dataInput}"
|
85
|
+
|
86
|
+
# ***************************************
|
87
|
+
# * PGM - Receive Data Queue (QRCVDTAQ) API
|
88
|
+
# ***************************************
|
89
|
+
# * 1 Data queue name Input Char(10)
|
90
|
+
# * 2 Library name Input Char(10)
|
91
|
+
# * 3 Length of data Input Packed(5,0)
|
92
|
+
# * 4 Data Char(*) Output
|
93
|
+
# * 5 Wait time Input Packed(5,0)
|
94
|
+
qrcvdtaq = XMLService::I_PGM.new("QRCVDTAQ")
|
95
|
+
qrcvdtaq << XMLService::I_a.new('queueName',10,'MYDATAQ')
|
96
|
+
qrcvdtaq << XMLService::I_a.new('libName',10,$toolkit_test_lib)
|
97
|
+
qrcvdtaq << XMLService::I_p.new('lenData',5,0,50.0)
|
98
|
+
qrcvdtaq << XMLService::I_a.new('dataOutput',100,'replace stuff here')
|
99
|
+
qrcvdtaq << XMLService::I_p.new('waitTime',5,0,0.0)
|
100
|
+
# call IBM i
|
101
|
+
qrcvdtaq.xmlservice
|
102
|
+
# xmlservice error occurred?
|
103
|
+
rc = qrcvdtaq.xmlservice_error
|
104
|
+
if rc
|
105
|
+
puts qrcvdtaq.dump_all()
|
106
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
107
|
+
end
|
108
|
+
|
109
|
+
# inspect
|
110
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
111
|
+
puts qrcvdtaq.dump_inspect
|
112
|
+
|
113
|
+
# output
|
114
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
115
|
+
puts qrcvdtaq.response.output
|
116
|
+
puts "Receive...#{qrcvdtaq.name}: #{qrcvdtaq.response.dataOutput}"
|
117
|
+
# verify
|
118
|
+
self.match_value(__method__,__LINE__,'dataOutput' ,messageSnd ,qrcvdtaq.response.dataOutput)
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
# -------------------------------
|
123
|
+
# non-test functions (no prefix test_)
|
124
|
+
# -------------------------------
|
125
|
+
|
126
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# File: test_60610_DriverCallSrvPgmZZBINARY.rb
|
2
|
+
require "../test_authorization/auth"
|
3
|
+
require "../test_data/rowcol"
|
4
|
+
|
5
|
+
class Test_60610_DriverCallSrvPgmZZBINARY < RowColUnitTest
|
6
|
+
# -------------------------------
|
7
|
+
# test functions (start with prefix test_)
|
8
|
+
# rake test -- Unit run alpha sort order
|
9
|
+
# run #1) test_0000_connect
|
10
|
+
# run #2) test_nnnn_xxx
|
11
|
+
# :
|
12
|
+
# run #n) test_9999_close
|
13
|
+
# -------------------------------
|
14
|
+
|
15
|
+
# *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
16
|
+
# * zzbinary: check return binary
|
17
|
+
# *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
18
|
+
# P zzbinary B export
|
19
|
+
# D zzbinary PI 20A
|
20
|
+
# D myBinary 20A
|
21
|
+
def test_0020_pgm_zzbinary
|
22
|
+
|
23
|
+
mypack = XMLService::I_p.new('mypack',12,2,99.9)
|
24
|
+
|
25
|
+
mybin = 0xA1A2A3A4A5A6A7A8A9AAA1A2A3A4A5A6A7A8A9AA
|
26
|
+
zzbinary = XMLService::I_SRVPGM.new("ZZSRV","ZZBINARY",$toolkit_test_lib)
|
27
|
+
zzbinary.inputParameter("parm","io",XMLService::I_Binary.new('myIn',20,mybin))
|
28
|
+
zzbinary.setReturn("binary", XMLService::I_Binary.new('myOut',20,0x00))
|
29
|
+
# call IBM i
|
30
|
+
zzbinary.xmlservice
|
31
|
+
# xmlservice error occurred?
|
32
|
+
rc = zzbinary.xmlservice_error
|
33
|
+
if rc
|
34
|
+
puts zzbinary.dump_all()
|
35
|
+
self.match_value(__method__,__LINE__,'error' ,false,rc)
|
36
|
+
end
|
37
|
+
|
38
|
+
# inspect
|
39
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
40
|
+
puts zzbinary.dump_inspect
|
41
|
+
|
42
|
+
# output
|
43
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
44
|
+
puts "#{zzbinary.name}.#{zzbinary.func}:"
|
45
|
+
puts "Input....#{zzbinary.response.myIn}"
|
46
|
+
|
47
|
+
# return data
|
48
|
+
puts "\n+++++++++ returndata output ++++++++++++++++"
|
49
|
+
puts "Return...#{zzbinary.returndata.myOut}"
|
50
|
+
|
51
|
+
# verify
|
52
|
+
self.match_value(__method__,__LINE__,'myOut',mybin.to_s(16).upcase,zzbinary.returndata.myOut.to_s)
|
53
|
+
end
|
54
|
+
|
55
|
+
# -------------------------------
|
56
|
+
# non-test functions (no prefix test_)
|
57
|
+
# -------------------------------
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# File: test_60710_DriverSH.rb
|
2
|
+
require "../test_authorization/auth"
|
3
|
+
require "../test_data/rowcol"
|
4
|
+
|
5
|
+
class Test_60710_DriverSH < RowColUnitTest
|
6
|
+
# -------------------------------
|
7
|
+
# test functions (start with prefix test_)
|
8
|
+
# rake test -- Unit run alpha sort order
|
9
|
+
# run #1) test_0000_connect
|
10
|
+
# run #2) test_nnnn_xxx
|
11
|
+
# :
|
12
|
+
# run #n) test_9999_close
|
13
|
+
# -------------------------------
|
14
|
+
|
15
|
+
def test_0020_sh_system_wrksysval
|
16
|
+
# ***************************************
|
17
|
+
# * PASE shell utility system - WRKSYSVAL
|
18
|
+
# ***************************************
|
19
|
+
wrksysval = XMLService::I_SH.new("system -i 'WRKSYSVAL OUTPUT(*PRINT)'")
|
20
|
+
# call IBM i
|
21
|
+
wrksysval.xmlservice
|
22
|
+
|
23
|
+
# inspect
|
24
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
25
|
+
puts wrksysval.dump_inspect
|
26
|
+
|
27
|
+
# output
|
28
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
29
|
+
# puts wrksysval.response.output.class.name
|
30
|
+
output = wrksysval.response.output
|
31
|
+
puts output
|
32
|
+
|
33
|
+
# verify
|
34
|
+
must = "E N D O F L I S T I N G"
|
35
|
+
ok = output.include? must
|
36
|
+
self.match_value(__method__,__LINE__,"E N D",must,output)
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def test_0030_sh_system_dsplibl
|
41
|
+
# ***************************************
|
42
|
+
# * PASE shell utility system - dsplibl
|
43
|
+
# ***************************************
|
44
|
+
dsplibl = XMLService::I_SH.new("system -i 'dsplibl OUTPUT(*PRINT)'", {'rows'=>'on'})
|
45
|
+
for i in 0..5
|
46
|
+
# call IBM i
|
47
|
+
dsplibl.xmlservice
|
48
|
+
|
49
|
+
# inspect
|
50
|
+
puts "\n+++++++++ dump_inspect ++++++++++++++++"
|
51
|
+
puts dsplibl.dump_inspect
|
52
|
+
|
53
|
+
# output
|
54
|
+
# puts dsplibl.out_xml
|
55
|
+
# puts dsplibl.response.output.class.name
|
56
|
+
puts "\n+++++++++ response output ++++++++++++++++"
|
57
|
+
output = dsplibl.response.output
|
58
|
+
for i in 0..output.count-1
|
59
|
+
puts "line #{i}: #{output[i]}"
|
60
|
+
end
|
61
|
+
|
62
|
+
# verify
|
63
|
+
must = "E N D O F L I S T I N G"
|
64
|
+
ok = output.include? must
|
65
|
+
self.match_value(__method__,__LINE__,"E N D",must,output)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# -------------------------------
|
70
|
+
# non-test functions (no prefix test_)
|
71
|
+
# -------------------------------
|
72
|
+
|
73
|
+
end
|