Урок 4 посвящен созданию тест-класса Java™ для
тестирования ваших приложений.
В этом уроке выполняются следующие задачи:
- Создание тест-класса Java.
- Изменение класса с использованием предоставляемого ниже кода.
- Запуск тест-класса для тестирования вашего приложения.
- Сначала нужно создать тест-класс Java: Разверните .
- Щелкните правой кнопкой на sample.ims и выберите
- В поле Имя введите TestMultiSeg. Обратите внимание, что класс TestMultiSeg приводится только в качестве примера;
нужно изменить код транзакции согласно спецификации вашего компьютера IMS.
О коде транзакции проконсультируйтесь со своим IMS администратором. Оператор input.setIn__trcd("SKS6
") может быть размещен в классе TestMultiSeg.java и модифицирован.
- Убедитесь, что Каталог исходного кода содержит MultiSegOutput/JavaSource, а
Пакет содержит sample.ims.
- Нажмите кнопку Готово.
- Откройте TestMultiSeg.java в редакторе классов Java.
- В редакторе все коды замените следующим:
/***********************************************************
* Лицензионные материалы - собственность IBM
*
* com.ibm.j2c.cheatsheet.content
*
* Авторское право Корпорации IBM 2004. Все права защищены.
*
* Обратите внимание на Ограничение прав для правительственных пользователей США:
* использование, копирование или разглашение регламентируются GSA ADP Перечнем
* контрактов с Корпорацией IBM.
************************************************************/
package sample.ims;
import com.ibm.etools.marshall.util.MarshallIntegerUtils;
import sample.ims.data.*;
public class TestMultiSeg
{
public static void main (String[] args)
{
byte[] segBytes = null;
int srcPos = 0;
int dstPos = 0;
int totalLen = 0;
int remainLen = 0;
byte[] buff;
short LL = 0;
short ZZ = 0;
try {
// ---------------------------------------------------
// Входящее сообщение транзакции IMS заполняется
// данными. Поле LL входящего сообщения задается с
// помощью метода getSize() обработчика формата
// входящего сообщения.
// ---------------------------------------------------
InputMsg input = new InputMsg();
input.setIn__ll((short) input.getSize());
input.setIn__zz((short) 0);
//----------------------------------------------
// за кодом транзакции обратитесь к вашему
// администратору IMS
//-----------------------------------------------
input.setIn__trcd("SKS6 ");
input.setIn__data1("M2 SI1");
input.setIn__data2("M3 SI1");
// ---------------------------------------------------
// Запустите транзакцию IMS. Будет возвращено многосегментное
// исходящее сообщение.
// ---------------------------------------------------
MSOImpl proxy = new MSOImpl();
sample.ims.CCIBuffer output = proxy.runMultiSegOutput(input);
// ---------------------------------------------------
// Извлечение многосегментного исходящего сообщения
// в качестве массива байтов с помощью метода
// getBytes() обработчика формата исходящего
// сообщения.
// ---------------------------------------------------
System.out.println(
"\nSize of output message is: " + output.getSize());
segBytes = output.getBytes();
srcPos = 0;
dstPos = 0;
totalLen = segBytes.length;
remainLen = totalLen;
// ---------------------------------------------------
// Заполнение первого сегмента объекта из буфера.
// ---------------------------------------
buff = null;
// Получение длины сегмента.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Поместить сегмент в байтовый массив.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Создание и заполнение объекта сегмента из массива байтов.
OutputSeg1 S1 = new OutputSeg1();
S1.setBytes(buff);
System.out.println(
"\nOutSeg1 LL is: "
+ S1.getOut__ll()
+ "\nOutSeg1 ZZ is: "
+ S1.getOut__zz()
+ "\nOutSeg1_DATA1 is: "
+ S1.getOut__data1());
// ---------------------------------------------------
// Заполнение второго сегмента объекта из буфера.
// ---------------------------------------------------
srcPos += LL;
buff = null;
// Получение длины сегмента.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Поместить сегмент в байтовый массив.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Создание и заполнение объекта сегмента из массива байтов.
OutputSeg2 S2 = new OutputSeg2();
S2.setBytes(buff);
System.out.println(
"\nOutSeg2 LL is: "
+ S2.getOut__ll()
+ "\nOutSeg2 ZZ is: "
+ S2.getOut__zz()
+ "\nOutSeg2_DATA1 is: "
+ S2.getOut__data1()
+ "\nOutSeg2_DATA2 is: "
+ S2.getOut__data2());
// ---------------------------------------------------
// Заполнение третьего сегмента объекта из буфера.
// ---------------------------------------------------
srcPos += LL;
buff = null;
// Получение длины сегмента.
LL =
MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
segBytes,
srcPos,
true,
MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
// Поместить сегмент в байтовый массив.
buff = new byte[LL];
System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
remainLen -= LL;
// Создание и заполнение объекта сегмента из массива байтов.
OutputSeg3 S3 = new OutputSeg3();
S3.setBytes(buff);
System.out.println(
"\nOutSeg3 LL is: "
+ S3.getOut__ll()
+ "\nOutSeg3 ZZ is: "
+ S3.getOut__zz()
+ "\nOutSeg3_DATA1 is: "
+ S3.getOut__data1()
+ "\nOutSeg3_DATA2 is: "
+ S3.getOut__data2()
+ "\nOutSeg3_DATA3 is: "
+ S3.getOut__data3());
}
catch (Exception e)
{
System.out.println("\nCaught exception is: " + e);
}
}
}
- Теперь протестируйте ваше приложение: Разверните .
- Щелкните правой кнопкой мыши на классе TestMultiSeg.java и выберите Запуск.
Выберите Запустить как Приложение >Java
- На консоли появится следующий вывод:

- Изучение учебника Многосегментный вывод завершено.