### Question:
StoreCopyClient { public StoreId fetchStoreId( AdvertisedSocketAddress fromAddress ) throws StoreIdDownloadFailedException { try { CatchUpResponseAdaptor<StoreId> responseHandler = new CatchUpResponseAdaptor<StoreId>() { @Override public void onGetStoreIdResponse( CompletableFuture<StoreId> signal, GetStoreIdResponse response ) { signal.complete( response.storeId() ); } }; return catchUpClient.makeBlockingRequest( fromAddress, new GetStoreIdRequest(), responseHandler ); } catch ( CatchUpClientException e ) { throw new StoreIdDownloadFailedException( e ); } } StoreCopyClient( CatchUpClient catchUpClient, Monitors monitors, LogProvider logProvider, TimeoutStrategy backOffStrategy ); StoreId fetchStoreId( AdvertisedSocketAddress fromAddress );  }### Answer:
@Test public void storeIdCanBeRetrieved() throws StoreIdDownloadFailedException, CatchUpClientException { StoreId remoteStoreId = new StoreId( 6, 3, 2, 6 ); AdvertisedSocketAddress remoteAddress = new AdvertisedSocketAddress( "host", 1234 ); when( catchUpClient.makeBlockingRequest( eq( remoteAddress ), any( GetStoreIdRequest.class ), any() ) ).thenReturn( remoteStoreId ); StoreId actualStoreId = subject.fetchStoreId( remoteAddress ); assertEquals( remoteStoreId, actualStoreId ); }