Lesson 4 leads you through the creation of a Java™ test class to test your application.
In this lesson, you
- Create a Java test class.
- Edit the class using the code supplied.
- Run the test class to test your application.
- First you create a Java test class: Expand .
- Right click sample.ims and select .
- In the Name field, type TestInOutProxy. Note that the TestInOutProxy class is
provided as an example only; you need to change the transaction code
to your IMS™ machine specifications.
Consult your IMS administrator
for the transaction code. You can locate this statement input.setWs__trcd("SKS7
"); in the code to make the changes.
- Ensure that the Source folder field
contains InOutArray/JavaSource and that the Package field contains sample.ims.data, and Click Finish.
- Double-click TestInOutProxy to open
the file in the Java editor.
- Copy all the code provided, and paste it into the TestInOutProxy.java class. Replace any existing code
in the editor:
Note: The TestInOutProxy.java Java class was created for
an English locale; you have to modify the code for other locales.
/*
* Created on 4-Oct-2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package sample.ims;
import sample.ims.data.*;
import com.ibm.connector2.ims.ico.IMSDFSMessageException;
/**
* @author ivyho
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class TestInOutProxy
{
public static void main (String[] args)
{
try
{
// ---------------------------------------------------
// Create the formatHandler, then create the input
// message bean from the formatHandler.
// ---------------------------------------------------
INOUTMSG input = new INOUTMSG();
int sz = input.getSize();
System.out.println("\nInitial size of input message is: " + sz);
// ---------------------------------------------------
// Don't set the length (LL) field yet... wait until
// input message has been adjusted to reflect only
// the number of array elements actually sent.
// ---------------------------------------------------
input.setWs__zz((short) 0);
input.setWs__trcd("SKS7 ");
// ---------------------------------------------------
// Construct an array and populate it with the elements
// to be sent to the IMS application program. In this
// case three elements are sent.
// ---------------------------------------------------
Inoutmsg_ws__customer[] customers = new Inoutmsg_ws__customer[3];
Inoutmsg_ws__customer aCustomer1 = new Inoutmsg_ws__customer();
aCustomer1.setWs__cust__name("Cathy Tang");
aCustomer1.setWs__cust__number("CN001");
customers[0] = aCustomer1;
Inoutmsg_ws__customer aCustomer2 = new Inoutmsg_ws__customer();
aCustomer2.setWs__cust__name("Haley Fung");
aCustomer2.setWs__cust__number("CN002");
customers[1] = aCustomer2;
Inoutmsg_ws__customer aCustomer3 = new Inoutmsg_ws__customer();
aCustomer3.setWs__cust__name("Steve Kuo");
aCustomer3.setWs__cust__number("CN003");
customers[2] = aCustomer3;
// ---------------------------------------------------
// Set the array on the input message.
// ---------------------------------------------------
input.setWs__customer(customers);
input.setIndx((short) 3);
System.out.println("\nInitial value of INDX is: " + input.getIndx());
// ---------------------------------------------------
// Reallocate the buffer to the actual size
// ---------------------------------------------------
byte[] bytes = input.getBytes();
int size = input.getSize();
byte[] newBytes = new byte[size];
System.arraycopy(bytes, 0, newBytes, 0, size);
// ---------------------------------------------------
// Set the bytes back into the format handler and set
// the length field of the input message, now that
// we know the actual size.
// ---------------------------------------------------
input.setBytes(newBytes);
input.setWs__ll((short) size);
System.out.println("\nAdjusted size of input message is: " + size);
System.out.println("\nAdjusted size of INDX is: " + input.getIndx());
// ---------------------------------------------------
// Set fields that follow the array after the input
// message has been adjusted.
// ---------------------------------------------------
input.setWs__func__code("123456");
InOutImpl proxy = new InOutImpl();
INOUTMSG output = new sample.ims.data.INOUTMSG();
output = proxy.runInOut(input);
short outndx = output.getIndx();
System.out.println("\nOutput value of INDX is: " + outndx);
Inoutmsg_ws__customer outArray[] = output.getWs__customer();
for (int i = 0; i < outndx; i++)
{
System.out.println(
"\n"
+ outArray[i].getWs__cust__name()
+ outArray[i].getWs__cust__number());
}
}
catch (Exception e)
{
if (e instanceof IMSDFSMessageException)
{
System.out.println(
"\nIMS returned message: "
+ ((IMSDFSMessageException) e).getDFSMessage());
}
else
{
System.out.println(
"\nIMS Connector exception is: " + e);
}
}
}
}
- Press Ctrl+S to save the changes.
- Next you test the application: Expand the InOutArray project and the sample.ims package.
- Right click the TestInOutProxy.java class and select .
- You see the following output on the console:
You have completed the input output array tutorial.