diff --git a/kite-data/kite-data-core/src/test/java/org/kitesdk/data/spi/filesystem/TestFileSystemPartitionView.java b/kite-data/kite-data-core/src/test/java/org/kitesdk/data/spi/filesystem/TestFileSystemPartitionView.java index c68d824..af17b29 100644 --- a/kite-data/kite-data-core/src/test/java/org/kitesdk/data/spi/filesystem/TestFileSystemPartitionView.java +++ b/kite-data/kite-data-core/src/test/java/org/kitesdk/data/spi/filesystem/TestFileSystemPartitionView.java @@ -44,6 +44,7 @@ public class TestFileSystemPartitionView { private FileSystemDataset unpartitioned = null; private FileSystemDataset partitioned = null; + private FileSystemDataset string_partitioned = null; @Before public void createTestDatasets() { @@ -64,16 +65,42 @@ public class TestFileSystemPartitionView { partitioned = Datasets.create("dataset:file:/tmp/datasets/partitioned", descriptor, TestRecord.class); + descriptor = new DatasetDescriptor.Builder(descriptor) + .partitionStrategy(new PartitionStrategy.Builder() + .identity("data", "data_partition") + .build()) + .build(); + string_partitioned = Datasets.create("dataset:file:/tmp/datasets/string_partitioned", + descriptor, TestRecord.class); + writeTestRecords(unpartitioned); writeTestRecords(partitioned); + writeTestRecords(string_partitioned); } @After public void removeTestDatasets() { Datasets.delete("dataset:file:/tmp/datasets/unpartitioned"); Datasets.delete("dataset:file:/tmp/datasets/partitioned"); + Datasets.delete("dataset:file:/tmp/datasets/string_partitioned"); } + @Test + public void testFullPathsEncodedChars(){ + FileSystemPartitionView partition = string_partitioned.getPartitionView( + URI.create("file:/tmp/datasets/string_partitioned/data_partition=test-1")); + Assert.assertEquals("Should accept a full sub-partition URI", + URI.create("file:/tmp/datasets/string_partitioned/data_partition=test-1"), + partition.getLocation()); + + partition = string_partitioned.getPartitionView( + URI.create("file:/tmp/datasets/string_partitioned/data_partition=test%2F-2")); + Assert.assertEquals("Should accept a full sub-partition URI", + URI.create("file:/tmp/datasets/string_partitioned/data_partition=test%2F-2"), + partition.getLocation()); + } + + @Test public void testFullPaths() { FileSystemPartitionView partition = partitioned @@ -388,7 +415,11 @@ public class TestFileSystemPartitionView { for (int i = 0; i < 10; i += 1) { TestRecord record = new TestRecord(); record.id = i; - record.data = "test-" + i; + if(i % 2 ==0) { + record.data = "test/-" + i; + }else{ + record.data = "test-" + i; + } writer.write(record); }