@Test
  public void testTransferWindowFiles() throws IOException, InterruptedException {
    testMeta.checkpointManager.setup(testMeta.managedStateContext);

    Map<Long, Map<Slice, Bucket.BucketedValue>> buckets5 =
        ManagedStateTestUtils.getTestData(0, 5, 0);
    testMeta.checkpointManager.save(buckets5, 10, false);
    // Need to synchronously call transfer window files so shutting down the other thread.
    testMeta.checkpointManager.teardown();
    Thread.sleep(500);

    testMeta.checkpointManager.committed(10);
    testMeta.checkpointManager.transferWindowFiles();

    for (int i = 0; i < 5; i++) {
      ManagedStateTestUtils.transferBucketHelper(
          testMeta.managedStateContext.getFileAccess(), i, buckets5.get((long) i), 1);
    }
  }
  @Test
  public void testCommitted() throws IOException, InterruptedException {
    CountDownLatch latch = new CountDownLatch(5);
    MockBucketsFileSystem mockBucketsFileSystem = new MockBucketsFileSystem(latch);

    testMeta.managedStateContext.setBucketsFileSystem(mockBucketsFileSystem);

    mockBucketsFileSystem.setup(testMeta.managedStateContext);
    testMeta.checkpointManager.setup(testMeta.managedStateContext);

    Map<Long, Map<Slice, Bucket.BucketedValue>> data = ManagedStateTestUtils.getTestData(0, 5, 0);
    testMeta.checkpointManager.save(data, 10, false);
    testMeta.checkpointManager.committed(10);
    latch.await();
    testMeta.checkpointManager.teardown();
    Thread.sleep(500);

    for (int i = 0; i < 5; i++) {
      ManagedStateTestUtils.transferBucketHelper(
          testMeta.managedStateContext.getFileAccess(), i, data.get((long) i), 1);
    }
  }