/** * Set up gRPC interface mocks. */ @Before public void before() { mClient = mock(BlockWorkerClient.class); mRequestObserver = mock(ClientCallStreamObserver.class); when(mClient.writeBlock(any(StreamObserver.class))).thenAnswer((args) -> { mResponseObserver = args.getArgumentAt(0, ClientResponseObserver.class); return mRequestObserver; }); when(mRequestObserver.isReady()).thenReturn(true); mStream = new GrpcBlockingStream<>(mClient::writeBlock, BUFFER_SIZE, TEST_MESSAGE); }
/** * Checks send after stream is ready. */ @Test public void sendAfterStreamReady() throws Exception { when(mRequestObserver.isReady()).thenReturn(false); doAnswer((args) -> { mOnReadyHandler = args.getArgumentAt(0, Runnable.class); return null; }).when(mRequestObserver).setOnReadyHandler(any(Runnable.class)); mResponseObserver.beforeStart(mRequestObserver); EXECUTOR.submit(() -> { try { // notify ready after a short period of time Thread.sleep(SHORT_TIMEOUT); when(mRequestObserver.isReady()).thenReturn(true); mOnReadyHandler.run(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } }); WriteRequest request = WriteRequest.newBuilder().build(); mStream.send(request, TIMEOUT); verify(mRequestObserver).onNext(request); }
while (true) { checkError(); if (mRequestObserver.isReady()) { break;
/** * Checks send fails after timeout waiting for stream to be ready. */ @Test public void sendFailsAfterTimeout() throws Exception { when(mRequestObserver.isReady()).thenReturn(false); mThrown.expect(DeadlineExceededException.class); mThrown.expectMessage(containsString(TEST_MESSAGE)); mStream.send(WriteRequest.newBuilder().build(), SHORT_TIMEOUT); }
@Before public void before() throws Exception { mClientContext = ClientContext.create(mConf); mContext = PowerMockito.mock(FileSystemContext.class); mAddress = Mockito.mock(WorkerNetAddress.class); mClient = mock(BlockWorkerClient.class); mRequestObserver = mock(ClientCallStreamObserver.class); PowerMockito.when(mContext.getClientContext()).thenReturn(mClientContext); PowerMockito.when(mContext.getConf()).thenReturn(mConf); PowerMockito.when(mContext.acquireBlockWorkerClient(mAddress)).thenReturn(mClient); PowerMockito.doNothing().when(mContext).releaseBlockWorkerClient(mAddress, mClient); PowerMockito.when(mClient.writeBlock(any(StreamObserver.class))).thenReturn(mRequestObserver); PowerMockito.when(mRequestObserver.isReady()).thenReturn(true); }
@Before public void before() throws Exception { mContext = PowerMockito.mock(FileSystemContext.class); mAddress = mock(WorkerNetAddress.class); mClient = mock(BlockWorkerClient.class); mRequestObserver = mock(ClientCallStreamObserver.class); PowerMockito.when(mContext.acquireBlockWorkerClient(mAddress)).thenReturn(mClient); PowerMockito.when(mContext.getClientContext()) .thenReturn(ClientContext.create(mConf)); PowerMockito.when(mContext.getConf()).thenReturn(mConf); PowerMockito.doNothing().when(mContext).releaseBlockWorkerClient(mAddress, mClient); PowerMockito.when(mClient.writeBlock(any(StreamObserver.class))).thenReturn(mRequestObserver); PowerMockito.when(mRequestObserver.isReady()).thenReturn(true); }
@Before public void before() throws Exception { mMasterClient = PowerMockito.mock(BlockMasterClient.class); mWorkerClient = PowerMockito.mock(BlockWorkerClient.class); mContext = PowerMockito.mock(FileSystemContext.class); when(mContext.acquireBlockMasterClientResource()) .thenReturn(new DummyCloseableResource<>(mMasterClient)); when(mContext.getClientContext()).thenReturn(ClientContext.create(sConf)); when(mContext.getConf()).thenReturn(sConf); mLocalAddr = new WorkerNetAddress().setHost(NetworkAddressUtils.getLocalHostName( (int) sConf.getMs(PropertyKey.NETWORK_HOST_RESOLUTION_TIMEOUT_MS))); mBlockStore = new AlluxioBlockStore(mContext, TieredIdentityFactory.fromString("node=" + WORKER_HOSTNAME_LOCAL, sConf)); when(mContext.acquireBlockWorkerClient(any(WorkerNetAddress.class))) .thenReturn(mWorkerClient); mStreamObserver = PowerMockito.mock(ClientCallStreamObserver.class); when(mWorkerClient.writeBlock(any(StreamObserver.class))) .thenReturn(mStreamObserver); when(mWorkerClient.openLocalBlock(any(StreamObserver.class))) .thenReturn(mStreamObserver); when(mStreamObserver.isReady()).thenReturn(true); }
if (req.isReady()) { numRequests.incrementAndGet(); req.onNext(REQUEST);
@Before public void before() throws Exception { mContext = PowerMockito.mock(FileSystemContext.class); when(mContext.getClientContext()) .thenReturn(ClientContext.create(ConfigurationTestUtils.defaults())); when(mContext.getConf()).thenReturn(ConfigurationTestUtils.defaults()); mAddress = mock(WorkerNetAddress.class); ReadRequest readRequest = ReadRequest.newBuilder().setBlockId(BLOCK_ID).setChunkSize(CHUNK_SIZE).build(); mFactory = new GrpcDataReader.Factory(mContext, mAddress, readRequest); mClient = mock(BlockWorkerClient.class); mRequestObserver = mock(ClientCallStreamObserver.class); when(mContext.acquireBlockWorkerClient(mAddress)).thenReturn(mClient); PowerMockito.doNothing().when(mContext).releaseBlockWorkerClient(mAddress, mClient); when(mClient.readBlock(any(StreamObserver.class))).thenReturn(mRequestObserver); when(mRequestObserver.isReady()).thenReturn(true); }
@Before public void before() throws Exception { BlockWorkerClient workerClient = PowerMockito.mock(BlockWorkerClient.class); ClientCallStreamObserver requestObserver = PowerMockito.mock(ClientCallStreamObserver.class); when(requestObserver.isReady()).thenReturn(true); when(workerClient.openLocalBlock(any(StreamObserver.class))) .thenAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { StreamObserver<OpenLocalBlockResponse> observer = invocation.getArgumentAt(0, StreamObserver.class); observer.onNext(OpenLocalBlockResponse.newBuilder().setPath("/tmp").build()); observer.onCompleted(); return requestObserver; } }); mMockContext = PowerMockito.mock(FileSystemContext.class); PowerMockito.when(mMockContext.acquireBlockWorkerClient(Matchers.any(WorkerNetAddress.class))) .thenReturn(workerClient); PowerMockito.when(mMockContext.getClientContext()).thenReturn(ClientContext.create(mConf)); PowerMockito.when(mMockContext.getConf()).thenReturn(mConf); PowerMockito.doNothing().when(mMockContext) .releaseBlockWorkerClient(Matchers.any(WorkerNetAddress.class), Matchers.any(BlockWorkerClient.class)); mInfo = new BlockInfo().setBlockId(1); mOptions = new InStreamOptions(new URIStatus(new FileInfo().setBlockIds(Collections .singletonList(1L))), mConf); }
@Override public void beforeStart(ClientCallStreamObserver<ReqT> rs) { rs.setOnReadyHandler(() -> { // called from grpc response thread if(rs.isReady()) { errCounter = 0; boolean notify = userReqStream.established(rs); if(notify) respStream.onEstablished(); } }); } // called from grpc response thread