Github user xubo245 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2919#discussion_r242583087
--- Diff:
store/sdk/src/test/java/org/apache/carbondata/sdk/file/CarbonSchemaReaderTest.java
---
@@ -236,6 +243,113 @@ public void testReadSchemaWithDifferentSchema() {
}
}
+ @Test
+ public void testGetVersionDetailsAndValidate() {
+ try {
+ String versionDetails = CarbonSchemaReader
+ .getVersionDetails(path);
+ Assert.assertTrue(versionDetails.contains("CarbonSchemaReaderTest in
version: "));
+ } catch (Throwable e) {
+ e.printStackTrace();
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGetVersionDetailsWithoutValidate() {
+ try {
+ String versionDetails = CarbonSchemaReader
+ .getVersionDetails(path);
+ Assert.assertTrue(versionDetails.contains("CarbonSchemaReaderTest in
version: "));
+ } catch (Throwable e) {
+ e.printStackTrace();
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGetVersionDetailsWithCarbonDataFile() {
+ try {
+ File[] dataFiles = new File(path).listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.endsWith(CARBON_DATA_EXT);
+ }
+ });
+ String versionDetails =
CarbonSchemaReader.getVersionDetails(dataFiles[0].getAbsolutePath());
+ Assert.assertTrue(versionDetails.contains("CarbonSchemaReaderTest in
version: "));
+ } catch (Throwable e) {
+ e.printStackTrace();
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGetVersionDetailsWithCarbonIndexFile() {
+ try {
+ File[] indexFiles = new File(path).listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.endsWith(INDEX_FILE_EXT);
+ }
+ });
+
CarbonSchemaReader.getVersionDetails(indexFiles[0].getAbsolutePath());
+ Assert.fail();
+ } catch (Throwable e) {
+ Assert.assertTrue(e.getMessage()
+ .equalsIgnoreCase("Can't get version details from carbonindex
file."));
+ }
+ }
+
+ public void testGetVersionDetailsWithTheSameSchema() {
+ try {
+ writeData();
+ try {
+ String versionDetails = CarbonSchemaReader
+ .getVersionDetails(path);
+ Assert.assertTrue(versionDetails
+ .contains("CarbonSchemaReaderTest in version: "));
+ } catch (Exception e) {
+ Assert.fail();
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ Assert.fail();
+ }
+ }
+
+ @Test
+ public void testGetVersionDetailsWithDifferentSchema() {
+ try {
+ int num = 10;
+ Field[] fields = new Field[2];
+ fields[0] = new Field("name", DataTypes.STRING);
+ fields[1] = new Field("age", DataTypes.INT);
+ CarbonWriter writer = CarbonWriter
+ .builder()
+ .outputPath(path)
+ .withCsvInput(new Schema(fields))
+ .writtenBy("testReadSchemaWithDifferentSchema")
+ .build();
+
+ for (int i = 0; i < num; i++) {
+ writer.write(new String[]{"robot" + (i % 10), String.valueOf(i)});
+ }
+ writer.close();
+ try {
+ CarbonSchemaReader
+ .getVersionDetails(path);
+ } catch (Exception e) {
+ Assert.assertTrue(e.getMessage()
+ .equalsIgnoreCase("Version details is different between
different files."));
+ Assert.fail();
--- End diff --
ok, removed.
---