< 前へ | 次へ >

演習 4: アプリケーションをテストするための Java テスト・クラスの作成

演習 4 では、ご使用のアプリケーションをテストするための Java™ テスト・クラスの作成を学びます。
始める前に、演習 3: メッセージ・バッファー・クラスの作成を完了しておく必要があります。
この演習では、以下を行います。
  1. まず、Java テスト・クラスを作成します。「MultiSegOutput」 > 「Java リソース」 > 「src」 > 「sample.ims」を展開します。
  2. 「sample.ims」を右クリックし、「新規」 > 「クラス」を選択します。
  3. 「名前」フィールドに TestMultiSeg と入力します。 TestMultiSeg.java クラスは例としてのみ提供されているものなので、注意してください。トランザクション・コードはご使用の IMS™ マシンの仕様に変更する必要があります。 トランザクション・コードについては IMS 管理者にお問い合わせください。 ステートメント input.setIn__trcd("SKS6 ") は TestMultiSeg.java クラスにあり、変更することができます。
  4. 「ソース・フォルダー」「MultiSegOutput/JavaSource」が含まれており、「パッケージ」「sample.ims」が含まれていることを確認します。
  5. 「終了」をクリックします。
  6. Java クラス・エディターで TestMultiSeg.java を開きます。
  7. エディターで、すべてのコードを以下と置き換えます。
    /***********************************************************
     * Licensed Materials - Property of IBM
     *  
     * com.ibm.j2c.cheatsheet.content
     *  
     *Copyright IBM Corporation 2004. All Rights Reserved. 
     * 
     * Note to U.S. Government Users Restricted Rights:  Use, 
     * duplication or disclosure restricted by GSA ADP  Schedule 
     * Contract with 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;
    
    		try
    		{
    			// ---------------------------------------------------			
    			// Populate the IMS transaction input message with
    			// data.  Use the input message format handler method 
    			// getSize() to set the LL field of the input message.
    			// ---------------------------------------------------					
    			InputMsg input = new InputMsg();
    			input.setIn__ll((short) input.getSize());
    			input.setIn__zz((short) 0);
    			//----------------------------------------------
    			// find out the transaction code from your IMS 
    			// administrator
    			//-----------------------------------------------
    			input.setIn__trcd("SKS6 ");
    			input.setIn__data1("M2 SI1");
    			input.setIn__data2("M3 SI1");
    
    			// ---------------------------------------------------			
    			// Run the IMS transaction.  The multi-segment output 
    			// message is returned.
    			// ---------------------------------------------------				
    			MSOImpl proxy = new MSOImpl();
    			
    			sample.ims.CCIBuffer output = proxy.runMultiSegOutput(input);
    
    			// ---------------------------------------------------	
    			// Retrieve the multi-segment output message as a 
    			// byte array using the output message format
    			// handler method getBytes().
    			// ---------------------------------------------------			 			
    			System.out.println(
    				"¥nSize of output message is: " + output.getSize());
    			segBytes = output.getBytes();
    
    			srcPos = 0;
    			dstPos = 0;
    			totalLen = segBytes.length;
    			remainLen = totalLen;
    
    			// ---------------------------------------------------	
    			// Populate first segment object from buffer. 
    			// ---------------------------------------			             
    			buff = null;
    			// Get length of segment.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Put segment in byte array.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Create and populate segment object from byte array.
    			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());
    
    			// ---------------------------------------------------	
    			// Populate second segment object from buffer. 
    			// ---------------------------------------------------	
    			srcPos += LL;
    			buff = null;
    			// Get length of segment.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Put segment in byte array.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Create and populate segment object from byte array.
    			
    			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());
    			// ---------------------------------------------------				
    			// Populate third segment object from buffer. 
    			// ---------------------------------------------------	
    			srcPos += LL;
    			buff = null;
    			// Get length of segment.
    			LL =
    				MarshallIntegerUtils.unmarshallTwoByteIntegerFromBuffer(
    					segBytes,
    					srcPos,
    					true,
    					MarshallIntegerUtils.SIGN_CODING_TWOS_COMPLEMENT);
    
    			// Put segment in byte array.
    			buff = new byte[LL];
    			System.arraycopy(segBytes, srcPos, buff, dstPos, LL);
    			remainLen -= LL;
    
    			// Create and populate segment object from byte array.
    			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. 「複数セグメント出力」のチュートリアルはこれで終了です。
< 前へ | 次へ >

フィードバック