AsakusaFramework はじめてのオペレーターのテスト6. オペレーターの処理内容
・成人情報付与
1) リストの項目に成人フラグを追加
2) 年齢が20歳以上なら成人フラグにtrue
20歳未満なら成人フラグをfalseに設定
・成人のいる都道府県一覧取得
1) 都道府県・成人フラグをキーにグルーピング
2) 成人フラグがtrueのメンバーをもつ都道府県を取得
7. オペレーターの実装例
・成人情報付与
@Convert
public void convertedMember(Member m) {
ConvertedMember cm = new convertedMember();
cm.name = m.name;
cm.age = m.age;
cm.address = m.address;
if(m.age >= 20) {
cm.isAdult = true;
} else {
cm.isAdult = false;
}
8. オペレーターの実装例
・成人のいる都道府県一覧取得
@GroupSort
public void groupedMember(
@key(group={“address”, ”isAdult”}),
List<ConvertedMember> cmList,
Result<Address> results ) {
results.add(cmList.get(0));
}
9. オペレーターのテスト例
・成人情報付与
@Test
public void testConvertedMember_under() {
Member m = new Member();
ConvertedMember cm = new ConvertedMember();
・・・
m.age = 19
operator.convertedMember(m);
・・・
}
↑と同じように成人のパターンも用意
10. オペレーターの実装例(確認)
・成人のいる都道府県一覧取得
@GroupSort
public void groupedMember(
@key(group={“address”, ”isAdult”}),
List<ConvertedMember> cmList,
Result<Address> results ) {
results.add(cmList.get(0));
}
指定されたキーでソート済み
のデータが入ってくる
11. オペレーターのテスト例
ここはキーでソート済みのデータがくるので
・成人のいる都道府県一覧取得
複数のパターンを利用したソートの確認をする場合は
Flow側のテストで確認すること。
@Test
public void testGroupedMember() {
List<ConvertedMember> cmList = new ・・・(テスト用データ)
MockResult<Address> results = new ・・・(結果のMock生成)
operator.groupedMember(cm, results);
//resultsから結果を取得してAssert
}