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;
    }