< Назад | Далее >

Урок 4: создание тест-класса Java для тестирования ваших приложений

Урок 4 посвящен созданию тест-класса Java™ для тестирования ваших приложений.
Сначала нужно закончить Урок 3: создание сообщения класса буфер.
В этом уроке выполняются следующие задачи:
  1. Сначала нужно создать тест-класс Java: Разверните MultiSegOutput > Ресурсы Java > src > sample.ims.
  2. Щелкните правой кнопкой на sample.ims и выберите Создать > Класс
  3. В поле Имя введите TestMultiSeg. Обратите внимание, что класс TestMultiSeg приводится только в качестве примера; нужно изменить код транзакции согласно спецификации вашего компьютера IMS. О коде транзакции проконсультируйтесь со своим IMS администратором. Оператор input.setIn__trcd("SKS6 ") может быть размещен в классе TestMultiSeg.java и модифицирован.
  4. Убедитесь, что Каталог исходного кода содержит MultiSegOutput/JavaSource, а Пакет содержит sample.ims.
  5. Нажмите кнопку Готово.
  6. Откройте TestMultiSeg.java в редакторе классов Java.
  7. В редакторе все коды замените следующим:
    /***********************************************************
     * Лицензионные материалы - собственность 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);
    		}
    	}
    }
  8. Теперь протестируйте ваше приложение: Разверните MultiSegOutput > Ресурсы Java > src > sample.ims.
  9. Щелкните правой кнопкой мыши на классе TestMultiSeg.java и выберите Запуск. Выберите Запустить как Приложение >Java
  10. На консоли появится следующий вывод:

    вывод на консоль

  11. Изучение учебника Многосегментный вывод завершено.
< Назад | Далее >

Комментарии