@Test public void testCoveringPartitions() { Iterable<PartitionView<TestRecord>> partitions = unpartitioned.getCoveringPartitions(); Assert.assertEquals( "Should have a single partition view at the root", unpartitioned.getPartitionView(URI.create("file:/tmp/datasets/unpartitioned")), Iterables.getOnlyElement(partitions)); partitions = partitioned.getCoveringPartitions(); Set<PartitionView<TestRecord>> expected = Sets.newHashSet(); expected.add( partitioned.getPartitionView(URI.create("file:/tmp/datasets/partitioned/id_hash=0"))); expected.add( partitioned.getPartitionView(new Path("file:/tmp/datasets/partitioned/id_hash=1"))); expected.add( partitioned.getPartitionView(URI.create("file:/tmp/datasets/partitioned/id_hash=2"))); expected.add( partitioned.getPartitionView(new Path("file:/tmp/datasets/partitioned/id_hash=3"))); Assert.assertEquals( "Should have a partition view for each partition", expected, Sets.newHashSet(partitions)); PartitionView<TestRecord> partition0 = partitioned.getPartitionView(URI.create("file:/tmp/datasets/partitioned/id_hash=0")); partition0.deleteAll(); expected.remove(partition0); Assert.assertEquals( "Should have a partition view for each partition", expected, Sets.newHashSet(partitions)); }
@Test public void testDeletePartitions() { Iterable<PartitionView<TestRecord>> partitions = partitioned.getCoveringPartitions(); Set<PartitionView<TestRecord>> expected = Sets.newHashSet(partitions); for (PartitionView<TestRecord> partition : partitions) { Assert.assertTrue("Should delete data", partition.deleteAll()); expected.remove(partition); Set<PartitionView<TestRecord>> actual = Sets.newHashSet(partitioned.getCoveringPartitions()); Assert.assertEquals("Should only list remaining partitions", expected, actual); } for (PartitionView<TestRecord> partition : partitions) { Assert.assertFalse("Should indicate no data was present", partition.deleteAll()); } }