変換したデータ ソースは表形式のデータ ソースであり、Java のオブジェクト グラフのリレーショナル表現として解釈されます。変換したデータ ソースを使用すると、さまざまな Java オブジェクトとオブジェクト グラフを作成し、EJB Clinet ツールや他の SOAtest ツールのテスト パラメーター入力として使用できます。EJB Client の詳細については「EJB Client」を参照してください。

Java Bean のフィールドからのデータ ソース生成

Java Bean のフィールドからデータ ソースを生成するには、次の操作を行います。

  1. 次のいずれかを実施します。
    • テスト スイート レベルのデータ ソースを追加するには、対象のテスト スイート ノードを選択し、[データ ソースの追加] ツールバー ボタンをクリックします。



    • プロジェクト レベルのデータ ソースを追加するには、テスト ケース エクスプローラーで対象プロジェクトのノードを右クリックし、[新規追加] > [データ ソース] をクリックします。
    • グローバル レベルのデータ ソースを追加するには、テスト ケース エクスプローラーで [グローバル データ ソース] ノードを右クリックし、[新規追加] > [データ ソース] をクリックします。
  2. [Bean ウィザード] を選択し、[次へ] をクリックします。[Bean ウィザード] ダイアログが表示されます。



  3. [Bean ウィザード] ダイアログで以下のオプションを設定します。
    • 出力先タイプ:  作成するテーブル テンプレートのタイプをドロップダウン メニューから選択します。
    • 出力先ディレクトリ:  テーブルを書き込む場所を指定します。
    • 既存のファイルを上書きしますか?:  既存のファイルを上書きするかどうかを指定します。
    • Java クラス: テーブル表現を作成するクラスを指定します。
    • 依存関係をトレースしますか?:  依存関係をトレースするかどうかを [はい] または [いいえ] で選択します。[はい] を選択すると、[Java クラス] フィールドで指定した「ルート」クラスから「到達可能な」クラス メンバー変数の型に対してテーブルが生成されます。
  4. [次へ] ボタンをクリックします。[依存関係] ダイアログが表示されます。
  5. [次のクラスに対してテーブルを作成] から対象とする型の依存関係を選択します。
  6. [終了] をクリックしてテーブルを生成します。テーブルは指定されたディレクトリに作成され、各ファイルに対応するデータ ソースが選択されたテスト スイートに追加されます。

変換したデータ ソースのテーブル フォーマット

以下は、SOAtest が使用するリレーショナル/オブジェクト マッピングの主要な概念です。

  • テーブルの行はオブジェクトを表します。
  • テーブルには 2 つのタイプがあります。
    • クラス テーブル
      • 列はクラスの メンバー変数を表します。
      • 行はインスタンスを表します。
    • コレクション テーブル
      • 列はテーブルを表し、行は実際のオブジェクトを表します。
      • 行はインスタンスを表します。

オブジェクト参照

 テーブルの先頭列は、オブジェクト インスタンスの識別子です。オブジェクトを参照するには、テーブル名の後に空白を 1 つ置き、その後にオブジェクト識別子を記述します。各テーブル内で識別子の値がユニークである限り、識別子列の値は必ずしも行番号と一致する必要はありません。

値と参照

一般的に、非プリミティブ クラスのフィールド値は、上記のオブジェクト参照によって指定されます。しかし、プリミティブ型の値については、間接参照のレベルを増やすのは不要かつ煩雑なやり方です。短い形式で記述できるよう、広く定義された文字列表現を持つ一般的に使用される型は、インライン化できるよう、あらかじめサポートされています。参照列の空のセルは null 値と解釈されます。値列の空のセルは、空の文字列と解釈されます。

コレクション

可変サイズのコレクションをサポートするため、コレクション テーブルが導入されました。コレクション テーブルには参照列が 1 列だけあります。コレクション内のオブジェクトを参照するには、テーブル名の後に空白を 1 つ置き、後にオブジェクト識別子を続けます。

例として、CreditCardDO をルートに持つオブジェクト グラフをとりあげます。CreditCardDO には、PersonDO および AddressDO のインスタンス、および Vector of ActivityDO 型のオブジェクトがあります。

 

public class CreditCardDO extends PaymentMethodDO implements Serializable
{
    protected String ccNumber;    
    protected Date expirationDate;
    protected PersonDO ccHolder;
    protected AddressDO billingAddress;
    protected Vector recentActivity = new Vector();
  
    // set…()/get…() methods omitted
}
public class PaymentMethodDO implements Serializable {
    protected String bankName;
  
    // set…()/get…() methods omitted
}
public class AddressDO implements Serializable {
    protected String streetAddress;    
    protected String city;
    protected int zipCode;
    protected String state;
  
    // set…()/get…() methods omitted
}
public class PersonDO implements Serializable {
    protected String firstName;
    protected String lastName;
  
    // set…()/get…() methods omitted
}
public class ActivityDO implements Serializable {
    private float amount;
    private String description;
  
    // set…()/get…() methods omitted
}

 

次の表は、上記のオブジェクト グラフ例がどのように表形式で表されるかを示しています。
Table CreditCardDO.csv

soatest.examples.CreditCardDO
bankName
billingAddress ref
ccHolder ref
ccNumber
expirationDate
recentActivityref 
1SampleBankAddressDO 1PersonDO 1

1234123412341

234

8/31/2005RecentActivities-1

Table AddressDO.csv

soatest.examples.AddressDO
city
state
streetAddress
zipCode
1Los AngelesCA101 E. Huntington Dr.91016

Table PersonDO.csv

soatest.examples.PersonDO
firstName
lastName
DonaldDuck

Table ActivityDO.csv

soatest.examples.ActivityDO
amount
description
soatest.examples.ActivityDO
amount
description
11010 Charge-10
22020 Charge-20
33030 Charge-30
44040 Charge-40
55050 Charge-50
66060 Charge-60
77070 Charge-70
88080 Charge-80
99090 Charge-90
10100100 Charge-100

Table RecentActivities-1.csv

ActivityDO ref
ActivityDO 1
ActivityDO 2
ActivityDO 3
  • No labels