@Override
  public Future<GetBlobResult> getBlob(String blobId, GetBlobOptions options, Callback<GetBlobResult> callback,
      QuotaChargeCallback quotaChargeCallback) {
    GetBlobResult result;
    switch (options.getOperationType()) {
      case BlobInfo:
        result = new GetBlobResult(new BlobInfo(
            new BlobProperties(0, "FrontendTestRouter", Account.UNKNOWN_ACCOUNT_ID, Container.UNKNOWN_CONTAINER_ID,
                false), new byte[0]), null, null);
        break;
      case Data:
        result = new GetBlobResult(null, new ByteBufferReadableStreamChannel(ByteBuffer.allocate(0)), null);
        break;
      default:
        result = new GetBlobResult(new BlobInfo(
            new BlobProperties(0, "FrontendTestRouter", Account.UNKNOWN_ACCOUNT_ID, Container.UNKNOWN_CONTAINER_ID,
                false), new byte[0]), new ByteBufferReadableStreamChannel(ByteBuffer.allocate(0)), null);
        break;
    }
    return completeOperation(result, callback, OpType.GetBlob);
  }
Enumerates the different operation types in the router.
ambry-frontend/src/test/java/com/github/ambry/frontend/FrontendRestRequestServiceTest.java