実のところ、このメソッドの中身はサンプルコードの要点ではないので、
とりあえず実装しているだけです。
サンプルコードは、@Beforeと@Afterの内部の実装について
説明するための実験用です。
@Test
public void doTest(){
//サンプルデータをデータストアから検索する
for (int i = 0;i < propertyNames.length;i++){
Query query = new Query(DATA_KIND);
query.addFilter(propertyNames[i], FilterOperator.EQUAL, propertyValues[i]);
PreparedQuery prepare = ds.prepare(query);
List entitiesList = prepare.asList(FetchOptions.Builder.withDefaults());
assertEquals(1,entitiesList.size());
Iterator iter = entitiesList.iterator();
while (iter.hasNext()){
Entity entity = iter.next();
assertTrue(propertyValues[i].equals(entity.getProperty(propertyNames[i])));
}
}
}
@Testアノテーションの付いている
doTest()メソッドは、実際のテストコードです。
メソッド内で行われている動作は、
propertyNamesの各要素をプロパティ名として、
該当するプロパティ値を持つエンティティを検索する
↓
取得したエンティティのプロパティ値を検証する
という内容です。
これをpropertyNamesの長さ分、繰り返しています(forブロック)。
Query query = new Query(DATA_KIND);
この行は、DATA_KINDで取得するデータの種類を指定して
Queryを生成しています。
query.addFilter(propertyNames[i],FilterOperator.Builder.EQUAL,propertyValues[i]);
引数propertyNames[i]は検索するプロパティ名、
引数FilterOperator.Builder.EQUALはプロパティ値の検索条件を同値とすること、
引数propertyValues[i]は、プロパティ値の境界を設定しています。
PreparedQuery prepare = ds.prepare(query);
ds.prepare()メソッドの検索条件を設定したクエリオブジェクトを渡して、
検索の実行を準備します。
この後、クエリを実行してエンティティを取り出しますが、
次回に説明します。
インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/
http://kaedetrans.appspot.com/
0 件のコメント:
コメントを投稿