演習 4 では、ご使用のアプリケーションをテストするための Java™ テスト・クラスの作成を学びます。
この演習では、以下を行います。
- Java テスト・クラスを作成する。
- 提供されているコードを使用してクラスを編集する。
- テスト・クラスを実行してアプリケーションをテストする。
- まず、Java テスト・クラスを作成します。を展開します。
- 「sample.ims」を右クリックし、を選択します。
- 「名前」フィールドに TestInOutProxy と入力します。TestInOutProxy クラスは例としてのみ提供されているものなので、注意してください。トランザクション・コードはご使用の IMS™ マシンの仕様に変更する必要があります。トランザクション・コードについては IMS 管理者にお問い合わせください。
コード内でステートメント input.setWs__trcd("SKS7
"); を見つけて変更できます。
- 「ソース・フォルダー」フィールドに「InOutArray/JavaSource」が含まれており、「パッケージ」フィールドに「sample.ims.data」が含まれていることを確認し、「終了」をクリックします。
- 「TestInOutProxy」をダブルクリックすると、Java エディターでファイルが開きます。
- 提供されているすべてのコードをコピーし、それを TestInOutProxy.java クラスに貼り付けます。
エディターに既存のコードがある場合は、コピーしたコードで置き換えます。
注: TestInOutProxy.java Java クラスは英語ロケール用に作成されています。他のロケールではコードを変更する必要があります。
/*
* 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);
}
}
}
}
- Ctrl+S を押して、変更を保存します。
- 次に、アプリケーションをテストします。「InOutArray」プロジェクト、および「sample.ims」パッケージを展開します。
- 「TestInOutProxy.java」クラスを右クリックし、を選択します。
- コンソールに次の出力が表示されます。
これで、入出力配列のチュートリアルは完了です。