Testing Add on Maintenance Class
First, in order to test an add, we need the data to add. This is provided in the method protected PageBody getNewEntity()
. Here is an example:
protected PageBody getNewEntity() {
PageBody body = new PageBody();
body.put(Maintenance.STRUCTURE.BATCH_CD, "ZZTEST2");
body.put(Maintenance.STRUCTURE.PROGRAM_NAME, "ZZPROG");
body.put(Maintenance.STRUCTURE.ACCUM_ALL_INST_SW, Boolean.FALSE);
body.put(Maintenance.STRUCTURE.DESCR, "Test service");
body.put(Maintenance.STRUCTURE.LAST_UPDATE_DTTM,
LAST_UPDATE_TIMESTAMP);
body.put(Maintenance.STRUCTURE.LAST_UPDATE_INST, BigInteger.ZERO);
body.put(Maintenance.STRUCTURE.NEXT_BATCH_NBR, BigInteger.ZERO);
ItemList itemList = body.newItemList
(Maintenance.STRUCTURE.list_BCP.name);
ListBody listBody = itemList.newListBody();
listBody.put(Maintenance.STRUCTURE.list_BCP.BATCH_CD, "ZZTEST2");
listBody.put(Maintenance.STRUCTURE.list_BCP.SEQ_NUM,
BigInteger.valueOf(10));
listBody.put(Maintenance.STRUCTURE.list_BCP.BATCH_PARM_NAME,
"param1");
listBody.put(Maintenance.STRUCTURE.list_BCP.BATCH_PARM_VAL, "val1");
listBody.put(Maintenance.STRUCTURE.list_BCP.REQUIRED_SW,
Boolean.FALSE);
listBody.put(Maintenance.STRUCTURE.list_BCP.DESCR50, "Parameter 1");
listBody.prepareToAdd();
return body;
}
(This may look like an awful lot of typing, but any IDE like e.g. Eclipse that offers code-completion will make this kind of code entry very quick).
If the maintenance performs some server-side "defaulting" (changing of the data), and the result after the add differs from the data above, you will need to override protected PageBody getNewReadEntity(PageBody original)
. This method gets the original data from the method above, and allows manipulation to bring it to the expected form after a read from the database.
In order to actually perform the read, the read header should be specified in protected abstract PageHeader getReadHeader()
. For example:
protected PageHeader getReadHeader() {
PageHeader header = new PageHeader();
header.put(Maintenance.HEADER.BATCH_CD, "ZZTEST2");
return header;
}