### Question:
CompositeBlobInfo { public long getTotalSize() { return totalSize; } CompositeBlobInfo(int chunkSize, long totalSize, List<StoreKey> keys);  CompositeBlobInfo(List<Pair<StoreKey, Long>> keysAndContentSizes); List<ChunkMetadata> getStoreKeysInByteRange(long start, long end); long getTotalSize(); int getChunkSize(); List<StoreKey> getKeys(); List<ChunkMetadata> getChunkMetadataList(); short getMetadataContentVersion();  }### Answer:
@Test public void testValidGetStoreKeysInByteRange() { List<Pair<StoreKey, Long>> keysAndContentSizes = createKeysAndContentSizes(60, 1, 1000000, 100); CompositeBlobInfo compositeBlobInfo = new CompositeBlobInfo(keysAndContentSizes); long totalSize = compositeBlobInfo.getTotalSize(); assertGetStoreKeysInByteRange(0, totalSize - 1, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange(totalSize - 1, totalSize - 1, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange(0, 0, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange(0, (totalSize - 1) / 2, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange((totalSize - 1) / 2, (totalSize - 1), compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange((totalSize - 1) / 3, 2 * (totalSize - 1) / 3, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange((totalSize - 1) / 2, (totalSize - 1) / 2, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange((totalSize - 1) / 2, (totalSize - 1) / 2 + 1, compositeBlobInfo, keysAndContentSizes); assertGetStoreKeysInByteRange(1, totalSize - 2, compositeBlobInfo, keysAndContentSizes); }
@Test public void testInvalidGetStoreKeysInByteRange() { List<Pair<StoreKey, Long>> keysAndContentSizes = createKeysAndContentSizes(60, 1, 1000000, 100); CompositeBlobInfo compositeBlobInfo = new CompositeBlobInfo(keysAndContentSizes); long totalSize = compositeBlobInfo.getTotalSize(); assertInvalidGetStoreKeysInByteRange(totalSize, totalSize, compositeBlobInfo); assertInvalidGetStoreKeysInByteRange(totalSize, totalSize + 1, compositeBlobInfo); assertInvalidGetStoreKeysInByteRange(-1, totalSize - 1, compositeBlobInfo); assertInvalidGetStoreKeysInByteRange(totalSize - 1, 0, compositeBlobInfo); assertInvalidGetStoreKeysInByteRange(1, 0, compositeBlobInfo); assertInvalidGetStoreKeysInByteRange(0, totalSize, compositeBlobInfo); }