use of com.linkedin.restli.common.EntityResponse in project rest.li by linkedin.
the class TestParseqBasedFluentClientApi method testComplexKey_batchDelete.
@Test
public void testComplexKey_batchDelete() throws Exception {
String messageText = "m1";
Message message = new Message();
message.setMessage(messageText);
ComplexKeys complexKeyClient = new ComplexKeysFluentClient(_parSeqRestliClient, _parSeqUnitTestHelper.getEngine());
ComplexResourceKey<TwoPartKey, TwoPartKey> createResponse = complexKeyClient.create(message).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
String messageText2 = "m2";
message.setMessage(messageText2);
createResponse = complexKeyClient.create(message).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
ComplexResourceKey<TwoPartKey, TwoPartKey> key1 = getComplexKey(messageText, messageText);
ComplexResourceKey<TwoPartKey, TwoPartKey> key2 = getComplexKey(messageText2, messageText2);
ArrayList<ComplexResourceKey<TwoPartKey, TwoPartKey>> ids = new ArrayList<>();
ids.add(key1);
ids.add(key2);
Map<ComplexResourceKey<TwoPartKey, TwoPartKey>, UpdateStatus> deleteResponse = complexKeyClient.batchDelete(new HashSet<>(ids)).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
Assert.assertEquals(deleteResponse.size(), ids.size());
Assert.assertEquals(deleteResponse.get(key1).getStatus().intValue(), 204);
Assert.assertEquals(deleteResponse.get(key2).getStatus().intValue(), 204);
Map<ComplexResourceKey<TwoPartKey, TwoPartKey>, EntityResponse<Message>> getResponse = complexKeyClient.batchGet(new HashSet<>(ids)).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
Assert.assertEquals(getResponse.get(key1).getError().getStatus().intValue(), 404);
Assert.assertEquals(getResponse.get(key2).getError().getStatus().intValue(), 404);
}
use of com.linkedin.restli.common.EntityResponse in project rest.li by linkedin.
the class TestParseqBasedFluentClientApi method testComplexKey_batchUpdate.
@Test
public void testComplexKey_batchUpdate() throws Exception {
ComplexKeys complexKeyClient = new ComplexKeysFluentClient(_parSeqRestliClient, _parSeqUnitTestHelper.getEngine());
final String messageText = StringTestKeys.SIMPLEKEY + " " + StringTestKeys.SIMPLEKEY2;
final Message message = new Message();
message.setId(StringTestKeys.SIMPLEKEY + " " + StringTestKeys.SIMPLEKEY2);
message.setMessage(messageText);
message.setTone(Tone.INSULTING);
final String messageText2 = StringTestKeys.URL + " " + StringTestKeys.URL2;
final Message message2 = new Message();
message2.setId(StringTestKeys.URL + " " + StringTestKeys.URL2);
message2.setMessage(messageText2);
message2.setTone(Tone.INSULTING);
final Map<ComplexResourceKey<TwoPartKey, TwoPartKey>, Message> inputs = new HashMap<>();
ComplexResourceKey<TwoPartKey, TwoPartKey> key1 = getComplexKey(StringTestKeys.SIMPLEKEY, StringTestKeys.SIMPLEKEY2);
ComplexResourceKey<TwoPartKey, TwoPartKey> key2 = getComplexKey(StringTestKeys.URL, StringTestKeys.URL2);
inputs.put(key1, message);
inputs.put(key2, message2);
complexKeyClient.batchUpdate(inputs).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
Map<ComplexResourceKey<TwoPartKey, TwoPartKey>, EntityResponse<Message>> result = complexKeyClient.batchGet(new HashSet<>(Arrays.asList(key1, key2))).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
Assert.assertNotNull(result.get(key1));
Assert.assertNotNull(result.get(key2));
Assert.assertEquals(result.get(key1).getEntity().getTone(), Tone.INSULTING);
Assert.assertEquals(result.get(key2).getEntity().getTone(), Tone.INSULTING);
}
use of com.linkedin.restli.common.EntityResponse in project rest.li by linkedin.
the class TestParseqBasedFluentClientApi method testComplexKey_batchGet.
@Test
public void testComplexKey_batchGet() throws Exception {
List<ComplexResourceKey<TwoPartKey, TwoPartKey>> ids = getBatchComplexKeys();
ComplexKeys complexKeyClient = new ComplexKeysFluentClient(_parSeqRestliClient, _parSeqUnitTestHelper.getEngine());
Map<ComplexResourceKey<TwoPartKey, TwoPartKey>, EntityResponse<Message>> resultMap = complexKeyClient.batchGet(new HashSet<>(ids)).toCompletableFuture().get(5000, TimeUnit.MILLISECONDS);
Assert.assertEquals(resultMap.size(), 3);
Assert.assertNotNull(resultMap.get(ids.get(0)).getEntity());
Assert.assertNotNull(resultMap.get(ids.get(1)).getEntity());
Assert.assertNotNull(resultMap.get(ids.get(2)).getError());
}
use of com.linkedin.restli.common.EntityResponse in project rest.li by linkedin.
the class TestGroupsClient method testAssociationBatchGetEntityCompoundKeyResponse.
@Test(dataProvider = com.linkedin.restli.internal.common.TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "requestOptionsDataProvider")
public void testAssociationBatchGetEntityCompoundKeyResponse(RestliRequestOptions requestOptions) throws RemoteInvocationException {
CompoundKey key1 = buildCompoundKey(1, 1);
CompoundKey key2 = buildCompoundKey(2, 1);
Set<CompoundKey> allRequestedKeys = new HashSet<>(Arrays.asList(key1, key2));
Request<BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>>> request = new GroupMembershipsRequestBuilders(requestOptions).batchGet().ids(key1, key2).fields(GroupMembership.fields().contactEmail()).build();
BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>> groupMemberships = getClient().sendRequest(request).getResponse().getEntity();
Assert.assertTrue(allRequestedKeys.containsAll(groupMemberships.getResults().keySet()));
Assert.assertTrue(allRequestedKeys.containsAll(groupMemberships.getErrors().keySet()));
Set<CompoundKey> allResponseKeys = new HashSet<>(groupMemberships.getResults().keySet());
allResponseKeys.addAll(groupMemberships.getErrors().keySet());
Assert.assertEquals(allResponseKeys, allRequestedKeys);
}
use of com.linkedin.restli.common.EntityResponse in project rest.li by linkedin.
the class TestGroupsClient method testAssociationBatchCreateGetUpdatePatchDelete.
@Test(dataProvider = com.linkedin.restli.internal.common.TestConstants.RESTLI_PROTOCOL_1_2_PREFIX + "requestMembershipsBuilderDataProvider")
public void testAssociationBatchCreateGetUpdatePatchDelete(ProtocolVersion version, RootBuilderWrapper<CompoundKey, GroupMembership> membershipBuilders) throws RemoteInvocationException {
// Setup - batch create two group memberships
CompoundKey key1 = buildCompoundKey(1, 1);
CompoundKey key2 = buildCompoundKey(2, 1);
GroupMembership groupMembership1 = buildGroupMembership(null, "alfred@test.linkedin.com", "Alfred", "Hitchcock");
GroupMembership groupMembership2 = buildGroupMembership(null, "bruce@test.linkedin.com", "Bruce", "Willis");
Map<CompoundKey, UpdateStatus> results = getClient().sendRequest(membershipBuilders.batchUpdate().input(key1, groupMembership1).input(key2, groupMembership2).build()).getResponse().getEntity().getResults();
Assert.assertEquals(results.get(key1).getStatus().intValue(), 204);
Assert.assertEquals(results.get(key2).getStatus().intValue(), 204);
// BatchGet memberships
final RestliRequestOptions requestOptions = membershipBuilders.getRequestOptions();
Request<BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>>> request = new GroupMembershipsRequestBuilders(requestOptions).batchGet().ids(key1, key2).fields(GroupMembership.fields().contactEmail()).build();
Map<CompoundKey, EntityResponse<GroupMembership>> groupMemberships = getClient().sendRequest(request).getResponse().getEntity().getResults();
Assert.assertTrue(groupMemberships.containsKey(key1));
Assert.assertEquals(groupMemberships.get(key1).getEntity().getContactEmail(), "alfred@test.linkedin.com");
Assert.assertTrue(groupMemberships.containsKey(key2));
Assert.assertEquals(groupMemberships.get(key2).getEntity().getContactEmail(), "bruce@test.linkedin.com");
// Batch partial update
GroupMembership patchedGroupMembership1 = buildGroupMembership(null, "ALFRED@test.linkedin.com", "ALFRED", "Hitchcock");
GroupMembership patchedGroupMembership2 = buildGroupMembership(null, "BRUCE@test.linkedin.com", "BRUCE", "Willis");
Map<CompoundKey, PatchRequest<GroupMembership>> patchInputs = new HashMap<>();
patchInputs.put(key1, PatchGenerator.diff(groupMembership1, patchedGroupMembership1));
patchInputs.put(key2, PatchGenerator.diff(groupMembership2, patchedGroupMembership2));
Map<CompoundKey, UpdateStatus> patchResults = getClient().sendRequest(membershipBuilders.batchPartialUpdate().patchInputs(patchInputs).build()).getResponse().getEntity().getResults();
Assert.assertEquals(patchResults.get(key1).getStatus().intValue(), 204);
Assert.assertEquals(patchResults.get(key2).getStatus().intValue(), 204);
// Batch get to make sure our patch applied
Request<BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>>> batchGetRequest = new GroupMembershipsRequestBuilders(requestOptions).batchGet().ids(key1, key2).fields(GroupMembership.fields().contactEmail(), GroupMembership.fields().firstName()).build();
BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>> entity = getClient().sendRequest(batchGetRequest).getResponse().getEntity();
Assert.assertEquals(entity.getErrors().size(), 0);
Assert.assertEquals(entity.getResults().size(), 2);
Assert.assertEquals(entity.getResults().get(key1).getEntity().getContactEmail(), "ALFRED@test.linkedin.com");
Assert.assertEquals(entity.getResults().get(key1).getEntity().getFirstName(), "ALFRED");
Assert.assertEquals(entity.getResults().get(key2).getEntity().getContactEmail(), "BRUCE@test.linkedin.com");
Assert.assertEquals(entity.getResults().get(key2).getEntity().getFirstName(), "BRUCE");
// GetAll memberships
Request<CollectionResponse<GroupMembership>> getAllRequest = membershipBuilders.getAll().paginate(1, 2).fields(GroupMembership.fields().contactEmail()).build();
List<GroupMembership> elements = getClient().sendRequest(getAllRequest).getResponse().getEntity().getElements();
Assert.assertEquals(elements.size(), 1);
// Delete the newly created group memberships
Map<CompoundKey, UpdateStatus> deleteResult = getClient().sendRequest(membershipBuilders.batchDelete().ids(key1, key2).build()).getResponse().getEntity().getResults();
Assert.assertEquals(deleteResult.get(key1).getStatus().intValue(), 204);
Assert.assertEquals(deleteResult.get(key2).getStatus().intValue(), 204);
// Make sure they are gone
BatchKVResponse<CompoundKey, EntityResponse<GroupMembership>> getResponse = getClient().sendRequest(request).getResponse().getEntity();
Assert.assertEquals(getResponse.getResults().size(), getResponse.getErrors().size());
Assert.assertTrue(getResponse.getErrors().containsKey(key1));
Assert.assertTrue(getResponse.getErrors().containsKey(key2));
Assert.assertEquals(getResponse.getErrors().get(key1).getStatus().intValue(), 404);
Assert.assertEquals(getResponse.getErrors().get(key2).getStatus().intValue(), 404);
}
Aggregations