@Test
@SuppressWarnings("unchecked")
public void testBatchGet() throws Exception
{
ResourceModel statusResourceModel = buildResourceModel(StatusCollectionResource.class);
ResourceModel followsAssociationResourceModel = buildResourceModel(
FollowsAssociativeResource.class);
ResourceModel discoveredItemsResourceModel = buildResourceModel(
DiscoveredItemsResource.class);
ResourceMethodDescriptor methodDescriptor;
StatusCollectionResource statusResource;
FollowsAssociativeResource followsResource;
DiscoveredItemsResource discoveredItemsResource;
// #1 Batch get on collection resource
methodDescriptor = statusResourceModel.findMethod(ResourceMethod.BATCH_GET);
statusResource = getMockResource(StatusCollectionResource.class);
EasyMock.expect(statusResource.batchGet((Set<Long>)Matchers.eqCollectionUnordered(Sets.newHashSet(1L, 2L, 3L)))).andReturn(null).once();
checkInvocation(statusResource,
methodDescriptor,
"GET",
version,
"/statuses?ids=List(1,2,3)",
buildBatchPathKeys(1L, 2L, 3L));
// #2 Batch get on association resource
methodDescriptor = followsAssociationResourceModel.findMethod(ResourceMethod.BATCH_GET);
followsResource = getMockResource(FollowsAssociativeResource.class);
Set<CompoundKey> expectedKeys = new HashSet<CompoundKey>();
CompoundKey key1 = new CompoundKey();
key1.append("followeeID", 1L);
key1.append("followerID", 1L);
expectedKeys.add(key1);
CompoundKey key2 = new CompoundKey();
key2.append("followeeID", 2L);
key2.append("followerID", 2L);
expectedKeys.add(key2);
EasyMock.expect(followsResource.batchGet((Set<CompoundKey>)Matchers.eqCollectionUnordered(expectedKeys))).andReturn(null).once();
String uri = "/follows?ids=List((followeeID:1,followerId:1),(followeeID:2,followerId:2))";
checkInvocation(followsResource,
methodDescriptor,
"GET",
version, uri,
buildBatchPathKeys(key1, key2));
// #3 Batch get on complex key resource.
methodDescriptor = discoveredItemsResourceModel.findMethod(ResourceMethod.BATCH_GET);
discoveredItemsResource = getMockResource(DiscoveredItemsResource.class);
ComplexResourceKey<DiscoveredItemKey, DiscoveredItemKeyParams> keyA =
getDiscoveredItemComplexKey(1L, 2, 3L);
ComplexResourceKey<DiscoveredItemKey, DiscoveredItemKeyParams> keyB =
getDiscoveredItemComplexKey(4L, 5, 6L);