take-finallyでのAssertで「存在すること」も

@DBFlute-0.9.5.3, DBFlute.NET-0.8.9.3, Java, C#
> (DBFLUTE-540){Java/C#}:
> ReplaceSchemaのtake-finallyでのAssertで「存在すること」も
ReplaceSchemaのtake-finally.sqlでは登録したテストデータの
不整合データチェックを行うことができます。
テストデータは単に登録するだけでなく、RDBMSの制約ではチェックし切れない
業務的な制約をチェックすることで、よりテストデータの精度を上げることが
できます。アーキテクトやDBAが先にそのチェックSQLを実装しておくことで、
テストデータを作成する人はより安全にデータ作成ができます。

で、そのチェックは「とあるSQLの結果が存在しないこと」という感じで
実装することが可能でした。
-- #df:assertListZero#
-- 会員住所情報の有効期間で(現在日時で)重複がないこと
select member.MEMBER_ID as MEMBER_ID
     , count(member.MEMBER_ID) as SELECTED_COUNT
     , min(address.MEMBER_ADDRESS_ID) as MIN_ADDRESS_ID
     , max(address.MEMBER_ADDRESS_ID) as MAX_ADDRESS_ID
     , CURRENT_DATE as TARGET_DATE
  from MEMBER member
    left outer join MEMBER_ADDRESS address
      on member.MEMBER_ID = address.MEMBER_ID
     and address.VALID_BEGIN_DATE <= CURRENT_DATE
     and address.VALID_END_DATE >= CURRENT_DATE
 group by member.MEMBER_ID
   having count(member.MEMBER_ID) > 1 
;
大抵はこれでOKですが、時々「とあるSQLの結果が存在すること」という感じで
チェックをしたいこともありますので、そのときは実装が可能です。
-- #df:assertListExists#
-- 生年月日がnullのデータが一件以上あること
select member.MEMBER_ID, member.MEMBER_NAME
  from MEMBER member
 where member.BIRTHDATE is null
;
ログにこのSQLの結果が出力されます。

#
# 記事が遅れてしました。
# これは既にリリースされている「0.9.5.3」の新機能です。
# さらにこの話が0.9.5.4での改善とつながってきます。
#