Skip to content

Instantly share code, notes, and snippets.

@daisukenishino2
Last active July 26, 2019 02:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daisukenishino2/6834e851531efdfae978c5014f853c86 to your computer and use it in GitHub Desktop.
Save daisukenishino2/6834e851531efdfae978c5014f853c86 to your computer and use it in GitHub Desktop.
stackoverflow対策コードのテストケース(https://github.com/OpenTouryoProject/OpenTouryo/issues/341
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
-- DaoShippers_D1_Insert
INSERT INTO
[Shippers]
(
<DELCMA>
<INSCOL name="ShipperID">[ShipperID],</INSCOL>
<INSCOL name="CompanyName">[CompanyName],</INSCOL>
<INSCOL name="Phone">[Phone],</INSCOL>
</DELCMA>
)
VALUES
(
<DELCMA>
<IF>@ShipperID,</IF>
<IF>@CompanyName,</IF>
<IF>@Phone,</IF>
</DELCMA>
)
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
-- DaoShippers_D2_Select
SELECT
[ShipperID],
[CompanyName],
[Phone]
FROM
[Shippers]
<WHERE>
WHERE
<IF>AND [ShipperID] = @ShipperID<ELSE>AND [ShipperID] IS NULL</ELSE></IF>
<IF>AND [ShipperID] LIKE @ShipperID_Like</IF>
<IF>AND [CompanyName] = @CompanyName<ELSE>AND [CompanyName] IS NULL</ELSE></IF>
<IF>AND [CompanyName] LIKE @CompanyName_Like</IF>
<IF>AND [Phone] = @Phone<ELSE>AND [Phone] IS NULL</ELSE></IF>
<IF>AND [Phone] LIKE @Phone_Like</IF>
</WHERE>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<IF name="p1"></IF>
...
<IF name="p500"></IF>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<IF name="p1"></IF>
...
<IF name="p1000"></IF>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<IF>p1</IF>
...
<IF>p500</IF>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<IF>p1</IF>
...
<IF>p1000</IF>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<DELCMA>
<INSCOL name="p1"></INSCOL>
...
<INSCOL name="p500"></INSCOL>
</DELCMA>
<DELCMA>
<IF name="p1"></INSCOL>
...
<IF name="p500"></INSCOL>
</DELCMA>
</ROOT>
<?xml version="1.0" encoding="UTF-8" ?>
<ROOT>
SELECT
COUNT(*)
FROM
Shippers
<DELCMA>
<INSCOL name="p1"></INSCOL>
...
<INSCOL name="p1000"></INSCOL>
</DELCMA>
<DELCMA>
<IF name="p1"></IF>
...
<IF name="p500"></IF>
</DELCMA>
</ROOT>
@daisukenishino2
Copy link
Author

daisukenishino2 commented Jul 26, 2019

テストケース

WebFormsのサンプル・アプリからテスト

正常ケース

元ファイル

DaoShippers_D2_Select.xml

パラメタ:

  • 自動生成Dao
  • 動的クエリ

[一覧取得(dt)]ボタンを押下。

DaoShippers_D1_Insert.xml

パラメタ:

  • 自動生成Dao
  • 動的クエリ

[追加]ボタンを押下。

異常ケース

元ファイル

ShipperCount.xml

パラメタ:

  • 共通Dao
  • 動的クエリ

[件数取得]ボタンを押下。

IFタグ

ShipperCount11.xml

IFタグ(タグ内パラメタ)のエラー

  • 修正前:stackoverflow
  • 修正後:正常終了

ShipperCount12.xml

IFタグ(タグ内パラメタ)のエラー

  • 修正前:stackoverflow
  • 修正後:上限

ShipperCount13.xml

IFタグ(テキスト内パラメタ)のエラー

  • 修正前:stackoverflow
  • 修正後:正常終了

ShipperCount14.xml

IFタグ(テキスト内パラメタ)のエラー

  • 修正前:stackoverflow
  • 修正後:上限

INSCOLタグ

ShipperCount21.xml

INSCOLタグ(テキスト内パラメタ)のエラー(stackoverflow)

ShipperCount22.xml

INSCOLタグ(テキスト内パラメタ)のエラー(上限)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment