@Ignore("Final operation count is 1 but expected 0 in after() method. Test owner to fix test.")
  @Test
  public void testOperationCompleteAfterFinalBlob() {
    BatchOperationCallbackTracker tracker =
        new BatchOperationCallbackTracker(chunkIds, finalBlobId, new FutureResult<>(), callback, quotaChargeCallback,
            finalOperation, router);

    // update all data chunks and ensure that tracker isn't marked as complete.
    for (int i = 0; i < NUM_CHUNKS; i++) {
      tracker.getCallback(chunkIds.get(i)).onCompletion(null, null);
      Assert.assertFalse(tracker.isCompleted());
    }

    // test that final blob completion, after the completion of all chunks, completes the tracker.
    tracker.getCallback(finalBlobId).onCompletion(null, null);
    Assert.assertNull(trackerException);
    Assert.assertTrue(tracker.isCompleted());
    Assert.assertTrue(finalOperationCalled.get());
  }
Test that operation is completed only after the final blob is completed.
ambry-router/src/test/java/com/github/ambry/router/BatchOperationCallbackTrackerTest.java