Last active
July 27, 2016 11:39
-
-
Save greghelton/7875d37ae3463b3df85133b8f052100b to your computer and use it in GitHub Desktop.
Using JUnit to test RPG
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ctl-opt Option(*Srcstmt:*Nodebugio:*NoUnRef) | |
NoMain Debug(*YES); | |
/copy BL0100M01C | |
dcl-s uuidKey_t CHAR(16) TEMPLATE; | |
dcl-s maxResponseData_t CHAR(39) TEMPLATE; | |
dcl-ds uuidDS_t Template; | |
dcl-subf bytes_provided INT(10); | |
dcl-subf bytes_available INT(10); | |
dcl-subf reserved CHAR(8); | |
dcl-subf uuid LIKE(uuidKey_t); | |
end-ds; | |
dcl-ds latlngfip QUALIFIED; | |
dcl-subf lat Char(14); | |
dcl-subf filler Char(3); | |
dcl-subf lng Char(14); | |
dcl-subf filler2 Char(3); | |
dcl-subf fip Char(5); | |
end-ds; | |
//********************************************************* | |
// getLatLng returns -1 if fail, 1 if successful | |
//********************************************************* | |
dcl-proc getLatLng EXPORT; | |
dcl-pi getLatLng Int(10); | |
pAddress Like(address_t); | |
plat Like(latlng_t); | |
plng Like(latlng_t); | |
pfip Like(fip_t); | |
end-pi; | |
//********************************************************* | |
// Variable declarations | |
//********************************************************* | |
dcl-s retvar Int(10); | |
dcl-s maxResponseDataSz Packed(5:0) | |
inz(%size(maxResponseData_t)); | |
dcl-s maxRequestDataSz Packed(5:0) inz(416); | |
dcl-ds uuidDS QUALIFIED; | |
dcl-subf bytes_provided INT(10) INZ(%size(uuidDS)); | |
dcl-subf bytes_available INT(10) INZ(0); | |
dcl-subf reserved CHAR(8) INZ(*ALLx'00'); | |
dcl-subf uuid LIKE(uuidKey_t); | |
end-ds; | |
dcl-pr getUuid extproc('_GENUUID'); | |
dcl-parm pUuid LIKE(uuidDS_t); | |
end-pr; | |
dcl-s rcvDataQueueName CHAR(10) inz('GEORESPONS'); | |
dcl-s rcvDataQueueLib CHAR(10) inz('GAH285 '); | |
dcl-s rcvDataQueueMessage LIKE(maxResponseData_t); | |
dcl-s rcvDataQueueWait Packed(5:0) inz(5); | |
dcl-s rcvDataQueueKeyOrder CHAR(2) inz('EQ'); | |
dcl-s rcvDataQueueKeyLength PACKED(3:0) | |
inz(%size(uuidKey_t)); | |
dcl-s rcvDataQueueKey LIKE(uuidKey_t); | |
dcl-s rcvDataQueueSenderLength Packed(3:0) | |
inz(%size(maxResponseData_t)); | |
dcl-s rcvDataQueueSender LIKE(maxResponseData_t); | |
dcl-pr QRcvDtaq extpgm('QRCVDTAQ') ; | |
dcl-parm p1 LIKE(rcvDataQueueName); | |
dcl-parm p2 LIKE(rcvDataQueueLib); | |
dcl-parm p3 LIKE(maxRequestDataSz); | |
dcl-parm p4 LIKE(rcvDataQueueMessage); | |
dcl-parm p5 LIKE(rcvDataQueueWait); | |
dcl-parm p6 LIKE(rcvDataQueueKeyOrder); | |
dcl-parm p7 LIKE(rcvDataQueueKeyLength); | |
dcl-parm p8 LIKE(uuidKey_t); | |
dcl-parm p9 LIKE(rcvDataQueueSenderLength); | |
dcl-parm p10 LIKE(rcvDataQueueSender); | |
end-pr; | |
dcl-s sndDataQueueName CHAR(10) inz('GEOREQUEST'); | |
dcl-s sndDataQueueLib CHAR(10) inz('GAH285 '); | |
dcl-ds sndDataQueueMessageDS QUALIFIED; | |
dcl-subf data LIKE(address_t); | |
dcl-subf key LIKE(uuidKey_t); | |
end-ds; | |
dcl-pr QSndDtaq extpgm('QSNDDTAQ') ; | |
dcl-parm p1 LIKE(sndDataQueueName); | |
dcl-parm p2 LIKE(sndDataQueueLib); | |
dcl-parm p3 LIKE(maxRequestDataSz); | |
dcl-parm p4 LIKE(sndDataQueueMessageDS); | |
end-pr; | |
dcl-s tmp CHAR(20); | |
dcl-s latlng CHAR(39); | |
dcl-s Pos Packed(2:0) inz; | |
dcl-s string CHAR(20) inz; | |
//********************************************************* | |
// Main routine | |
//********************************************************* | |
Clear plat; | |
Clear plng; | |
string = %subst(pAddress:1:20); | |
retvar = -1; | |
getUuid(uuidDS); | |
sndDataQueueMessageDS.key = uuidDs.uuid; | |
sndDataQueueMessageDS.data = pAddress; | |
rcvDataQueueKey = uuidDS.uuid; | |
rcvDataQueueWait = 5; | |
rcvDataQueueKeyOrder = 'EQ'; | |
rcvDataQueueKeyLength = %size(rcvDataQueueKey); | |
rcvDataQueueSenderLength = %size(rcvDataQueueSender); | |
QSndDtaQ (sndDataQueueName : sndDataQueueLib : | |
maxRequestDataSz : sndDataQueueMessageDS); | |
QRcvDtaQ (rcvDataQueueName : rcvDataQueueLib : | |
maxResponseDataSz : rcvDataQueueMessage : | |
rcvDataQueueWait : rcvDataQueueKeyOrder : | |
rcvDataQueueKeyLength : rcvDataQueueKey : | |
rcvDataQueueSenderLength : rcvDataQueueSender); | |
If maxResponseDataSz <> 0; | |
retvar = 1; | |
latLngFip = parseLatLngFip(rcvDataQueueMessage); | |
pLat = latlngfip.lat ; | |
pLng = latlngfip.lng ; | |
pFip = latlngfip.fip ; | |
EndIf; | |
Return retvar; | |
end-proc; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dcl-s address_t CHAR(400) TEMPLATE ; | |
dcl-s latlng_t CHAR( 15) TEMPLATE ; | |
dcl-s fip_T CHAR( 05) TEMPLATE ; | |
dcl-s pAddress Like(address_t); | |
dcl-s plat Like(latlng_t); | |
dcl-s plng Like(latlng_t); | |
dcl-s pfip Like(fip_t); | |
dcl-s iLatLongRet Int(10); | |
dcl-pr getLatLng Int(10) extproc(*DCLCASE); | |
pAddress Like(address_t); | |
lat Like(latlng_t); | |
lng Like(latlng_t); | |
fip Like(fip_T); | |
end-pr; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CRTSRVPGM SRVPGM(GAH285/BL0100S01) MODULE(GAH285/BL0100M01) EXPORT(*ALL) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment