@Override public void onFailure(String error) { done.run(ProtocolSubmitResponse.newBuilder() .setOperationsApplied(0).setErrorMessage(error).build()); }
@Override public void onSuccess(int operationsApplied, HashedVersion hashedVersionAfterApplication, long applicationTimestamp) { done.run(ProtocolSubmitResponse.newBuilder() .setOperationsApplied(operationsApplied) .setHashedVersionAfterApplication( CoreWaveletOperationSerializer.serialize(hashedVersionAfterApplication)) .build()); // TODO(arb): applicationTimestamp?? } });
private WaveClientRpc.ProtocolOpenRequest.Builder buildProtocolOpenRequest() { WaveClientRpc.ProtocolOpenRequest.Builder sourceBuilder = WaveClientRpc.ProtocolOpenRequest .newBuilder(); sourceBuilder.setParticipantId("test@example.com"); sourceBuilder.setWaveId("example.com!w+test"); return sourceBuilder; } }
@Override public void run(ProtocolWaveletUpdate update) { ++counter; assertEquals(WAVELET_NAME, getWaveletName(update.getWaveletName())); assertEquals(DELTAS.size(), update.getAppliedDeltaCount()); for (int i = 0; i < update.getAppliedDeltaCount(); ++i) { assertEquals(DELTAS.get(i), update.getAppliedDelta(i)); } assertFalse(update.hasCommitNotice()); } });
/** * Serializes a document to a document snapshot. * * @param document The document to serialize * @return A snapshot of the given document */ public static DocumentSnapshot serializeDocument(ReadableBlipData document) { DocumentSnapshot.Builder builder = DocumentSnapshot.newBuilder(); builder.setDocumentId(document.getId()); builder.setDocumentOperation(CoreWaveletOperationSerializer.serialize( document.getContent().asOperation())); builder.setAuthor(document.getAuthor().getAddress()); for (ParticipantId participant : document.getContributors()) { builder.addContributor(participant.getAddress()); } builder.setLastModifiedVersion(document.getLastModifiedVersion()); builder.setLastModifiedTime(document.getLastModifiedTime()); return builder.build(); }
/** * Tests that a failed submit results in the proper submit failure response. */ public void testSubmitFailed() { ProtocolSubmitRequest request = ProtocolSubmitRequest.newBuilder() .setDelta(DELTA) .setWaveletName(getWaveletUri(WAVELET_NAME)).build(); counter = 0; rpcImpl.submit(controller, request, new RpcCallback<ProtocolSubmitResponse>() { @Override public void run(ProtocolSubmitResponse response) { ++counter; assertEquals(0, response.getOperationsApplied()); assertEquals(FAIL_MESSAGE, response.getErrorMessage()); } }); frontend.doSubmitFailed(WAVELET_NAME, FAIL_MESSAGE); assertEquals(1, counter); assertFalse(controller.failed()); }
@Override public void run(ProtocolWaveletUpdate update) { ++counter; assertEquals(WAVELET_NAME, getWaveletName(update.getWaveletName())); assertTrue(update.hasCommitNotice()); assertEquals(BEGIN_VERSION, CoreWaveletOperationSerializer.deserialize(update.getCommitNotice())); } });
@Override public void open(RpcController controller, ProtocolOpenRequest request, RpcCallback<ProtocolWaveletUpdate> callback) { assertTrue(receivedOpenRequest.compareAndSet(false, true)); assertEquals(USER, request.getParticipantId()); assertEquals(WAVE, request.getWaveId()); // Return a valid response. callback.run(cannedResponse); // Falling out of this method will automatically finish this RPC. callback.run(null); // TODO: terrible idea? }
@Override public void run(ProtocolSubmitResponse response) { ++counter; assertEquals(1, response.getOperationsApplied()); assertFalse(response.hasErrorMessage()); } });
@Override public void run(ProtocolSubmitResponse response) { ++counter; assertEquals(0, response.getOperationsApplied()); assertEquals(FAIL_MESSAGE, response.getErrorMessage()); } });
public void testRoundTrippingJsonRepeatedField() throws Exception { WaveClientRpc.ProtocolOpenRequest.Builder sourceBuilder = buildProtocolOpenRequest(); sourceBuilder.addWaveletIdPrefix("aaa"); sourceBuilder.addWaveletIdPrefix("bbb"); sourceBuilder.addWaveletIdPrefix("ccc"); checkRoundtripping(sourceBuilder); }
private void checkRoundtripping(final WaveClientRpc.ProtocolOpenRequest.Builder sourceBuilder) { WaveClientRpc.ProtocolOpenRequest sourceRequest = sourceBuilder.build(); channel.sendMessage(SEQUENCE_NUMBER, sourceRequest); String sentRequest = channel.message; assertNotNull(sentRequest); System.out.println(sentRequest); channel.handleMessageString(sentRequest); assertNotNull(callback.savedMessage); assertEquals(SEQUENCE_NUMBER, callback.sequenceNumber); assertEquals(sourceRequest, callback.savedMessage); }
@Override public void authenticate(RpcController controller, ProtocolAuthenticate request, RpcCallback<ProtocolAuthenticationResult> done) { Preconditions.checkState(handleAuthentication, "ProtocolAuthenticate should be handled in ServerRpcProvider"); done.run(ProtocolAuthenticationResult.getDefaultInstance()); }
@Override public void run(ProtocolWaveletUpdate update) { ++counter; assertEquals(WAVELET_NAME, getWaveletName(update.getWaveletName())); assertEquals(DELTAS.size(), update.getAppliedDeltaCount()); for (int i = 0; i < update.getAppliedDeltaCount(); ++i) { assertEquals(DELTAS.get(i), update.getAppliedDelta(i)); } assertFalse(update.hasCommitNotice()); } });
private WaveClientRpc.ProtocolOpenRequest.Builder buildProtocolOpenRequest() { WaveClientRpc.ProtocolOpenRequest.Builder sourceBuilder = WaveClientRpc.ProtocolOpenRequest.newBuilder(); sourceBuilder.setParticipantId("test@example.com"); sourceBuilder.setWaveId("example.com!w+test"); return sourceBuilder; } }
@Override public void run(ProtocolWaveletUpdate update) { ++counter; assertEquals(WAVELET_NAME, getWaveletName(update.getWaveletName())); assertTrue(update.hasCommitNotice()); assertEquals(BEGIN_VERSION, CoreWaveletOperationSerializer.deserialize(update.getCommitNotice())); } });
@Override public void open(RpcController controller, ProtocolOpenRequest request, RpcCallback<ProtocolWaveletUpdate> callback) { assertTrue(receivedOpenRequest.compareAndSet(false, true)); assertEquals(USER, request.getParticipantId()); assertEquals(WAVE, request.getWaveId()); // Return a valid response. callback.run(cannedResponse); // Falling out of this method will automatically finish this RPC. callback.run(null); // TODO: terrible idea? }
@Override public void run(ProtocolSubmitResponse response) { ++counter; assertEquals(1, response.getOperationsApplied()); assertFalse(response.hasErrorMessage()); } });
@Override public void run(ProtocolSubmitResponse response) { ++counter; assertEquals(0, response.getOperationsApplied()); assertEquals(FAIL_MESSAGE, response.getErrorMessage()); } });
public void testRoundTrippingJsonRepeatedField() throws Exception { WaveClientRpc.ProtocolOpenRequest.Builder sourceBuilder = buildProtocolOpenRequest(); sourceBuilder.addWaveletIdPrefix("aaa"); sourceBuilder.addWaveletIdPrefix("bbb"); sourceBuilder.addWaveletIdPrefix("ccc"); checkRoundtripping(sourceBuilder); }