Neues Testprogrammn zur fehlerprüfung
This commit is contained in:
@@ -0,0 +1,248 @@
|
|||||||
|
**FREE
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Project.....: MEDDFN
|
||||||
|
//
|
||||||
|
// Member......: MEDDFNTSTE
|
||||||
|
//
|
||||||
|
// Description.: MEDDFN Error Test Program
|
||||||
|
//
|
||||||
|
// Erstellen mit:
|
||||||
|
//
|
||||||
|
// CRTRPGMOD MODULE(GOSCH1/MEDDFNTSTE)
|
||||||
|
// SRCSTMF('/home/GOSCH/meddfn/meddfntste.rpgle')
|
||||||
|
// OPTION(*EVENTF)
|
||||||
|
// DBGVIEW(*SOURCE)
|
||||||
|
// TGTRLS(*CURRENT)
|
||||||
|
//
|
||||||
|
// CRTPGM PGM(GOSCH1/MEDDFNTSTE)
|
||||||
|
// MODULE(GOSCH1/MEDDFNTSTE)
|
||||||
|
// BNDSRVPGM(GOSCH1/MEDDFNSRV)
|
||||||
|
// ACTGRP(*NEW)
|
||||||
|
// TGTRLS(*CURRENT)
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
ctl-opt
|
||||||
|
option(*srcstmt:*nodebugio);
|
||||||
|
|
||||||
|
|
||||||
|
/COPY './meddfn_h.rpgle'
|
||||||
|
/COPY './meddfnap_h.rpgle'
|
||||||
|
/COPY './meddfnpr.rpgle'
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Data
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-ds MediaDefinition
|
||||||
|
likeds(MD_MediaDefinition_T);
|
||||||
|
|
||||||
|
dcl-ds Error
|
||||||
|
likeds(MD_Error_T);
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Prototypes
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-pr TestCreateValidation;
|
||||||
|
end-pr;
|
||||||
|
|
||||||
|
dcl-pr TestRetrieveApiError;
|
||||||
|
end-pr;
|
||||||
|
|
||||||
|
dcl-pr TestDeleteApiError;
|
||||||
|
end-pr;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// Main
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
TestCreateValidation();
|
||||||
|
TestRetrieveApiError();
|
||||||
|
TestDeleteApiError();
|
||||||
|
|
||||||
|
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
dsply 'MEDDFN Error Test completed';
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// TestCreateValidation
|
||||||
|
//
|
||||||
|
// Verifies that the public interface returns a MEDDFN validation
|
||||||
|
// error when the media definition name is missing.
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-proc TestCreateValidation;
|
||||||
|
|
||||||
|
clear MediaDefinition;
|
||||||
|
clear Error;
|
||||||
|
|
||||||
|
MediaDefinition.LibraryName = 'QGPL';
|
||||||
|
MediaDefinition.NumberOfDevices = 1;
|
||||||
|
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
dsply 'Test: Create validation error';
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
|
||||||
|
monitor;
|
||||||
|
|
||||||
|
MD_CreateMediaDefinition(
|
||||||
|
MediaDefinition :
|
||||||
|
Error);
|
||||||
|
|
||||||
|
on-error;
|
||||||
|
|
||||||
|
// Expected: MD_CreateMediaDefinition sends an escape message.
|
||||||
|
|
||||||
|
endmon;
|
||||||
|
|
||||||
|
|
||||||
|
if Error.HasError;
|
||||||
|
dsply 'PASS Error.HasError';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.HasError';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if Error.MessageID = 'MDF0001';
|
||||||
|
dsply 'PASS Error.MessageID';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.MessageID';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if %trim(Error.MessageData) = '';
|
||||||
|
dsply 'PASS Error.MessageData';
|
||||||
|
else;
|
||||||
|
dsply 'INFO Error.MessageData contains data';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
end-proc;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// TestRetrieveApiError
|
||||||
|
//
|
||||||
|
// Verifies that an IBM i API error is returned through MD_Error_T.
|
||||||
|
// The object is deliberately not created.
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-proc TestRetrieveApiError;
|
||||||
|
|
||||||
|
clear MediaDefinition;
|
||||||
|
clear Error;
|
||||||
|
|
||||||
|
MediaDefinition.MediaDefinitionName = 'MEDDFNXERR';
|
||||||
|
MediaDefinition.LibraryName = 'GOSCH1';
|
||||||
|
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
dsply 'Test: Retrieve API error';
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
|
||||||
|
monitor;
|
||||||
|
|
||||||
|
MD_RetrieveMediaDefinition(
|
||||||
|
MediaDefinition :
|
||||||
|
Error);
|
||||||
|
|
||||||
|
on-error;
|
||||||
|
|
||||||
|
// Expected: QSRRTVMD reports that the object does not exist.
|
||||||
|
|
||||||
|
endmon;
|
||||||
|
|
||||||
|
|
||||||
|
if Error.HasError;
|
||||||
|
dsply 'PASS Error.HasError';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.HasError';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if %trim(Error.MessageID) <> '';
|
||||||
|
dsply 'PASS Error.MessageID';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.MessageID';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if %trim(Error.MessageData) <> '';
|
||||||
|
dsply 'PASS Error.MessageData';
|
||||||
|
else;
|
||||||
|
dsply 'INFO Error.MessageData is empty';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
end-proc;
|
||||||
|
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//
|
||||||
|
// TestDeleteApiError
|
||||||
|
//
|
||||||
|
// Verifies IBM i API error handling for deletion of a non-existing
|
||||||
|
// media definition.
|
||||||
|
//
|
||||||
|
//=====================================================================
|
||||||
|
|
||||||
|
dcl-proc TestDeleteApiError;
|
||||||
|
|
||||||
|
clear MediaDefinition;
|
||||||
|
clear Error;
|
||||||
|
|
||||||
|
MediaDefinition.MediaDefinitionName = 'MEDDFNXERR';
|
||||||
|
MediaDefinition.LibraryName = 'GOSCH1';
|
||||||
|
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
dsply 'Test: Delete API error';
|
||||||
|
dsply '----------------------------------------';
|
||||||
|
|
||||||
|
monitor;
|
||||||
|
|
||||||
|
MD_DeleteMediaDefinition(
|
||||||
|
MediaDefinition :
|
||||||
|
Error);
|
||||||
|
|
||||||
|
on-error;
|
||||||
|
|
||||||
|
// Expected: QSRDLTMD reports that the object does not exist.
|
||||||
|
|
||||||
|
endmon;
|
||||||
|
|
||||||
|
|
||||||
|
if Error.HasError;
|
||||||
|
dsply 'PASS Error.HasError';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.HasError';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if %trim(Error.MessageID) <> '';
|
||||||
|
dsply 'PASS Error.MessageID';
|
||||||
|
else;
|
||||||
|
dsply 'FAIL Error.MessageID';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
|
||||||
|
if %trim(Error.MessageData) <> '';
|
||||||
|
dsply 'PASS Error.MessageData';
|
||||||
|
else;
|
||||||
|
dsply 'INFO Error.MessageData is empty';
|
||||||
|
endif;
|
||||||
|
|
||||||
|
end-proc;
|
||||||
Reference in New Issue
Block a user