< Previous | Next >

Lesson 4: Create a Java test class to test your application

Lesson 4 leads you through the creation of a Java™ test class to test your application.
Before you begin, you must complete Lesson 3: Create a Java method.
In this lesson, you
  1. First you create a Java test class: Expand InOutArray > Java Resources > src > sample.ims.
  2. Right click sample.ims and select New > Class.
  3. 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.
  4. Ensure that the Source folder field contains InOutArray/JavaSource and that the Package field contains sample.ims.data, and Click Finish.
  5. Double-click TestInOutProxy to open the file in the Java editor.
  6. 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);
    			}
    		}
    	}
    }
  7. Press Ctrl+S to save the changes.
  8. Next you test the application: Expand the InOutArray project and the sample.ims package.
  9. Right click the TestInOutProxy.java class and select Run As > Java Application.
  10. You see the following output on the console:
    test output
You have completed the input output array tutorial.
< Previous | Next >

Feedback