Github user KanakaKumar commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2919#discussion_r242577513
  
    --- 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 --
    
     What is the purpose of this test case?  "Version details is different 
between different files" exception we never get now right? If thee is no 
separate validation required, we can remove this test.



---

Reply via email to