pureQuery のネストされた Bean のサンプルのテスト

テスト・メソッドは pureQuery メソッドを呼び出して、Bean をインスタンス化し、データを設定します。 このテスト・メソッドは、それらの Bean の内容のリストを生成します。

完全な JUnit テスト・クラスについては、pureQuery のネストされた Bean サンプルのための JUnit テスト・クラスを参照してください。

SQL 照会が含まれるインターフェースで定義するネストされた Bean のテスト・メソッド

このテストでは、SQL ステートメントは SimpleQueryInterface インターフェースに入っています。 以下のネストされた Bean をテストします。
    public void test_joinTest1() throws Exception {
        System.out.println("==Test1 nested beans with interface==");
        SimpleQueryInterface data = null;
        data = DataFactory.getData(SimpleQueryInterface.class, jdbcCon);

        System.out.println("==Get Dept data ==");
        List<Dept1> depts = data.joinTest();

        System.out.println("Employees by Dept:");
        for (Dept1 d : depts) {
            System.out.println(d.getDeptCode() + " - " + d.getDeptNameEn());
            List<Emp> employees = d.getDeptEmployees();
            if (!employees.isEmpty()) {
                for (Emp e : employees) {
                    System.out.println("  " + e.getLastName() + ", "
                            + e.getFirstName() + ",  " + e.toString());
                }
            } else {
                System.out.println(" -- No Employees-- ");
            }
        }
    }
1 つの部門のリストのサンプルを以下に示します。
7810 - Production and Distribution
  Agostini, Massimo,  ID: 10481
  Boscolo, Gabriella,  ID: 10480
  Ferrari, Arabela,  ID: 10304
  Gallo, Feliti,  ID: 10632
  Lombardi, Isabella,  ID: 10482
  Marino, Gualtier,  ID: 10793
  Medina, Benicio,  ID: 10483
  Morales, Ada,  ID: 10306

インライン SQL 照会で定義するネストされた Bean のテスト・メソッド

このテストでは、各部門の従業員のリストを生成します。 以下のネストされた Bean をテストします。
public void test_joinTest2() throws Exception {
        System.out.println("==Test2 nested bean with Inline SQL==");
        Data data = null;
        String myDeptNo = "6820";
        data = DataFactory.getData(jdbcCon);

        List<Dept2> depts = data
            queryList(
               "SELECT E.EMPLOYEE_CODE, E.FIRST_NAME, E.LAST_NAME, E.DATE_HIRED, "
                  + " ORG.ORGANIZATION_CODE, ORG.ORGANIZATION_NAME_EN"
                  + " FROM EMPLOYEE AS E, EMPLOYEE_HISTORY AS EH, ORGANIZATION AS ORG"
                  + " WHERE EH.EMPLOYEE_CODE = E.EMPLOYEE_CODE "
                  + "   AND EH.ORGANIZATION_CODE = ORG.ORGANIZATION_CODE"
                  + "   AND EH.RECORD_END_DATE IS NULL "
                  + " ORDER BY EH.ORGANIZATION_CODE, E.LAST_NAME ",
               Dept2.class);

        System.out.println("Employees by Dept:");
        for (Dept2 d : depts) {
            System.out.println(d.deptCode + " - " + d.deptNameEn);
            List<Emp> employees = d.deptEmployees;
            if (!employees.isEmpty()) {
                for (Emp e : employees) {
                    System.out.println("  " + e.getLastName() + ", "
                            + e.getFirstName() + ",  " + e.toString());
                }
            } else {
                System.out.println(" -- No Employees-- ");
            }
        }
    }
注: インライン SQL のテストでは、Dept2 の参照を Dept1 の参照に置き換えることもできます。 Dept2 クラスでは、get メソッドと set メソッドで Bean プロパティーを定義しています。 Dept1 クラスでは、public フィールドで Bean プロパティーを定義しています。
1 つの部門のリストのサンプルを以下に示します。
7810 - Production and Distribution
  Agostini, Massimo,  ID: 10481
  Boscolo, Gabriella,  ID: 10480
  Ferrari, Arabela,  ID: 10304
  Gallo, Feliti,  ID: 10632
  Lombardi, Isabella,  ID: 10482
  Marino, Gualtier,  ID: 10793
  Medina, Benicio,  ID: 10483
  Morales, Ada,  ID: 10306

フィードバック