use of org.apache.ignite.raft.jraft.rpc.RpcContext in project ignite-3 by apache.
the class AppendEntriesRequestProcessorTest method testSendSequenceResponse.
@Test
public void testSendSequenceResponse() {
mockNode();
final AppendEntriesRequestProcessor processor = (AppendEntriesRequestProcessor) newProcessor();
final PeerPair pair = processor.pairOf(this.peerIdStr, this.serverId);
processor.getOrCreatePeerRequestContext(this.groupId, pair, nodeManager);
final PingRequest msg = TestUtils.createPingRequest();
final RpcContext asyncContext = Mockito.mock(RpcContext.class);
processor.sendSequenceResponse(this.groupId, pair, 1, asyncContext, msg);
Mockito.verify(asyncContext, Mockito.never()).sendResponse(msg);
processor.sendSequenceResponse(this.groupId, pair, 0, asyncContext, msg);
Mockito.verify(asyncContext, Mockito.times(2)).sendResponse(msg);
}
use of org.apache.ignite.raft.jraft.rpc.RpcContext in project ignite-3 by apache.
the class FileServiceTest method testGetLargeFileData.
@Test
public void testGetLargeFileData() throws IOException {
final String data = writeLargeData();
final long readerId = FileService.getInstance().addReader(this.fileReader);
int fileOffset = 0;
while (true) {
final RpcRequests.GetFileRequest request = msgFactory.getFileRequest().count(4096).filename("data").offset(fileOffset).readerId(readerId).build();
final RpcContext asyncContext = Mockito.mock(RpcContext.class);
final Message msg = //
FileService.getInstance().handleGetFile(request, new RpcRequestClosure(asyncContext, msgFactory));
assertTrue(msg instanceof RpcRequests.GetFileResponse);
final RpcRequests.GetFileResponse response = (RpcRequests.GetFileResponse) msg;
final byte[] sourceArray = data.getBytes(UTF_8);
final byte[] respData = response.data().toByteArray();
final int length = sourceArray.length;
int offset = 0;
while (offset + length <= respData.length) {
final byte[] respArray = new byte[length];
System.arraycopy(respData, offset, respArray, 0, length);
try {
assertArrayEquals(sourceArray, respArray, "Offset: " + fileOffset);
} catch (AssertionError e) {
LOG.error("arrayComparisonFailure", e);
}
offset += length;
}
fileOffset += offset;
if (response.eof()) {
break;
}
}
}
use of org.apache.ignite.raft.jraft.rpc.RpcContext in project ignite-3 by apache.
the class FileServiceTest method testGetFileData.
@Test
public void testGetFileData() throws IOException {
writeData();
long readerId = FileService.getInstance().addReader(this.fileReader);
RpcRequests.GetFileRequest request = msgFactory.getFileRequest().count(Integer.MAX_VALUE).filename("data").offset(0).readerId(readerId).build();
RpcContext asyncContext = Mockito.mock(RpcContext.class);
Message msg = FileService.getInstance().handleGetFile(request, new RpcRequestClosure(asyncContext, msgFactory));
assertTrue(msg instanceof RpcRequests.GetFileResponse);
RpcRequests.GetFileResponse response = (RpcRequests.GetFileResponse) msg;
assertTrue(response.eof());
assertEquals("jraft is great!", new String(response.data().toByteArray(), UTF_8));
assertEquals(-1, response.readSize());
}
use of org.apache.ignite.raft.jraft.rpc.RpcContext in project ignite-3 by apache.
the class FileServiceTest method testGetFileNotFoundReader.
@Test
public void testGetFileNotFoundReader() {
RpcRequests.GetFileRequest request = msgFactory.getFileRequest().count(Integer.MAX_VALUE).filename("data").offset(0).readerId(1).build();
RpcContext asyncContext = Mockito.mock(RpcContext.class);
Message msg = FileService.getInstance().handleGetFile(request, new RpcRequestClosure(asyncContext, msgFactory));
assertTrue(msg instanceof RpcRequests.ErrorResponse);
RpcRequests.ErrorResponse response = (RpcRequests.ErrorResponse) msg;
assertEquals(RaftError.ENOENT.getNumber(), response.errorCode());
assertEquals("Fail to find reader=1", response.errorMsg());
}
use of org.apache.ignite.raft.jraft.rpc.RpcContext in project ignite-3 by apache.
the class FileServiceTest method testGetFileNotFound.
@Test
public void testGetFileNotFound() {
long readerId = FileService.getInstance().addReader(this.fileReader);
RpcRequests.GetFileRequest request = msgFactory.getFileRequest().count(Integer.MAX_VALUE).filename("data").offset(0).readerId(readerId).build();
RpcContext asyncContext = Mockito.mock(RpcContext.class);
Message msg = FileService.getInstance().handleGetFile(request, new RpcRequestClosure(asyncContext, msgFactory));
assertTrue(msg instanceof RpcRequests.ErrorResponse);
RpcRequests.ErrorResponse response = (RpcRequests.ErrorResponse) msg;
assertEquals(RaftError.EIO.getNumber(), response.errorCode());
assertEquals(String.format("Fail to read from path=%s filename=data", this.path), response.errorMsg());
}
Aggregations