< Anterior | Próximo >

Lição 4: Criando uma Classe de Teste Java para Testar seu Aplicativo

A Lição 4 conduz você pela criação de uma classe de teste Java™ para testar seu aplicativo.
Antes de começar, conclua a Lição 3: Criar uma Classe de Buffer de Mensagem.
Nesta lição, você
  1. Primeiro você cria uma classe de teste Java: Expanda MultiSegOutput > Recursos Java > src > sample.ims.
  2. Clique com o botão direito do mouse em sample.ims e selecione Novo > Classe.
  3. No campo Nome, digite TestMultiSeg. Observe que a classe TestMultiSeg é fornecida apenas como exemplo; você precisa alterar o código de transação para as especificações da máquina do IMS. Consulte o administrador do IMS para obter o código de transação. É possível localizar a instrução input.setIn__trcd("SKS6 ") na classe TestMultiSeg.java e fazer modificações.
  4. Assegure-se de que a Pasta de Origem contenha MultiSegOutput/JavaSource e de que o Pacote contenha sample.ims.
  5. Clique em Concluir.
  6. Abra TestMultiSeg.java no editor de classe Java.
  7. Substitua todo o código no editor pelo seguinte:
    /***********************************************************
     * Materiais Licenciados - Propriedade da IBM
     *  
     * com.ibm.j2c.cheatsheet.content
     *  
     *Copyright IBM Corporation 2004. All Rights Reserved. 
     * 
     * Nota sobre Direitos Restritos para Usuários do Governo dos Estados Unidos: Uso, 
     * duplicação ou divulgação restritos pelo documento GSA ADP Schedule 
     * Contract com a IBM Corp. 
     ************************************************************/
    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;
    
    		tente
    		{
    			// ---------------------------------------------------			
    			// Preencha a mensagem de entrada da transação do IMS com
    			// dados.  Use o método do manipulador de formato de mensagem de entrada 
    			// getSize() para configurar o campo LL da mensagem de entrada.
    			// ---------------------------------------------------					
    			InputMsg input = new InputMsg();
    			input.setIn__ll((short) input.getSize());
    			input.setIn__zz((short) 0);
    			//----------------------------------------------
    			// descubra o código de transação do administrador do 			// IMS
    			//-----------------------------------------------
    			input.setIn__trcd("SKS6 ");
    			input.setIn__data1("M2 SI1");
    			input.setIn__data2("M3 SI1");
    
    			// ---------------------------------------------------			
    			// Execute a transação do IMS.  A mensagem de saída 	
    		// multissegmentos é retornada.
    			// ---------------------------------------------------				
    			MSOImpl proxy = new MSOImpl();
    			
    			sample.ims.CCIBuffer output = proxy.runMultiSegOutput(input);
    
    			// ---------------------------------------------------	
    			// Recupere a mensagem de saída multissegmentos como uma 
    			// matriz de bytes usando o método do manipulador de formato
      // de mensagem de saída getBytes().
    			// ---------------------------------------------------			 			
    			System.out.println(
    				"\nSize of output message is: " + output.getSize());
    			segBytes = output.getBytes();
    
    			srcPos = 0;
    			dstPos = 0;
    			totalLen = segBytes.length;
    			remainLen = totalLen;
    
    			// ---------------------------------------------------	
    			// Preencha o primeiro objeto de segmento a partir do buffer. 
    			// ---------------------------------------			             
    			buff = null;
    			// Obtenha o comprimento do segmento.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Coloque o segmento na matriz de bytes.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Crie e preencha o objeto de segmento a partir da matriz de bytes.
    			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());
    
    			// ---------------------------------------------------	
    			// Preencha um segundo objeto de segmento a partir do buffer. 
    			// ---------------------------------------------------	
    			srcPos += LL;
    			buff = null;
    			// Obtenha o comprimento do segmento.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Coloque o segmento na matriz de bytes.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Crie e preencha o objeto de segmento a partir da matriz de bytes.
    			
    			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());
    			// ---------------------------------------------------				
    			// Preencha o terceiro objeto de segmento a partir do buffer. 
    			// ---------------------------------------------------	
    			srcPos += LL;
    			buff = null;
    			// Obtenha o comprimento do segmento.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Coloque o segmento na matriz de bytes.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Crie e preencha o objeto de segmento a partir da matriz de bytes.
    			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. Agora teste seu aplicativo: Expanda MultiSegOutput > Recursos Java > src > sample.ims.
  9. Clique com o botão direito do mouse na classe TestMultiSeg.java e selecione Executar. Selecione Executar como > Aplicativo Java
  10. É possível ver a saída no console:

    Saída no console

  11. Você concluiu o tutorial Saída Multissegmentos.
< Anterior | Próximo >

Feedback