Esempio n. 1
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_Invoke(TestParameterValue testParameter)
    { //メソッド引数にBaseParameterValueの派生の型を定義可能。

        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        // データアクセス クラスを生成する
        DaoSuppliers daoSuppliers = new DaoSuppliers(this.GetDam());

        // 全件参照
        DataTable dt1 = new DataTable();
        daoSuppliers.D2_Select(dt1);

        // データアクセス クラスを生成する
        DaoCategories daoCategories = new DaoCategories(this.GetDam());

        // 実行
        DataTable dt2 = new DataTable();
        daoCategories.D2_Select(dt2);

        // 戻り値を戻す
        testReturn.Obj = new DataTable[] { dt1, dt2 };

        // ↑業務処理-----------------------------------------------------
    }
Esempio n. 2
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_メソッド名(TestParameterValue testParameter)
    { //メソッド引数にBaseParameterValueの派生の型を定義可能。

        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        // 個別Dao
        LayerD myDao = new LayerD(this.GetDam());
        //myDao.xxxx(testParameter, ref testReturn);

        // 共通Dao
        CmnDao cmnDao = new CmnDao(this.GetDam());
        cmnDao.ExecSelectScalar();

        // ↑業務処理-----------------------------------------------------
    }
Esempio n. 3
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_SelectCount(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "generate": // 自動生成Daoを使用する。             
                break;
            case "common": // 共通Daoを使用する。
            default:
                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                switch ((testParameter.ActionType.Split('%'))[2])
                {
                    case "static":
                        // 静的SQLを指定
                        cmnDao.SQLFileName = "ShipperCount.sql";
                        break;

                    case "dynamic":
                        // 動的SQLを指定
                        cmnDao.SQLFileName = "ShipperCount.xml";
                        break;
                }

                // 共通Daoを実行
                // 戻り値を設定
                testReturn.Obj = cmnDao.ExecSelectScalar();

                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 4
0
    /// <summary>テンプレ</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void テンプレ(TestParameterValue testParameter, TestReturnValue testReturn)
    {

        // ↓DBアクセス-----------------------------------------------------

        // ● 下記のいづれかの方法でSQLを設定する。

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2("ファイル名");

        //   -- 直接指定する場合。
        this.SetSqlByCommand("SQL文");

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P1", testParameter.ShipperID);

        object obj;

        //   -- 追加、更新、削除の場合(件数を確認できる)
        obj = this.ExecInsUpDel_NonQuery();

        //   -- 先頭の1セル分の情報を返すSELECTクエリを実行する場合
        obj = this.ExecSelectScalar();

        //   -- テーブル(or レコード)の情報を返す
        //      SELECTクエリを実行する場合(引数 = データテーブル)
        obj = new DataTable();
        this.ExecSelectFill_DT((DataTable)obj);

        //   -- テーブル(or レコード)の情報を返す
        //      SELECTクエリを実行する場合(引数 = データセット)
        obj = new DataSet();
        this.ExecSelectFill_DS((DataSet)obj);

        //   -- データリーダを返す
        IDataReader idr = (IDataReader)this.ExecSelect_DR();

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = obj;
    }
Esempio n. 5
0
    /// <summary>
    /// check Method
    /// </summary>
    /// <param name="testParameter">testParameter</param>
    /// <param name="testReturn">testReturn</param>
    public void check(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------
        string filename = "";
        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            switch (testParameter.check)
            {
                case "check_7a":
                    filename = "check_7a.xml";
                    break;
                case "check_11a":
                    filename = "check_11a.xml";
                    break;
                case "check_11c":
                    filename = "check_11c.xml";
                    break;
            }
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            switch (testParameter.check)
            {
                case "check_7a":
                    filename = "check_7a.xml";
                    break;
                case "check_11a":
                    filename = "check_11a.xml";
                    break;
                case "check_11c":
                    filename = "check_11c.xml";
                    break;
            }
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);
        switch (testParameter.check)
        {
            case "check_7a":
                ArrayList arr = new ArrayList();
                arr.Add(1);
                arr.Add(2);
                arr.Add(3);
                arr.Add(4);
                this.SetParameter("PLIST", arr);
                break;
            case "check_11a":
                this.SetParameter("P", false);
                break;
            case "check_11c":
                this.SetParameter("P", true);
                break;
        }

        // 戻り値 ds
        DataSet ds = new DataSet();

        //   -- 一覧を返すSELECTクエリを実行する
        this.ExecSelectFill_DS(ds);

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = ds;
    }
Esempio n. 6
0
    /// <summary>
    /// btnMButton1のクリックイベント(件数取得)
    /// </summary>
    /// <param name="fxEventArgs">イベントハンドラの共通引数</param>
    /// <returns>URL</returns>
    protected string UOC_sampleScreen_btnMButton1_Click(FxEventArgs fxEventArgs)
    {
        // 引数クラスを生成
        // 下位(B・D層)は、テスト クラスを流用する
        TestParameterValue testParameterValue
            = new TestParameterValue(
                this.ContentPageFileNoEx, fxEventArgs.ButtonID, "SelectCount",
                this.ddlDap.SelectedValue + "%"
                + this.ddlMode1.SelectedValue + "%"
                + this.ddlMode2.SelectedValue + "%"
                + this.ddlExRollback.SelectedValue,
                this.UserInfo);

        // 分離レベルの設定
        DbEnum.IsolationLevelEnum iso = this.SelectIsolationLevel();

        // B層を生成
        LayerB myBusiness = new LayerB();

        // 業務処理を実行
        TestReturnValue testReturnValue =
            (TestReturnValue)myBusiness.DoBusinessLogic(
                (BaseParameterValue)testParameterValue, iso);

        // 結果表示するメッセージ エリア
        Label label = (Label)this.GetMasterWebControl("Label1");
        label.Text = "";

        if (testReturnValue.ErrorFlag == true)
        {
            // 結果(業務続行可能なエラー)
            label.Text = "ErrorMessageID:" + testReturnValue.ErrorMessageID + "\r\n";
            label.Text += "ErrorMessage:" + testReturnValue.ErrorMessage + "\r\n";
            label.Text += "ErrorInfo:" + testReturnValue.ErrorInfo + "\r\n";
        }
        else
        {
            // 結果(正常系)
            label.Text = testReturnValue.Obj.ToString() + "件のデータがあります";
        }

        // 画面遷移しないポストバックの場合は、urlを空文字列に設定する
        return "";
    }
Esempio n. 7
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_Insert(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "common": // 共通Daoを使用する。

                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                cmnDao.SQLFileName = "ShipperInsert.sql";

                // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
                cmnDao.SetParameter("P2", testParameter.CompanyName);
                cmnDao.SetParameter("P3", testParameter.Phone);

                // 共通Daoを実行
                // 戻り値を設定
                testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery();

                break;

            case "generate": // 自動生成Daoを使用する。

                // 自動生成Daoを生成
                DaoShippers genDao = new DaoShippers(this.GetDam());

                // パラメタに対して、動的に値を設定する。
                genDao.CompanyName = testParameter.CompanyName;
                genDao.Phone = testParameter.Phone;

                // 自動生成Daoを実行
                // 戻り値を設定
                testReturn.Obj = genDao.D1_Insert();

                break;

            default: // 個別Daoを使用する。
                LayerD myDao = new LayerD(this.GetDam());
                myDao.Insert(testParameter, testReturn);
                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 8
0
    /// <summary>一覧を返すSELECTクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void SelectAll_DSQL(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string filename = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            filename = "ShipperSelectOrder.sql";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            filename = "ShipperSelectOrder.xml";
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);

        // ユーザ定義パラメタに対して、動的に値を設定する。
        string orderColumn = "";
        string orderSequence = "";

        if (testParameter.OrderColumn == "c1")
        {
            orderColumn = "ShipperID";
        }
        else if (testParameter.OrderColumn == "c2")
        {
            orderColumn = "CompanyName";
        }
        else if (testParameter.OrderColumn == "c3")
        {
            orderColumn = "Phone";
        }
        else { }

        if (testParameter.OrderSequence == "A")
        {
            orderSequence = "ASC";
        }
        else if (testParameter.OrderSequence == "D")
        {
            orderSequence = "DESC";
        }
        else { }

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P1", "test");

        // ユーザ入力は指定しない。
        // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、
        //    必要であれば、前後の空白を明示的に指定する必要がある。
        this.SetUserParameter("COLUMN", " " + orderColumn + " ");
        this.SetUserParameter("SEQUENCE", " " + orderSequence + " ");

        // 戻り値 dt
        DataTable dt = new DataTable();

        //   -- 一覧を返すSELECTクエリを実行する
        this.ExecSelectFill_DT(dt);

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = dt;
    }
Esempio n. 9
0
    /// <summary>Insertクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void Insert(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2("ShipperInsert.sql");

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P2", testParameter.CompanyName);
        this.SetParameter("P3", testParameter.Phone);

        object obj;

        //   -- 追加(件数を確認できる)
        obj = this.ExecInsUpDel_NonQuery();

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = obj;
    }
Esempio n. 10
0
 /// <summary>
 /// GetIdentityValue() Method to get the Current Identity value of Shipper ID column in Shippers table 
 /// </summary>
 /// <returns value="intIdentity">intIdentity as integer data type</returns>
 private int GetIdentityValue()
 {
     int intIdentity = 0;
     MyUserInfo userInfo = new MyUserInfo("user1", "Hostname");
     LayerB lb = new LayerB();
     TestParameterValue test = new TestParameterValue("SELECT IDENT_CURRENT('shippers')", "button1", "GetID", "SQL%individual%static%-", userInfo);
     TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test);
     intIdentity = Convert.ToInt16(testreturn.Obj);
     return intIdentity;
 }
Esempio n. 11
0
    /// <summary>一覧を返すSELECTクエリを実行する(DS)</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void SelectAll_DS(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string commandText = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            commandText = "SELECT * FROM Shippers";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            commandText =
                "<?xml version=\"1.0\" encoding=\"utf-8\" ?><ROOT>SELECT * FROM Shippers</ROOT>";
            // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。
        }

        //   -- 直接指定する場合。
        this.SetSqlByCommand(commandText);

        // 戻り値 ds
        DataSet ds = new DataSet();

        //   -- 一覧を返すSELECTクエリを実行する
        this.ExecSelectFill_DS(ds);

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = ds;
    }
Esempio n. 12
0
 /// <summary>
 /// GetListData() Method to get list of integer of ShipperID in shippers table before running the test cases 
 /// </summary>
 /// <param name="list">list</param>
 /// <returns value="getList">List of Integer data type<int></returns>
 private List<int> GetListData()
 {
     List<int> getList = new List<int>();
     MyUserInfo userInfo = new MyUserInfo("user1", "Hostname");
     LayerB lb = new LayerB();
     TestParameterValue test = new TestParameterValue("Select ShipperID from Shippers", "button1", "GetList", "SQL%individual%static%-", userInfo);
     TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test);
     DataTable dt = (DataTable)testreturn.Obj;
     foreach (DataRow dr in dt.Rows)
     {
         getList.Add((int)dr[0]);
     }
     return getList;
 }
Esempio n. 13
0
 /// <summary>
 /// DeleteData() Method to delete the ShipperID's from shippers table which are inserted while running test cases. 
 /// </summary>
 private void DeleteData()
 {
     MyUserInfo userInfo = new MyUserInfo("user1", "Hostname");
     LayerB lb = new LayerB();
     string strIDdelete = ToCommaString(testList);
     TestParameterValue test = new TestParameterValue("Delete from Shippers where ShipperID not in(" + strIDdelete + ")", "button1", "GetDelete", "SQL%individual%static%-", userInfo);
     TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test);
     testList.Clear();
 }
Esempio n. 14
0
    /// <summary>ロールバックのテスト</summary>
    /// <param name="testParameter">引数クラス</param>
    private void TestRollback(TestParameterValue testParameter)
    {
        switch ((testParameter.ActionType.Split('%'))[3])
        {

            case "Business":

                // 戻り値が見えるか確認する。
                ((TestReturnValue)this.ReturnValue).Obj = "戻り値が戻るか?";

                // 業務例外のスロー
                throw new BusinessApplicationException(
                    "ロールバックのテスト",
                    "ロールバックのテスト",
                    "エラー情報");
            //break; // 到達できないためコメントアウト

            case "System":

                // 戻り値が見えるか確認する。
                ((TestReturnValue)this.ReturnValue).Obj = "戻り値が戻るか?";

                // システム例外のスロー
                throw new BusinessSystemException(
                    "ロールバックのテスト",
                    "ロールバックのテスト");
            //break; // 到達できないためコメントアウト

            case "Other":

                // 戻り値が見えるか確認する。
                ((TestReturnValue)this.ReturnValue).Obj = "戻り値が戻るか?";

                // その他、一般的な例外のスロー
                throw new Exception("ロールバックのテスト");
            //break; // 到達できないためコメントアウト

            case "Other-Business":
                // 戻り値が見えるか確認する。
                ((TestReturnValue)this.ReturnValue).Obj = "戻り値が戻るか?";

                // その他、一般的な例外(業務例外へ振り替え)のスロー
                throw new Exception("Other-Business");
            //break; // 到達できないためコメントアウト

            case "Other-System":

                // 戻り値が見えるか確認する。
                ((TestReturnValue)this.ReturnValue).Obj = "戻り値が戻るか?";

                // その他、一般的な例外(システム例外へ振り替え)のスロー
                throw new Exception("Other-System");
            //break; // 到達できないためコメントアウト
        }
    }
Esempio n. 15
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_Delete(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "common": // 共通Daoを使用する。

                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                switch ((testParameter.ActionType.Split('%'))[2])
                {
                    case "static":
                        // 静的SQLを指定
                        cmnDao.SQLFileName = "ShipperDelete.sql";
                        break;

                    case "dynamic":
                        // 動的SQLを指定
                        cmnDao.SQLFileName = "ShipperDelete.xml";
                        break;
                }

                // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
                cmnDao.SetParameter("P1", testParameter.ShipperID);

                // 共通Daoを実行
                // 戻り値を設定
                testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery();

                break;

            case "generate": // 自動生成Daoを使用する。

                // 自動生成Daoを生成
                DaoShippers genDao = new DaoShippers(this.GetDam());

                // パラメタに対して、動的に値を設定する。
                genDao.PK_ShipperID = testParameter.ShipperID;

                // 自動生成Daoを実行
                // 戻り値を設定
                testReturn.Obj = genDao.S4_Delete();

                break;

            default: // 個別Daoを使用する。
                LayerD myDao = new LayerD(this.GetDam());
                myDao.Delete(testParameter, testReturn);
                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 16
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_SelectAll_DSQL(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "common": // 共通Daoを使用する。

                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                switch ((testParameter.ActionType.Split('%'))[2])
                {
                    case "static":
                        // 静的SQLを指定
                        cmnDao.SQLFileName = "ShipperSelectOrder.sql";
                        break;

                    case "dynamic":
                        // 動的SQLを指定
                        cmnDao.SQLFileName = "ShipperSelectOrder.xml";
                        break;
                }

                // ユーザ定義パラメタに対して、動的に値を設定する。
                string orderColumn = "";
                string orderSequence = "";

                if (testParameter.OrderColumn == "c1")
                {
                    orderColumn = "ShipperID";
                }
                else if (testParameter.OrderColumn == "c2")
                {
                    orderColumn = "CompanyName";
                }
                else if (testParameter.OrderColumn == "c3")
                {
                    orderColumn = "Phone";
                }
                else { }

                if (testParameter.OrderSequence == "A")
                {
                    orderSequence = "ASC";
                }
                else if (testParameter.OrderSequence == "D")
                {
                    orderSequence = "DESC";
                }
                else { }

                // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
                cmnDao.SetParameter("P1", "test");

                // ユーザ入力は指定しない。
                // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、
                //    必要であれば、前後の空白を明示的に指定する必要がある。
                cmnDao.SetUserParameter("COLUMN", " " + orderColumn + " ");
                cmnDao.SetUserParameter("SEQUENCE", " " + orderSequence + " ");

                // 戻り値 dt
                DataTable dt = new DataTable();

                // 共通Daoを実行
                cmnDao.ExecSelectFill_DT(dt);

                // 自動生成Daoを実行
                testReturn.Obj = dt;

                break;

            //case "generate": // 自動生成Daoを使用する。
            //    // 当該SQLなし
            //    break;

            default: // 個別Daoを使用する。
                LayerD myDao = new LayerD(this.GetDam());
                myDao.SelectAll_DSQL(testParameter, testReturn);
                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 17
0
    /// <summary>件数情報を返すSELECTクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void SelectCount(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string filename = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            filename = "ShipperCount.sql";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            filename = "ShipperCount.xml";
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);

        object obj;

        //   -- 件数情報を返すSELECTクエリを実行する
        obj = this.ExecSelectScalar();

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = obj;
    }
Esempio n. 18
0
        public void SampleScreen_DaoAndDam_Test(string screen, string buttonID, string action, string dbGeneration, string user, string ipAddress,
                                          string isolationLevel, string shipperID, string companyName, string phone)
        {
            //using (TransactionScope scope = new TransactionScope())
            //{
            // 引数クラスを生成
            // 下位(B・D層)は、テスト クラスを流用する
            MyUserInfo userInfo = new MyUserInfo(user, ipAddress);
            TestParameterValue testParameterValue
                 = new TestParameterValue(
                     screen, buttonID, action,
                     dbGeneration,
                    userInfo);
            TestReturnValue resultTestReturnValue;
            TestReturnValue expectedTestReturnValue;
            DataSet expectedDataSet = new DataSet();
            DataSet resultDataSet = new DataSet();
            //Assert conditions
            switch (action)
            {
                case "SelectCount":
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                      out expectedTestReturnValue);
                    Assert.AreEqual(resultTestReturnValue.Obj.ToString(), expectedTestReturnValue.Obj.ToString());
                    break;
                case "SelectAll_DT":
                case "SelectAll_DR":
                case "SelectAll_DSQL":
                    testParameterValue.OrderColumn = "c1";
                    testParameterValue.OrderSequence = "A";
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    DataTable expectedDataTable = (DataTable)expectedTestReturnValue.Obj;
                    DataTable resultDataTable = (DataTable)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(expectedDataTable.Rows.Count, resultDataTable.Rows.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "SelectAll_DS":
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    expectedDataSet = (DataSet)expectedTestReturnValue.Obj;
                    resultDataSet = (DataSet)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(resultDataSet.Tables.Count, expectedDataSet.Tables.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "Select":
                    testParameterValue.OrderColumn = "c1";
                    testParameterValue.OrderSequence = "A";
                    testParameterValue.ShipperID = 1;
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    if (!resultTestReturnValue.ErrorFlag)
                    {
                        Assert.AreEqual(resultTestReturnValue.ShipperID, expectedTestReturnValue.ShipperID);
                        Assert.AreEqual(resultTestReturnValue.Phone, expectedTestReturnValue.Phone);
                        Assert.AreEqual(resultTestReturnValue.CompanyName, expectedTestReturnValue.CompanyName);
                    }
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "Insert":
                    testParameterValue.CompanyName = companyName;
                    testParameterValue.Phone = phone;
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);

                    if (!resultTestReturnValue.ErrorFlag)
                    {
                        Assert.AreEqual(resultTestReturnValue.Obj.ToString(), expectedTestReturnValue.Obj.ToString());
                    }
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;

                case "Update":
                    testParameterValue.ShipperID = int.Parse(shipperID);
                    testParameterValue.CompanyName = companyName;
                    testParameterValue.Phone = phone;
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    if (!resultTestReturnValue.ErrorFlag)
                    {
                        Assert.AreEqual(resultTestReturnValue.Obj.ToString(), expectedTestReturnValue.Obj.ToString());
                    }
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "Delete":
                    // 情報の設定
                    testParameterValue.ShipperID = int.Parse(shipperID);
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    if (!resultTestReturnValue.ErrorFlag)
                    {
                        if (resultTestReturnValue.Obj.ToString() == "1")
                        {
                            Assert.AreEqual(resultTestReturnValue.Obj.ToString(), "1");
                        }
                        else
                        {
                            Assert.AreEqual(resultTestReturnValue.Obj.ToString(), "0");
                        }
                    }
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "SelectJoin0":
                case "SelectJoin1":
                case "SelectJoin2":
                case "TestSqlsvr4c":
                case "TestSqlsvr4b":
                case "TestSqlsvr4a":
                case "TestSqlsvr2c":
                case "TestSqlsvr2d":
                case "TestSqlsvr_n":
                case "TestSqlsvr_1e":
                case "TestSqlsvr1a":
                case "TestSqlsvr1b":
                case "TestSqlsvr2e":
                case "TestSqlsvr2f":
                    testParameterValue.CompanyName = companyName;
                    testParameterValue.OrderColumn = "c1";
                    testParameterValue.OrderSequence = "A";
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue, out resultTestReturnValue,
                                     out expectedTestReturnValue);
                    expectedDataSet = (DataSet)expectedTestReturnValue.Obj;
                    resultDataSet = (DataSet)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(resultDataSet.Tables.Count, expectedDataSet.Tables.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "SelectCase1a":
                case "SelectCase1b":
                case "SelectCase2a":
                case "SelectCase2b":
                case "SelectCase3a":
                case "SelectCase3b":
                case "SelectCase4a":
                case "SelectCase4b":
                case "SelectCase5a":
                case "SelectCase5b":
                case "SelectCaseDefault1a":
                case "SelectCaseDefault1b":
                case "SelectCaseDefault2a":
                case "SelectCaseDefault2b":
                case "SelectCaseDefault3a":
                case "SelectCaseDefault3b":
                case "SelectCaseDefault4a":
                case "SelectCaseDefault4b":
                    TestParameterValue testParameterValue1
                 = new TestParameterValue(
                     screen, buttonID, "SelectCase",
                     dbGeneration,
                    userInfo);
                    testParameterValue1.SelectCase = action;
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue1, out resultTestReturnValue,
                                   out expectedTestReturnValue);
                    DataTable expectedDatatable = (DataTable)expectedTestReturnValue.Obj;
                    DataTable resultDatatable = (DataTable)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(expectedDatatable.Rows.Count, resultDatatable.Rows.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "check_1":
                case "check_2":
                case "check_3":
                case "check_4":
                case "check_7a":
                case "check_11a":
                case "check_11c":
                case "check_6b":
                case "check_3f":
                case "check_9c":
                case "check_5":
                    TestParameterValue testParameterValue2
                = new TestParameterValue(
                    screen, buttonID, "check",
                    dbGeneration,
                   userInfo);
                    testParameterValue2.check = action;
                    testParameterValue.OrderColumn = "c1";
                    testParameterValue.OrderSequence = "A";
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue2, out resultTestReturnValue,
                                  out expectedTestReturnValue);
                    expectedDataSet = (DataSet)expectedTestReturnValue.Obj;
                    resultDataSet = (DataSet)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(expectedDataSet.Tables.Count, resultDataSet.Tables.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;

                case "edit_8e":
                case "edit_4e":
                case "edit_3e":
                case "edit_9a":
                case "edit_9b1":
                case "edit_9c1":
                case "edit_2a":
                case "edit_5e":
                case "edit_9e":
                case "edit_10e":
                case "edit_11e":
                    TestParameterValue testParameterValue3
                 = new TestParameterValue(
                     screen, buttonID, "edit",
                     dbGeneration,
                    userInfo);
                    testParameterValue3.SelectCase = action;

                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue3, out resultTestReturnValue,
                                   out expectedTestReturnValue);
                    expectedDataSet = (DataSet)expectedTestReturnValue.Obj;
                    resultDataSet = (DataSet)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(expectedDataSet.Tables.Count, resultDataSet.Tables.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
                case "ArgumentException0":
                case "ArgumentException1":
                case "ArgumentException2":
                case "ArgumentException3":
                case "ArgumentException4":
                case "ArgumentException5":
                case "ArgumentException6":
                case "ArgumentException7":
                case "ArgumentException8":
                case "ArgumentException9":
                case "ArgumentException10":
                case "ArgumentException11":
                case "ArgumentException12":
                case "ArgumentException13":
                case "ArgumentException14":
                case "ArgumentException15":
                case "ArgumentException16":
                case "ArgumentException17":
                case "ArgumentException18":
                case "ArgumentException19":
                case "ArgumentException20":
                case "ArgumentException21":
                case "ArgumentException22":
                case "ArgumentException23":
                    TestParameterValue testParameterValue4
                = new TestParameterValue(
                    screen, buttonID, "ArgumentException",
                    dbGeneration,
                   userInfo);
                    testParameterValue4.SelectCase = action;
                    CallBusinessLogic(screen, buttonID, action, dbGeneration, user, ipAddress, isolationLevel, testParameterValue4, out resultTestReturnValue,
                                  out expectedTestReturnValue);
                    expectedDataSet = (DataSet)expectedTestReturnValue.Obj;
                    resultDataSet = (DataSet)resultTestReturnValue.Obj;
                    if (!resultTestReturnValue.ErrorFlag)
                        Assert.AreEqual(expectedDataSet.Tables.Count, resultDataSet.Tables.Count);
                    else
                        Assert.AreEqual(resultTestReturnValue.ErrorFlag, true);
                    break;
            }
            //}
        }
Esempio n. 19
0
    /// <summary>
    /// TestMethodForParamTag Method
    /// </summary>
    /// <param name="testParameter">testParameter</param>
    /// <param name="testReturn">testReturn</param>
    public void TestMethodForParamTag(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        BaseDam bd = (BaseDam)this.GetDam();
        bd.SetSqlByFile(testParameter.Filepath);

        DataTable dt = new DataTable();
        dt = bd.GetParametersFromPARAMTag();
        testReturn.Obj = dt;
    }
Esempio n. 20
0
        /// <summary>CallBusinessLogic Method</summary>
        /// <param name="screen">screen ID</param>
        /// <param name="buttonID">Button ID</param>
        /// <param name="action">Control action name</param>
        /// <param name="dbGeneration">Db Generation</param>
        /// <param name="user">User Info</param>
        /// <param name="ipAddress">Ip address</param>
        /// <param name="isolationLevel">Isolation level</param>
        /// <param name="testParameterValue">Test Parameter values</param>
        /// <returns>resultTestReturnValue</returns>
        /// <returns>expectedTestReturnValue</returns>
        private void CallBusinessLogic(string screen, string buttonID, string action, string dbGeneration, string user, string ipAddress, string isolationLevel, TestParameterValue testParameterValue, out TestReturnValue resultTestReturnValue, out TestReturnValue expectedTestReturnValue)
        {
            // 分離レベルの設定
            DbEnum.IsolationLevelEnum iso = SelectIsolationLevel(isolationLevel);

            // B層を生成
            LayerB myBusiness = new LayerB();

            // 業務処理を実行
            resultTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso);
            expectedTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso);
        }
Esempio n. 21
0
    /// <summary>一覧を返すSELECTクエリを実行する(DR)</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void SelectAll_DR(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string commandText = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            commandText = "SELECT * FROM Shippers";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            commandText =
                "<?xml version=\"1.0\" encoding=\"shift_jis\" ?><ROOT>SELECT * FROM Shippers</ROOT>";
            // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。
        }

        //   -- 直接指定する場合。
        this.SetSqlByCommand(commandText);

        // 戻り値 dt
        DataTable dt = new DataTable();

        // 3列生成
        dt.Columns.Add("c1", System.Type.GetType("System.String"));
        dt.Columns.Add("c2", System.Type.GetType("System.String"));
        dt.Columns.Add("c3", System.Type.GetType("System.String"));

        //   -- 一覧を返すSELECTクエリを実行する
        IDataReader idr = (IDataReader)this.ExecSelect_DR();

        while (idr.Read())
        {
            // DRから読む
            object[] objArray = new object[3];
            idr.GetValues(objArray);

            // DTに設定する。
            DataRow dr = dt.NewRow();
            dr.ItemArray = objArray;
            dt.Rows.Add(dr);
        }

        // 終了したらクローズ
        idr.Close();

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = dt;
    }
Esempio n. 22
0
        /// <summary>
        /// GetParam Method
        /// </summary>
        /// <param name="path">path</param>
        /// <param name="dt">dt</param>
        /// <param name="dt1">dt1</param>
        /// <param name="dbGeneration">dbGeneration</param>
        private void GetParam(string path, out  DataTable dt, out DataTable dt1, string dbGeneration)
        {
            MyUserInfo userInfo = new MyUserInfo("user1", "Hostname");
            LayerB lb = new LayerB();
            TestParameterValue test = new TestParameterValue("screen1", "button1", "GetParametersFromPARAMTag", dbGeneration, userInfo);
            test.Filepath = path;
            TestReturnValue testreturn = (TestReturnValue)lb.DoBusinessLogic((BaseParameterValue)test);
            dt = (DataTable)testreturn.Obj;
            dt1 = (DataTable)testreturn.Obj;

        }
Esempio n. 23
0
    /// <summary>1レコードを返すSELECTクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void Select(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string filename = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL          
            filename = "ShipperSelect.sql";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            filename = "ShipperSelect.xml";
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P1", testParameter.ShipperID);


        // 戻り値 dt
        DataTable dt = new DataTable();

        //   -- 1レコードを返すSELECTクエリを実行する
        this.ExecSelectFill_DT(dt);

        // ↑DBアクセス-----------------------------------------------------

        //// 戻り値を設定 // 不要
        //testReturn.Obj = dt;

        // キャストの対策コードを挿入

        // ・SQLの場合、ShipperIDのintがInt32型にマップされる。
        // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。
        // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。
        if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32")
        {
            // Int32なのでキャスト
            testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0);
        }
        else
        {
            // それ以外の場合、一度、文字列に変換してInt32.Parseする。
            testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString());
        }

        testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1);
        testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2);
    }
Esempio n. 24
0
    /// <summary>一覧を返すSELECTクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void SelectCase(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string filename = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            switch (testParameter.SelectCase)
            {
                case "SelectCase1a":
                    filename = "select-case1a.dpq.xml";
                    break;
                case "SelectCase1b":
                    filename = "select-case1b.dpq.xml";
                    break;
                case "SelectCase2a":
                    filename = "select-case2a.dpq.xml";
                    break;
                case "SelectCase2b":
                    filename = "select-case2b.dpq.xml";
                    break;
                case "SelectCase3a":
                    filename = "select-case3a.dpq.xml";
                    break;
                case "SelectCase3b":
                    filename = "select-case3b.dpq.xml";
                    break;
                case "SelectCase4a":
                    filename = "select-case4a.dpq.xml";
                    break;
                case "SelectCase4b":
                    filename = "select-case4b.dpq.xml";
                    break;
                case "SelectCaseDefault1a":
                    filename = "select-case-default1a.dpq.xml";
                    break;
                case "SelectCaseDefault1b":
                    filename = "select-case-default1b.dpq.xml";
                    break;
                case "SelectCaseDefault2a":
                    filename = "select-case-default2a.dpq.xml";
                    break;
                case "SelectCaseDefault2b":
                    filename = "select-case-default2b.dpq.xml";
                    break;
                case "SelectCaseDefault3a":
                    filename = "select-case-default3a.dpq.xml";
                    break;
                case "SelectCaseDefault3b":
                    filename = "select-case-default3b.dpq.xml";
                    break;
                case "SelectCaseDefault4a":
                    filename = "select-case-default4a.dpq.xml";
                    break;
                case "SelectCaseDefault4b":
                    filename = "select-case-default4b.dpq.xml";
                    break;
            }
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            switch (testParameter.SelectCase)
            {
                case "SelectCase1a":
                    filename = "select-case1a.dpq.xml";
                    break;
                case "SelectCase1b":
                    filename = "select-case1b.dpq.xml";
                    break;
                case "SelectCase2a":
                    filename = "select-case2a.dpq.xml";
                    break;
                case "SelectCase2b":
                    filename = "select-case2b.dpq.xml";
                    break;
                case "SelectCase3a":
                    filename = "select-case3a.dpq.xml";
                    break;
                case "SelectCase3b":
                    filename = "select-case3b.dpq.xml";
                    break;
                case "SelectCase4a":
                    filename = "select-case4a.dpq.xml";
                    break;
                case "SelectCase4b":
                    filename = "select-case4b.dpq.xml";
                    break;
                case "SelectCaseDefault1a":
                    filename = "select-case-default1a.dpq.xml";
                    break;
                case "SelectCaseDefault1b":
                    filename = "select-case-default1b.dpq.xml";
                    break;
                case "SelectCaseDefault2a":
                    filename = "select-case-default2a.dpq.xml";
                    break;
                case "SelectCaseDefault2b":
                    filename = "select-case-default2b.dpq.xml";
                    break;
                case "SelectCaseDefault3a":
                    filename = "select-case-default3a.dpq.xml";
                    break;
                case "SelectCaseDefault3b":
                    filename = "select-case-default3b.dpq.xml";
                    break;
                case "SelectCaseDefault4a":
                    filename = "select-case-default4a.dpq.xml";
                    break;
                case "SelectCaseDefault4b":
                    filename = "select-case-default4b.dpq.xml";
                    break;
            }
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);
        switch (testParameter.SelectCase)
        {
            // Select Case
            case "SelectCase1a":
                this.SetParameter("sel", "a1");
                break;
            case "SelectCase1b":
                this.SetParameter("sel", 111);
                break;
            case "SelectCase2a":
                this.SetParameter("sel", "b2");
                break;
            case "SelectCase2b":
                this.SetParameter("sel", 222);
                break;
            case "SelectCase3a":
                this.SetParameter("sel", "c3");
                break;
            case "SelectCase3b":
                this.SetParameter("sel", 333);
                break;
            case "SelectCase4a":
                this.SetParameter("sel", "xxx");
                break;
            case "SelectCase4b":
                this.SetParameter("sel", 999);
                break;
            //Select Case Default
            case "SelectCaseDefault1a":
                this.SetParameter("sel", "a1");
                break;
            case "SelectCaseDefault1b":
                this.SetParameter("sel", 111);
                break;
            case "SelectCaseDefault2a":
                this.SetParameter("sel", "b2");
                break;
            case "SelectCaseDefault2b":
                this.SetParameter("sel", 222);
                break;
            case "SelectCaseDefault3a":
                this.SetParameter("sel", "c3");
                break;
            case "SelectCaseDefault3b":
                this.SetParameter("sel", 333);
                break;
            case "SelectCaseDefault4a":
                this.SetParameter("sel", "xxx");
                break;
            case "SelectCaseDefault4b":
                this.SetParameter("sel", 999);
                break;
        }

        // 戻り値 dt
        DataTable dt = new DataTable();

        //   -- 一覧を返すSELECTクエリを実行する
        this.ExecSelectFill_DT(dt);

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = dt;
    }
Esempio n. 25
0
    /// <summary>Deleteクエリを実行する</summary>
    /// <param name="testParameter">引数クラス</param>
    /// <param name="testReturn">戻り値クラス</param>
    public void Delete(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------

        string filename = "";

        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            filename = "ShipperDelete.sql";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            filename = "ShipperDelete.xml";
        }

        //   -- ファイルから読み込む場合。
        this.SetSqlByFile2(filename);

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P1", testParameter.ShipperID);

        object obj;

        //   -- 追削除(件数を確認できる)
        obj = this.ExecInsUpDel_NonQuery();

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = obj;
    }
Esempio n. 26
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_SelectAll_DR(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------
        DataTable dt = null;

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "common": // 共通Daoを使用する。

                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                switch ((testParameter.ActionType.Split('%'))[2])
                {
                    case "static":
                        // 静的SQLを指定
                        cmnDao.SQLText = "SELECT * FROM Shippers";
                        break;

                    case "dynamic":
                        // 動的SQLを指定
                        cmnDao.SQLText = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><ROOT>SELECT * FROM Shippers</ROOT>";
                        break;
                }

                // 戻り値 dt
                dt = new DataTable();

                // 3列生成
                dt.Columns.Add("c1", System.Type.GetType("System.String"));
                dt.Columns.Add("c2", System.Type.GetType("System.String"));
                dt.Columns.Add("c3", System.Type.GetType("System.String"));

                // 共通Daoを実行
                IDataReader idr = cmnDao.ExecSelect_DR();

                while (idr.Read())
                {
                    // DRから読む
                    object[] objArray = new object[3];
                    idr.GetValues(objArray);

                    // DTに設定する。
                    DataRow dr = dt.NewRow();
                    dr.ItemArray = objArray;
                    dt.Rows.Add(dr);
                }

                // 終了したらクローズ
                idr.Close();

                // 戻り値を設定
                testReturn.Obj = dt;

                break;

            case "generate": // 自動生成Daoを使用する。

                // DRのI/Fなし

                // 自動生成Daoを生成
                DaoShippers genDao = new DaoShippers(this.GetDam());

                // 戻り値 dt
                dt = new DataTable();

                // 自動生成Daoを実行
                genDao.D2_Select(dt);

                // 戻り値を設定
                testReturn.Obj = (DataTable)dt;

                break;

            default: // 個別Daoを使用する。
                LayerD myDao = new LayerD(this.GetDam());
                myDao.SelectAll_DR(testParameter, testReturn);
                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 27
0
    /// <summary>
    /// TestSqlsvr4a Method
    /// </summary>
    /// <param name="testParameter">testParameter</param>
    /// <param name="testReturn">testReturn</param>
    public void TestSqlsvr4a(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        // ↓DBアクセス-----------------------------------------------------
        string filename = "";
        if ((testParameter.ActionType.Split('%'))[2] == "static")
        {
            // 静的SQL
            filename = "testSqlsvr4a.dpq.xml";
        }
        else if ((testParameter.ActionType.Split('%'))[2] == "dynamic")
        {
            // 動的SQL
            filename = "testSqlsvr4a.dpq.xml";
            // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。
        }
        this.SetSqlByFile2(filename);
        string orderColumn = "";
        string orderSequence = "";

        if (testParameter.OrderColumn == "c1")
        {
            orderColumn = "companyname";
        }
        else if (testParameter.OrderColumn == "c2")
        {
            orderColumn = "CompanyName";
        }
        else if (testParameter.OrderColumn == "c3")
        {
            orderColumn = "CompanyName";
        }
        if (testParameter.OrderSequence == "A")
        {
            orderSequence = "ASC";
        }
        else if (testParameter.OrderSequence == "D")
        {
            orderSequence = "DESC";
        }

        // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
        this.SetParameter("P1", "test");
        this.SetParameter("P2", "test");

        // ユーザ入力は指定しない。
        // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、
        //    必要であれば、前後の空白を明示的に指定する必要がある。
        this.SetUserParameter("COLUMN", orderColumn);
        this.SetUserParameter("SEQUENCE", " " + orderSequence + " ");

        this.SetParameter("j1", true);
        this.SetParameter("j2", true);
        // 戻り値 ds
        DataSet ds = new DataSet();

        //   -- 一覧を返すSELECTクエリを実行する
        this.ExecSelectFill_DS(ds);

        // ↑DBアクセス-----------------------------------------------------

        // 戻り値を設定
        testReturn.Obj = ds;
    }
Esempio n. 28
0
    /// <summary>業務処理を実装</summary>
    /// <param name="testParameter">引数クラス</param>
    private void UOC_Select(TestParameterValue testParameter)
    {
        // 戻り値クラスを生成して、事前に戻り地に設定しておく。
        TestReturnValue testReturn = new TestReturnValue();
        this.ReturnValue = testReturn;

        // ↓業務処理-----------------------------------------------------
        DataTable dt = null;

        switch ((testParameter.ActionType.Split('%'))[1])
        {
            case "common": // 共通Daoを使用する。

                // 共通Daoを生成
                CmnDao cmnDao = new CmnDao(this.GetDam());

                switch ((testParameter.ActionType.Split('%'))[2])
                {
                    case "static":
                        // 静的SQLを指定
                        cmnDao.SQLFileName = "ShipperSelect.sql";
                        break;

                    case "dynamic":
                        // 動的SQLを指定
                        cmnDao.SQLFileName = "ShipperSelect.xml";
                        break;
                }

                // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。
                cmnDao.SetParameter("P1", testParameter.ShipperID);

                // 戻り値 dt
                dt = new DataTable();

                // 共通Daoを実行
                cmnDao.ExecSelectFill_DT(dt);

                // キャストの対策コードを挿入

                // ・SQLの場合、ShipperIDのintがInt32型にマップされる。
                // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。
                // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。
                if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32")
                {
                    // Int32なのでキャスト
                    testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0);
                }
                else
                {
                    // それ以外の場合、一度、文字列に変換してInt32.Parseする。
                    testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString());
                }

                testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1);
                testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2);

                break;

            case "generate": // 自動生成Daoを使用する。

                // 自動生成Daoを生成
                DaoShippers genDao = new DaoShippers(this.GetDam());

                // パラメタに対して、動的に値を設定する。
                genDao.PK_ShipperID = testParameter.ShipperID;

                // 戻り値 dt
                dt = new DataTable();

                // 自動生成Daoを実行
                genDao.S2_Select(dt);

                // キャストの対策コードを挿入

                // ・SQLの場合、ShipperIDのintがInt32型にマップされる。
                // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。
                // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。
                if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32")
                {
                    // Int32なのでキャスト
                    testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0);
                }
                else
                {
                    // それ以外の場合、一度、文字列に変換してInt32.Parseする。
                    testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString());
                }

                testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1);
                testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2);

                break;

            default: // 個別Daoを使用する。
                LayerD myDao = new LayerD(this.GetDam());
                myDao.Select(testParameter, testReturn);
                break;
        }

        // ↑業務処理-----------------------------------------------------

        // ロールバックのテスト
        this.TestRollback(testParameter);
    }
Esempio n. 29
0
    /// <summary>トランザクション制御機能のテスト(GetTransactionPatterns)</summary>
    protected void btnTxGID_Click(object sender, EventArgs e)
    {
        // 引数クラスを生成
        // 下位(B・D層)は、テスト クラスを流用する
        MyType.TestParameterValue testParameterValue
            = new MyType.TestParameterValue(
                  "", "画面ID", "ボタンID",
                  this.ddlDap.SelectedValue + "%"
                  + this.ddlExRollback.SelectedValue + "%"
                  + this.ddlExStatus.SelectedValue,
                  new MyUserInfo("ユーザ名", Request.UserHostAddress));

        // ※ ActionTypeのフォーマット:Dap

        // TransactionGroupIDを設定
        testParameterValue.Obj = this.ddlTxGpID.SelectedValue;

        // 業務処理を実行
        TestMTC_txg testMTC = new TestMTC_txg();

        MyReturnValue myReturnValue =
            (MyReturnValue)testMTC.DoBusinessLogic(
                (BaseParameterValue)testParameterValue,
                DbEnum.IsolationLevelEnum.User);

        this.lblTxID.Text = "";

        // 例外判定
        if (myReturnValue.ErrorFlag)
        {
            // エラーメッセージ
            this.lblTxID.Text = myReturnValue.ErrorMessage;
        }
        else
        {
            string[] temp1 = (string[])((MyType.TestReturnValue)myReturnValue).Obj;

            // TransactionPatternIDをリストする。
            foreach (string temp2 in temp1)
            {
                this.lblTxID.Text += temp2 + "<br/>";
            }
        }
    }
    /// <summary>
    /// ページロードのUOCメソッド(個別:ポストバック)
    /// </summary>
    /// <remarks>
    /// 実装必須
    /// </remarks>
    protected override void UOC_FormInit_PostBack()
    {
        // フォーム初期化(ポストバック)時に実行する処理を実装する

        // TODO:
        Session["DAP"] = this.ddlDap.SelectedValue;

        if (this.ddlDap.SelectedValue == "SQL")
        {
            Session["DBMS"] = DbEnum.DBMSType.SQLServer;
        }
        else
        {
            Session["DBMS"] = DbEnum.DBMSType.Oracle;
        }

        #region マスタ・データのロードと設定

        // 引数クラスを生成
        // 下位(B・D層)は、テスト クラスを流用する
        TestParameterValue testParameterValue
            = new TestParameterValue(
                this.ContentPageFileNoEx,
                "FormInit_PostBack", "Invoke",
                this.ddlDap.SelectedValue,
                this.UserInfo);

        // B層を生成
        GetMasterData getMasterData = new GetMasterData();

        // 業務処理を実行
        TestReturnValue testReturnValue =
            (TestReturnValue)getMasterData.DoBusinessLogic(
                (BaseParameterValue)testParameterValue, DbEnum.IsolationLevelEnum.ReadCommitted);

        DataTable[] dts = (DataTable[])testReturnValue.Obj;
        DataTable dt = null;

        // daoSuppliers
        _3TierEngine.CreateDropDownListDataSourceDataTable(
            dts[0], "SupplierID", "CompanyName", out dt, "value", "text");
        this.ddldsdt_Suppliers = dt;

        // daoCategories
        _3TierEngine.CreateDropDownListDataSourceDataTable(
            dts[1], "CategoryID", "CategoryName", out dt, "value", "text");
        this.ddldsdt_Categories = dt;

        #endregion
    }