Location locationInFed = location("/a/x/y");
Location locationInSource = location("/x/y");
ProjectedNode projectedNode = new ProxyNode(projectionA, locationInSource, locationInFed, false);
stub(workspace.project(context, locationInFed, false)).toReturn(projectedNode);
ReadNodeRequest request = new ReadNodeRequest(locationInFed, workspaceName);
processor.process(request);
assertThat(request.hasError(), is(false));
// Check that the federated request has the right information ...
FederatedRequest fedRequest = federatedRequests.poll();
ReadNodeRequest projectedRequest = (ReadNodeRequest)fedRequest.getFirstProjectedRequest().getRequest();
assertThat(projectedRequest.at(), is(locationInSource));
assertThat(fedRequest.getFirstProjectedRequest().hasNext(), is(false));
// Close the processor ...
processor.close();
processor.await();
// Verify the source saw the expected read ...
ReadNodeRequest sourceRequest = (ReadNodeRequest)connectionForSourceA.getProcessedRequests().poll();
assertThat(sourceRequest.at().getPath(), is(locationInSource.getPath()));
assertThat(connectionForSourceB.getProcessedRequests().isEmpty(), is(true));
assertThat(connectionForSourceC.getProcessedRequests().isEmpty(), is(true));
}