Skip to content

Commit a30b948

Browse files
author
Ajay Kannan
committed
Add test for fetch with deferred results
1 parent de1ce7f commit a30b948

File tree

1 file changed

+32
-11
lines changed

1 file changed

+32
-11
lines changed

gcloud-java-datastore/src/test/java/com/google/gcloud/datastore/DatastoreTest.java

+32-11
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,33 @@ public void testGetArrayNoDeferredResults() {
553553
}
554554

555555
public void testGetArrayDeferredResults() throws DatastoreRpcException {
556+
Set<Key> requestedKeys = new HashSet<Key>();
557+
requestedKeys.add(KEY1);
558+
requestedKeys.add(KEY2);
559+
requestedKeys.add(KEY3);
560+
requestedKeys.add(KEY4);
561+
requestedKeys.add(KEY5);
562+
Iterator<Entity> iter =
563+
createMockDatastoreForDeferredLookup().get(KEY1, KEY2, KEY3, KEY4, KEY5);
564+
Set<Key> keysOfFoundEntities = new HashSet<Key>();
565+
while (iter.hasNext()) {
566+
keysOfFoundEntities.add(iter.next().key());
567+
}
568+
assertEquals(requestedKeys, keysOfFoundEntities);
569+
}
570+
571+
public void testFetchArrayDeferredResults() throws DatastoreRpcException {
572+
List<Entity> foundEntities =
573+
createMockDatastoreForDeferredLookup().fetch(KEY1, KEY2, KEY3, KEY4, KEY5);
574+
assertEquals(foundEntities.get(0).key(), KEY1);
575+
assertEquals(foundEntities.get(1).key(), KEY2);
576+
assertEquals(foundEntities.get(2).key(), KEY3);
577+
assertEquals(foundEntities.get(3).key(), KEY4);
578+
assertEquals(foundEntities.get(4).key(), KEY5);
579+
assertEquals(foundEntities.size(), 5);
580+
}
581+
582+
private Datastore createMockDatastoreForDeferredLookup() throws DatastoreRpcException {
556583
List<DatastoreV1.Key> keysPb = new ArrayList<>();
557584
keysPb.add(KEY1.toPb());
558585
keysPb.add(KEY2.toPb());
@@ -575,15 +602,15 @@ public void testGetArrayDeferredResults() throws DatastoreRpcException {
575602
DatastoreV1.LookupResponse.newBuilder()
576603
.addFound(EntityResult.newBuilder().setEntity(ENTITY1.toPb()))
577604
.addFound(EntityResult.newBuilder().setEntity(entity4.toPb()))
578-
.addDeferred(KEY2.toPb())
579-
.addDeferred(KEY3.toPb())
580-
.addDeferred(KEY5.toPb())
605+
.addDeferred(keysPb.get(2))
606+
.addDeferred(keysPb.get(3))
607+
.addDeferred(keysPb.get(5))
581608
.build());
582609
lookupResponses.add(
583610
DatastoreV1.LookupResponse.newBuilder()
584611
.addFound(EntityResult.newBuilder().setEntity(ENTITY3.toPb()))
585612
.addFound(EntityResult.newBuilder().setEntity(entity4.toPb()))
586-
.addDeferred(KEY5.toPb())
613+
.addDeferred(keysPb.get(5))
587614
.build());
588615
lookupResponses.add(
589616
DatastoreV1.LookupResponse.newBuilder()
@@ -602,13 +629,7 @@ public void testGetArrayDeferredResults() throws DatastoreRpcException {
602629
.retryParams(RetryParams.getDefaultInstance())
603630
.serviceRpcFactory(rpcFactoryMock)
604631
.build();
605-
Datastore datastore = DatastoreFactory.instance().get(options);
606-
Iterator<Entity> iter = datastore.get(KEY1, KEY2, KEY3, KEY4, KEY5);
607-
Set<Entity> foundEntities = new HashSet<>();
608-
while (iter.hasNext()) {
609-
foundEntities.add(iter.next());
610-
}
611-
assertEquals(foundEntities.size(), 5);
632+
return DatastoreFactory.instance().get(options);
612633
}
613634

614635
@Test

0 commit comments

Comments
 (0)