http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileFactoryImplUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileFactoryImplUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileFactoryImplUnitTest.java
deleted file mode 100644
index 8277f91..0000000
--- 
a/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileFactoryImplUnitTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.carbondata.core.carbon.datastorage.filesystem.store.impl;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.carbondata.core.datastorage.store.impl.FileFactory;
-
-import mockit.Mock;
-import mockit.MockUp;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static junit.framework.TestCase.assertNotNull;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-public class FileFactoryImplUnitTest {
-
-  private static String filePath;
-
-  @AfterClass
-  public static void tearDown() {
-    File file = new File(filePath);
-    if (file.exists()) {
-      file.delete();
-    }
-
-    File file1 = new File(".TestFileFactory.carbondata.crc");
-    if (file1.exists()) {
-      file1.delete();
-    }
-  }
-
-  @BeforeClass public static void setUp() {
-    filePath = "TestFileFactory.carbondata";
-  }
-
-  @Test public void testFileExistsForVIEWFSType() throws IOException {
-    FileFactory.isFileExist("fakefilePath", FileFactory.FileType.VIEWFS);
-  }
-
-  @Test public void testFileExistsForDefaultType() throws IOException {
-    FileFactory.isFileExist("fakefilePath", FileFactory.FileType.LOCAL);
-  }
-
-  @Test public void testFileExistsForDefaultTypeWithPerformFileCheck() throws 
IOException {
-    assertTrue(FileFactory.isFileExist(filePath, FileFactory.FileType.LOCAL, 
true));
-  }
-
-  @Test public void testFileExistsForDefaultTypeWithOutPerformFileCheck() 
throws IOException {
-    assertFalse(FileFactory.isFileExist("fakefilePath", 
FileFactory.FileType.LOCAL, false));
-  }
-
-  @Test public void testFileExistsForVIEWFSTypeWithPerformFileCheck() throws 
IOException {
-    assertTrue(FileFactory.isFileExist(filePath, FileFactory.FileType.VIEWFS, 
true));
-  }
-
-  @Test public void testFileExistsForVIEWFSTypeWithOutPerformFileCheck() 
throws IOException {
-    assertFalse(FileFactory.isFileExist("fakefilePath", 
FileFactory.FileType.VIEWFS, false));
-  }
-
-  @Test public void testCreateNewFileWithDefaultFileType() throws IOException {
-    tearDown();
-    assertTrue(FileFactory.createNewFile(filePath, 
FileFactory.FileType.LOCAL));
-  }
-
-  @Test public void testCreateNewLockFileWithDefaultFileType() throws 
IOException {
-    tearDown();
-    assertTrue(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.LOCAL));
-  }
-
-  @Test public void testCreateNewLockFileWithViewFsFileType() throws 
IOException {
-    tearDown();
-    assertTrue(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void testCreateNewLockFileWithViewFsFileTypeWhenFileExists() 
throws IOException {
-    assertFalse(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void testCreateNewFileWithDefaultFileTypeWhenFileExists() 
throws IOException {
-    assertFalse(FileFactory.createNewFile(filePath, 
FileFactory.FileType.LOCAL));
-  }
-
-  @Test public void testCreateNewFileWithVIEWFSFileType() throws IOException {
-    File file = new File(filePath);
-    if (file.exists()) {
-      file.delete();
-    }
-    assertTrue(FileFactory.createNewFile(filePath, 
FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void testCreateNewFileWithVIEWFSFileTypeWhenFileExists() throws 
IOException {
-    assertFalse(FileFactory.createNewFile(filePath, 
FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void testMkDirWithVIEWFSFileType() throws IOException {
-    new MockUp<FileSystem>() {
-      @SuppressWarnings("unused") @Mock public boolean mkdirs(Path file) 
throws IOException {
-        {
-          return true;
-        }
-      }
-    };
-    tearDown();
-    assertTrue(FileFactory.mkdirs(filePath, FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void testGetDataOutputStreamUsingAppendeForException() {
-    try {
-      FileFactory.getDataOutputStreamUsingAppend(filePath, 
FileFactory.FileType.VIEWFS);
-    } catch (Exception exception) {
-      assertEquals("Not supported", exception.getMessage());
-    }
-  }
-
-  @Test public void getDataOutputStreamForVIEWFSType() throws IOException {
-    assertNotNull(FileFactory.getDataOutputStream(filePath, 
FileFactory.FileType.VIEWFS));
-  }
-
-  @Test public void getDataOutputStreamForLocalType() throws IOException {
-    assertNotNull(FileFactory.getDataOutputStream(filePath, 
FileFactory.FileType.LOCAL));
-  }
-
-  @Test public void testGetCarbonFile() throws IOException {
-    FileFactory.getDataOutputStream(filePath, FileFactory.FileType.VIEWFS);
-    assertNotNull(FileFactory.getCarbonFile(filePath, 
FileFactory.FileType.HDFS));
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileHolderImplUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileHolderImplUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileHolderImplUnitTest.java
deleted file mode 100644
index c14dff9..0000000
--- 
a/core/src/test/java/org/apache/carbondata/core/carbon/datastorage/filesystem/store/impl/FileHolderImplUnitTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.carbondata.core.carbon.datastorage.filesystem.store.impl;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-
-import org.apache.carbondata.core.datastorage.store.impl.FileHolderImpl;
-
-import mockit.Mock;
-import mockit.MockUp;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.pentaho.di.core.util.Assert.assertNull;
-
-public class FileHolderImplUnitTest {
-
-  private static FileHolderImpl fileHolder;
-  private static FileHolderImpl fileHolderWithCapacity;
-  private static String fileName;
-  private static String fileNameWithEmptyContent;
-  private static File file;
-  private static File fileWithEmptyContent;
-
-  @BeforeClass public static void setup() {
-    fileHolder = new FileHolderImpl();
-    fileHolderWithCapacity = new FileHolderImpl(50);
-    file = new File("Test.carbondata");
-    fileWithEmptyContent = new File("TestEXception.carbondata");
-
-    if (!file.exists()) try {
-      file.createNewFile();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-    if (!fileWithEmptyContent.exists()) try {
-      fileWithEmptyContent.createNewFile();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-    try {
-      FileOutputStream of = new FileOutputStream(file, true);
-      BufferedWriter br = new BufferedWriter(new OutputStreamWriter(of, 
"UTF-8"));
-      br.write("Hello World");
-      br.close();
-    } catch (Exception e) {
-      e.getMessage();
-    }
-    fileName = file.getAbsolutePath();
-    fileNameWithEmptyContent = fileWithEmptyContent.getAbsolutePath();
-  }
-
-  @AfterClass public static void tearDown() throws IOException {
-    file.delete();
-    fileWithEmptyContent.delete();
-    fileHolder.finish();
-  }
-
-  @Test public void testReadByteArray() throws IOException  {
-    byte[] result = fileHolder.readByteArray(fileName, 1);
-    byte[] expected_result = new byte[] { 72 };
-    assertThat(result, is(equalTo(expected_result)));
-  }
-
-  @Test public void testReadByteArrayWithFilePath() throws IOException  {
-    byte[] result = fileHolder.readByteArray(fileName, 2L, 2);
-    byte[] expected_result = { 108, 108 };
-    assertThat(result, is(equalTo(expected_result)));
-  }
-
-  @Test public void testReadLong() throws IOException  {
-    long actualResult = fileHolder.readLong(fileName, 1L);
-    long expectedResult = 7308335519855243122L;
-    assertThat(actualResult, is(equalTo(expectedResult)));
-  }
-
-  @Test public void testReadLongForIoException() throws IOException {
-    fileHolder.readLong(fileNameWithEmptyContent, 1L);
-  }
-
-  @Test public void testReadIntForIoException() throws IOException {
-    fileHolder.readInt(fileNameWithEmptyContent, 1L);
-  }
-
-  @Test public void testReadInt() throws IOException  {
-    int actualResult = fileHolder.readInt(fileName, 1L);
-    int expectedResult = 1701604463;
-    assertThat(actualResult, is(equalTo(expectedResult)));
-  }
-
-  @Test public void testReadIntWithFileName() throws IOException  {
-    int actualResult = fileHolder.readInt(fileName);
-    int expectedResult = 1701604463;
-    assertThat(actualResult, is(equalTo(expectedResult)));
-  }
-
-  @Test public void testReadIntWithFileNameForIOException() throws IOException 
 {
-    fileHolder.readInt(fileNameWithEmptyContent);
-
-  }
-
-  @Test public void testDouble() throws IOException  {
-    double actualResult = fileHolder.readDouble(fileName, 1L);
-    double expectedResult = 7.3083355198552433E18;
-    assertThat(actualResult, is(equalTo(expectedResult)));
-  }
-
-  @Test public void testDoubleForIoException() throws IOException {
-    fileHolder.readDouble(fileNameWithEmptyContent, 1L);
-
-  }
-
-  @Test public void testDoubleForIoExceptionwithUpdateCache() throws Exception 
{
-    new MockUp<FileSystem>() {
-      @SuppressWarnings("unused") @Mock public FSDataInputStream open(Path 
file)
-          throws IOException {
-        throw new IOException();
-      }
-
-    };
-    try {
-      fileHolder.readDouble(fileName, 1L);
-    } catch (Exception e) {
-      assertNull(e.getMessage());
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/DriverQueryStatisticsRecorderImplTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/DriverQueryStatisticsRecorderImplTest.java
 
b/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/DriverQueryStatisticsRecorderImplTest.java
deleted file mode 100644
index 4322817..0000000
--- 
a/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/DriverQueryStatisticsRecorderImplTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.carbondata.core.carbon.querystatistics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.carbondata.core.stats.DriverQueryStatisticsRecorderImpl;
-import org.apache.carbondata.core.stats.QueryStatistic;
-import org.apache.carbondata.core.stats.QueryStatisticsConstants;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static junit.framework.TestCase.assertNotNull;
-import static org.pentaho.di.core.util.Assert.assertNull;
-
-public class DriverQueryStatisticsRecorderImplTest {
-  private static DriverQueryStatisticsRecorderImpl 
driverQueryStatisticsRecorderImpl = null;
-  private static QueryStatistic queryStasticsWithSQL_PARSE = null;
-  private static QueryStatistic queryStasticsWithLoadMetaData = null;
-  private static QueryStatistic queryStasticsWithLOAD_BLOCKS_DRIVER = null;
-  private static QueryStatistic queryStasticsWithBLOCK_ALLOCATION = null;
-  private static QueryStatistic queryStasticsWithBLOCK_IDENTIFICATION = null;
-
-  private static List<QueryStatistic> queryStatisticList;
-
-  @BeforeClass public static void setUp() {
-    driverQueryStatisticsRecorderImpl = 
DriverQueryStatisticsRecorderImpl.getInstance();
-    queryStasticsWithSQL_PARSE = new QueryStatistic();
-    queryStasticsWithLoadMetaData = new QueryStatistic();
-    queryStasticsWithLOAD_BLOCKS_DRIVER = new QueryStatistic();
-    queryStasticsWithBLOCK_ALLOCATION = new QueryStatistic();
-    queryStasticsWithBLOCK_IDENTIFICATION = new QueryStatistic();
-    queryStatisticList = new ArrayList<>();
-
-  }
-
-  @Test public void testCollectDriverStatistics() {
-    queryStasticsWithLOAD_BLOCKS_DRIVER
-        .addCountStatistic(QueryStatisticsConstants.LOAD_BLOCKS_DRIVER, 3);
-    queryStasticsWithLOAD_BLOCKS_DRIVER
-        .addStatistics(QueryStatisticsConstants.LOAD_BLOCKS_DRIVER, 5);
-    queryStasticsWithLOAD_BLOCKS_DRIVER
-        .addFixedTimeStatistic(QueryStatisticsConstants.LOAD_BLOCKS_DRIVER, 5);
-    queryStatisticList.add(queryStasticsWithLOAD_BLOCKS_DRIVER);
-    queryStasticsWithBLOCK_ALLOCATION
-        .addCountStatistic(QueryStatisticsConstants.BLOCK_ALLOCATION, 3);
-    
queryStasticsWithBLOCK_ALLOCATION.addStatistics(QueryStatisticsConstants.BLOCK_ALLOCATION,
 5);
-    queryStasticsWithLOAD_BLOCKS_DRIVER
-        .addFixedTimeStatistic(QueryStatisticsConstants.LOAD_BLOCKS_DRIVER, 5);
-    queryStatisticList.add(queryStasticsWithBLOCK_ALLOCATION);
-    queryStasticsWithBLOCK_IDENTIFICATION
-        .addCountStatistic(QueryStatisticsConstants.BLOCK_IDENTIFICATION, 3);
-    queryStasticsWithBLOCK_IDENTIFICATION
-        .addStatistics(QueryStatisticsConstants.BLOCK_IDENTIFICATION, 5);
-    queryStatisticList.add(queryStasticsWithBLOCK_IDENTIFICATION);
-    
queryStasticsWithLoadMetaData.addCountStatistic(QueryStatisticsConstants.LOAD_META,
 3);
-    
queryStasticsWithLoadMetaData.addStatistics(QueryStatisticsConstants.LOAD_META, 
5);
-    queryStatisticList.add(queryStasticsWithLoadMetaData);
-    
queryStasticsWithSQL_PARSE.addCountStatistic(QueryStatisticsConstants.SQL_PARSE,
 3);
-    
queryStasticsWithSQL_PARSE.addStatistics(QueryStatisticsConstants.SQL_PARSE, 5);
-    queryStatisticList.add(queryStasticsWithSQL_PARSE);
-
-    String result =
-        
driverQueryStatisticsRecorderImpl.collectDriverStatistics(queryStatisticList, 
"query1");
-    assertNotNull(result);
-  }
-
-  @Test public void testCollectDriverStatisticsWithBlock_Allocation() {
-    queryStatisticList.clear();
-    queryStasticsWithBLOCK_ALLOCATION
-        .addCountStatistic(QueryStatisticsConstants.BLOCK_ALLOCATION, 3);
-    
queryStasticsWithBLOCK_ALLOCATION.addStatistics(QueryStatisticsConstants.BLOCK_ALLOCATION,
 5);
-    queryStatisticList.add(queryStasticsWithBLOCK_ALLOCATION);
-    String result =
-        
driverQueryStatisticsRecorderImpl.collectDriverStatistics(queryStatisticList, 
"query1");
-    assertNull(result);
-  }
-
-  @Test public void 
testCollectDriverStatisticsWithBlock_AllocationAndBlock_Identification() {
-    queryStatisticList.clear();
-    queryStasticsWithBLOCK_ALLOCATION
-        .addCountStatistic(QueryStatisticsConstants.BLOCK_ALLOCATION, 3);
-    
queryStasticsWithBLOCK_ALLOCATION.addStatistics(QueryStatisticsConstants.BLOCK_ALLOCATION,
 5);
-    queryStatisticList.add(queryStasticsWithBLOCK_ALLOCATION);
-    queryStasticsWithBLOCK_IDENTIFICATION
-        .addCountStatistic(QueryStatisticsConstants.BLOCK_IDENTIFICATION, 3);
-    queryStasticsWithBLOCK_IDENTIFICATION
-        .addStatistics(QueryStatisticsConstants.BLOCK_IDENTIFICATION, 5);
-    queryStatisticList.add(queryStasticsWithBLOCK_IDENTIFICATION);
-    String result =
-        
driverQueryStatisticsRecorderImpl.collectDriverStatistics(queryStatisticList, 
"query1");
-    assertNotNull(result);
-  }
-
-  @Test
-  public void 
testCollectDriverStatisticsWithBlock_AllocationAndBlock_IdentificationForException()
 {
-    queryStatisticList.clear();
-
-    driverQueryStatisticsRecorderImpl = 
DriverQueryStatisticsRecorderImpl.getInstance();
-
-    String result =
-        
driverQueryStatisticsRecorderImpl.collectDriverStatistics(queryStatisticList, 
"query1");
-    assertNull(result);
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/QueryStasticsRecorderImplTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/QueryStasticsRecorderImplTest.java
 
b/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/QueryStasticsRecorderImplTest.java
deleted file mode 100644
index fe2f1ea..0000000
--- 
a/core/src/test/java/org/apache/carbondata/core/carbon/querystatistics/QueryStasticsRecorderImplTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.carbondata.core.carbon.querystatistics;
-
-import org.apache.carbondata.core.stats.QueryStatistic;
-import org.apache.carbondata.core.stats.QueryStatisticsConstants;
-import org.apache.carbondata.core.stats.QueryStatisticsRecorderImpl;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static junit.framework.TestCase.assertNotNull;
-
-public class QueryStasticsRecorderImplTest {
-
-  private static QueryStatisticsRecorderImpl queryStasticsRecorderImpl = null;
-  private static QueryStatistic queryStatistic = null;
-  private static QueryStatistic queryStatisticWithLOAD_BLOCKS_EXECUTOR = null;
-  private static QueryStatistic queryStatisticWithSCAN_BLOCKS_TIME = null;
-  private static QueryStatistic queryStatisticWithSCAN_BLOCKS_NUM = null;
-  private static QueryStatistic queryStatisticWithLOAD_DICTIONARY = null;
-  private static QueryStatistic queryStatisticWithRESULT_SIZE = null;
-  private static QueryStatistic queryStatisticWithEXECUTOR_PART = null;
-  private static QueryStatistic queryStatisticWithTOTAL_BLOCKLET_NUM = null;
-  private static QueryStatistic queryStatisticWithVALID_SCAN_BLOCKLET_NUM = 
null;
-
-  @BeforeClass public static void setUp() {
-    queryStatisticWithLOAD_BLOCKS_EXECUTOR = new QueryStatistic();
-    queryStasticsRecorderImpl = new 
QueryStatisticsRecorderImpl(System.nanoTime() + "");
-    queryStasticsRecorderImpl.logStatisticsAsTableDriver();
-    queryStatisticWithLOAD_BLOCKS_EXECUTOR
-        .addStatistics(QueryStatisticsConstants.LOAD_BLOCKS_EXECUTOR, 5L);
-    queryStatisticWithLOAD_BLOCKS_EXECUTOR
-        .addCountStatistic(QueryStatisticsConstants.LOAD_BLOCKS_EXECUTOR, 5L);
-    queryStatisticWithLOAD_BLOCKS_EXECUTOR
-        .addStatistics(QueryStatisticsConstants.LOAD_BLOCKS_EXECUTOR, 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithLOAD_BLOCKS_EXECUTOR);
-    queryStatisticWithSCAN_BLOCKS_TIME = new QueryStatistic();
-    
queryStatisticWithSCAN_BLOCKS_TIME.addStatistics(QueryStatisticsConstants.SCAN_BLOCKS_TIME,
 5L);
-    queryStatisticWithSCAN_BLOCKS_TIME
-        .addCountStatistic(QueryStatisticsConstants.SCAN_BLOCKS_TIME, 5L);
-    
queryStatisticWithSCAN_BLOCKS_TIME.addStatistics(QueryStatisticsConstants.SCAN_BLOCKS_TIME,
 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithSCAN_BLOCKS_TIME);
-    queryStatisticWithSCAN_BLOCKS_NUM = new QueryStatistic();
-    
queryStatisticWithSCAN_BLOCKS_NUM.addStatistics(QueryStatisticsConstants.SCAN_BLOCKS_NUM,
 5L);
-    queryStatisticWithSCAN_BLOCKS_NUM
-        .addCountStatistic(QueryStatisticsConstants.SCAN_BLOCKS_NUM, 5L);
-    
queryStatisticWithSCAN_BLOCKS_NUM.addStatistics(QueryStatisticsConstants.SCAN_BLOCKS_NUM,
 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithSCAN_BLOCKS_NUM);
-    queryStatisticWithLOAD_DICTIONARY = new QueryStatistic();
-    
queryStatisticWithLOAD_DICTIONARY.addStatistics(QueryStatisticsConstants.LOAD_DICTIONARY,
 5L);
-    queryStatisticWithLOAD_DICTIONARY
-        .addCountStatistic(QueryStatisticsConstants.LOAD_DICTIONARY, 5L);
-    
queryStatisticWithLOAD_DICTIONARY.addStatistics(QueryStatisticsConstants.LOAD_DICTIONARY,
 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithLOAD_DICTIONARY);
-    queryStatisticWithRESULT_SIZE = new QueryStatistic();
-    
queryStatisticWithRESULT_SIZE.addStatistics(QueryStatisticsConstants.RESULT_SIZE,
 5L);
-    
queryStatisticWithRESULT_SIZE.addCountStatistic(QueryStatisticsConstants.RESULT_SIZE,
 5L);
-    
queryStatisticWithRESULT_SIZE.addStatistics(QueryStatisticsConstants.RESULT_SIZE,
 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    queryStasticsRecorderImpl.recordStatistics(queryStatisticWithRESULT_SIZE);
-    queryStatisticWithEXECUTOR_PART = new QueryStatistic();
-    
queryStatisticWithEXECUTOR_PART.addStatistics(QueryStatisticsConstants.EXECUTOR_PART,
 5L);
-    
queryStatisticWithEXECUTOR_PART.addCountStatistic(QueryStatisticsConstants.EXECUTOR_PART,
 5L);
-    
queryStatisticWithEXECUTOR_PART.addStatistics(QueryStatisticsConstants.EXECUTOR_PART,
 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithEXECUTOR_PART);
-    queryStatisticWithTOTAL_BLOCKLET_NUM = new QueryStatistic();
-    queryStatisticWithTOTAL_BLOCKLET_NUM
-        .addStatistics(QueryStatisticsConstants.TOTAL_BLOCKLET_NUM, 5L);
-    queryStatisticWithTOTAL_BLOCKLET_NUM
-        .addCountStatistic(QueryStatisticsConstants.TOTAL_BLOCKLET_NUM, 5L);
-    queryStatisticWithTOTAL_BLOCKLET_NUM
-        .addStatistics(QueryStatisticsConstants.TOTAL_BLOCKLET_NUM, 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithTOTAL_BLOCKLET_NUM);
-    queryStatisticWithVALID_SCAN_BLOCKLET_NUM = new QueryStatistic();
-    queryStatisticWithVALID_SCAN_BLOCKLET_NUM
-        .addStatistics(QueryStatisticsConstants.VALID_SCAN_BLOCKLET_NUM, 5L);
-    queryStatisticWithVALID_SCAN_BLOCKLET_NUM
-        .addCountStatistic(QueryStatisticsConstants.VALID_SCAN_BLOCKLET_NUM, 
5L);
-    queryStatisticWithVALID_SCAN_BLOCKLET_NUM
-        .addStatistics(QueryStatisticsConstants.VALID_SCAN_BLOCKLET_NUM, 5L);
-    queryStasticsRecorderImpl.logStatistics();
-    
queryStasticsRecorderImpl.recordStatistics(queryStatisticWithVALID_SCAN_BLOCKLET_NUM);
-    queryStasticsRecorderImpl.logStatisticsAsTableExecutor();
-  }
-
-  @Test public void testcollectExecutorStatistics() {
-    assertNotNull(queryStasticsRecorderImpl.collectExecutorStatistics());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/CompressedDataMeasureWrapperTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/CompressedDataMeasureWrapperTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/CompressedDataMeasureWrapperTest.java
new file mode 100644
index 0000000..8bc6af4
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/CompressedDataMeasureWrapperTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.carbondata.core.datastorage;
+
+import org.apache.carbondata.core.datastorage.dataholder.CarbonReadDataHolder;
+import 
org.apache.carbondata.core.datastorage.impl.CompressedDataMeasureDataWrapper;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static junit.framework.TestCase.assertEquals;
+
+public class CompressedDataMeasureWrapperTest {
+  private static CompressedDataMeasureDataWrapper 
compressedDataMeasureDataWrapper;
+  private static CarbonReadDataHolder carbonReadDataHolder;
+  private static CarbonReadDataHolder[] carbonReadDataHolders;
+
+  @BeforeClass public static void setUp() {
+    carbonReadDataHolder = new CarbonReadDataHolder(null);
+    carbonReadDataHolders = new CarbonReadDataHolder[] { carbonReadDataHolder 
};
+
+  }
+
+  @Test public void testGetValues() {
+    compressedDataMeasureDataWrapper = new 
CompressedDataMeasureDataWrapper(carbonReadDataHolders);
+    int expected = 1;
+    int actual = compressedDataMeasureDataWrapper.getValues().length;
+    assertEquals(expected, actual);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/DFSFileHolderImplUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/DFSFileHolderImplUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/DFSFileHolderImplUnitTest.java
new file mode 100644
index 0000000..62700db
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/DFSFileHolderImplUnitTest.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.carbondata.core.datastorage;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
+import org.apache.carbondata.core.datastorage.impl.DFSFileHolderImpl;
+
+import mockit.Mock;
+import mockit.MockUp;
+import org.apache.hadoop.fs.FSDataInputStream;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.pentaho.di.core.util.Assert.assertNull;
+
+public class DFSFileHolderImplUnitTest {
+
+  private static DFSFileHolderImpl dfsFileHolder;
+  private static String fileName;
+  private static String fileNameWithEmptyContent;
+  private static File file;
+  private static File fileWithEmptyContent;
+
+  @BeforeClass public static void setup() {
+    dfsFileHolder = new DFSFileHolderImpl();
+    file = new File("Test.carbondata");
+    fileWithEmptyContent = new File("TestEXception.carbondata");
+
+    if (!file.exists()) try {
+      file.createNewFile();
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+    if (!fileWithEmptyContent.exists()) try {
+      fileWithEmptyContent.createNewFile();
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+    try {
+      FileOutputStream of = new FileOutputStream(file, true);
+      BufferedWriter br = new BufferedWriter(new OutputStreamWriter(of, 
"UTF-8"));
+      br.write("Hello World");
+      br.close();
+    } catch (Exception e) {
+      e.getMessage();
+    }
+    fileName = file.getAbsolutePath();
+    fileNameWithEmptyContent = fileWithEmptyContent.getAbsolutePath();
+  }
+
+  @AfterClass public static void tearDown() throws IOException  {
+    file.delete();
+    fileWithEmptyContent.delete();
+    dfsFileHolder.finish();
+  }
+
+  @Test public void testReadByteArray() throws IOException  {
+    byte[] result = dfsFileHolder.readByteArray(fileName, 1);
+    byte[] expected_result = new byte[] { 72 };
+    assertThat(result, is(equalTo(expected_result)));
+  }
+
+  @Test public void testReadByteArrayWithFilePath() throws IOException  {
+    byte[] result = dfsFileHolder.readByteArray(fileName, 2L, 2);
+    byte[] expected_result = { 108, 108 };
+    assertThat(result, is(equalTo(expected_result)));
+  }
+
+  @Test public void testReadLong() throws IOException  {
+    long actualResult = dfsFileHolder.readLong(fileName, 1L);
+    long expectedResult = 7308335519855243122L;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test(expected = IOException.class)
+  public void testReadLongForIoException() throws IOException {
+    dfsFileHolder.readLong(fileNameWithEmptyContent, 1L);
+  }
+
+  @Test(expected = IOException.class)
+  public void testReadIntForIoException() throws IOException{
+    dfsFileHolder.readInt(fileNameWithEmptyContent, 1L);
+  }
+
+  @Test public void testReadInt() throws IOException  {
+    int actualResult = dfsFileHolder.readInt(fileName, 1L);
+    int expectedResult = 1701604463;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test public void testReadIntWithFileName() throws IOException {
+    int actualResult = dfsFileHolder.readInt(fileName);
+    int expectedResult = 1701604463;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test(expected = IOException.class)
+  public void testReadIntWithFileNameForIOException() throws IOException {
+    dfsFileHolder.readInt(fileNameWithEmptyContent);
+  }
+
+  @Test public void testDouble() throws IOException  {
+    double actualResult = dfsFileHolder.readDouble(fileName, 1L);
+    double expectedResult = 7.3083355198552433E18;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test(expected = IOException.class)
+  public void testDoubleForIoException() throws IOException {
+    dfsFileHolder.readDouble(fileNameWithEmptyContent, 1L);
+  }
+
+  @Test
+  public void testDoubleForIoExceptionwithUpdateCache() throws IOException {
+    new MockUp<FileSystem>() {
+      @SuppressWarnings("unused") @Mock public FSDataInputStream open(Path 
file)
+          throws IOException {
+        throw new IOException();
+      }
+
+    };
+    dfsFileHolder.readDouble(fileName, 1L);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/FileFactoryImplUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/FileFactoryImplUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/FileFactoryImplUnitTest.java
new file mode 100644
index 0000000..51874c0
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/FileFactoryImplUnitTest.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.carbondata.core.datastorage;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.carbondata.core.datastorage.impl.FileFactory;
+
+import mockit.Mock;
+import mockit.MockUp;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static junit.framework.TestCase.assertNotNull;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class FileFactoryImplUnitTest {
+
+  private static String filePath;
+
+  @AfterClass
+  public static void tearDown() {
+    File file = new File(filePath);
+    if (file.exists()) {
+      file.delete();
+    }
+
+    File file1 = new File(".TestFileFactory.carbondata.crc");
+    if (file1.exists()) {
+      file1.delete();
+    }
+  }
+
+  @BeforeClass public static void setUp() {
+    filePath = "TestFileFactory.carbondata";
+  }
+
+  @Test public void testFileExistsForVIEWFSType() throws IOException {
+    FileFactory.isFileExist("fakefilePath", FileFactory.FileType.VIEWFS);
+  }
+
+  @Test public void testFileExistsForDefaultType() throws IOException {
+    FileFactory.isFileExist("fakefilePath", FileFactory.FileType.LOCAL);
+  }
+
+  @Test public void testFileExistsForDefaultTypeWithPerformFileCheck() throws 
IOException {
+    assertTrue(FileFactory.isFileExist(filePath, FileFactory.FileType.LOCAL, 
true));
+  }
+
+  @Test public void testFileExistsForDefaultTypeWithOutPerformFileCheck() 
throws IOException {
+    assertFalse(FileFactory.isFileExist("fakefilePath", 
FileFactory.FileType.LOCAL, false));
+  }
+
+  @Test public void testFileExistsForVIEWFSTypeWithPerformFileCheck() throws 
IOException {
+    assertTrue(FileFactory.isFileExist(filePath, FileFactory.FileType.VIEWFS, 
true));
+  }
+
+  @Test public void testFileExistsForVIEWFSTypeWithOutPerformFileCheck() 
throws IOException {
+    assertFalse(FileFactory.isFileExist("fakefilePath", 
FileFactory.FileType.VIEWFS, false));
+  }
+
+  @Test public void testCreateNewFileWithDefaultFileType() throws IOException {
+    tearDown();
+    assertTrue(FileFactory.createNewFile(filePath, 
FileFactory.FileType.LOCAL));
+  }
+
+  @Test public void testCreateNewLockFileWithDefaultFileType() throws 
IOException {
+    tearDown();
+    assertTrue(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.LOCAL));
+  }
+
+  @Test public void testCreateNewLockFileWithViewFsFileType() throws 
IOException {
+    tearDown();
+    assertTrue(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void testCreateNewLockFileWithViewFsFileTypeWhenFileExists() 
throws IOException {
+    assertFalse(FileFactory.createNewLockFile(filePath, 
FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void testCreateNewFileWithDefaultFileTypeWhenFileExists() 
throws IOException {
+    assertFalse(FileFactory.createNewFile(filePath, 
FileFactory.FileType.LOCAL));
+  }
+
+  @Test public void testCreateNewFileWithVIEWFSFileType() throws IOException {
+    File file = new File(filePath);
+    if (file.exists()) {
+      file.delete();
+    }
+    assertTrue(FileFactory.createNewFile(filePath, 
FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void testCreateNewFileWithVIEWFSFileTypeWhenFileExists() throws 
IOException {
+    assertFalse(FileFactory.createNewFile(filePath, 
FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void testMkDirWithVIEWFSFileType() throws IOException {
+    new MockUp<FileSystem>() {
+      @SuppressWarnings("unused") @Mock public boolean mkdirs(Path file) 
throws IOException {
+        {
+          return true;
+        }
+      }
+    };
+    tearDown();
+    assertTrue(FileFactory.mkdirs(filePath, FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void testGetDataOutputStreamUsingAppendeForException() {
+    try {
+      FileFactory.getDataOutputStreamUsingAppend(filePath, 
FileFactory.FileType.VIEWFS);
+    } catch (Exception exception) {
+      assertEquals("Not supported", exception.getMessage());
+    }
+  }
+
+  @Test public void getDataOutputStreamForVIEWFSType() throws IOException {
+    assertNotNull(FileFactory.getDataOutputStream(filePath, 
FileFactory.FileType.VIEWFS));
+  }
+
+  @Test public void getDataOutputStreamForLocalType() throws IOException {
+    assertNotNull(FileFactory.getDataOutputStream(filePath, 
FileFactory.FileType.LOCAL));
+  }
+
+  @Test public void testGetCarbonFile() throws IOException {
+    FileFactory.getDataOutputStream(filePath, FileFactory.FileType.VIEWFS);
+    assertNotNull(FileFactory.getCarbonFile(filePath, 
FileFactory.FileType.HDFS));
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/FileHolderImplUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/FileHolderImplUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/FileHolderImplUnitTest.java
new file mode 100644
index 0000000..854b14d
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/FileHolderImplUnitTest.java
@@ -0,0 +1,157 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.carbondata.core.datastorage;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
+import org.apache.carbondata.core.datastorage.impl.FileHolderImpl;
+
+import mockit.Mock;
+import mockit.MockUp;
+import org.apache.hadoop.fs.FSDataInputStream;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.pentaho.di.core.util.Assert.assertNull;
+
+public class FileHolderImplUnitTest {
+
+  private static FileHolderImpl fileHolder;
+  private static FileHolderImpl fileHolderWithCapacity;
+  private static String fileName;
+  private static String fileNameWithEmptyContent;
+  private static File file;
+  private static File fileWithEmptyContent;
+
+  @BeforeClass public static void setup() {
+    fileHolder = new FileHolderImpl();
+    fileHolderWithCapacity = new FileHolderImpl(50);
+    file = new File("Test.carbondata");
+    fileWithEmptyContent = new File("TestEXception.carbondata");
+
+    if (!file.exists()) try {
+      file.createNewFile();
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+    if (!fileWithEmptyContent.exists()) try {
+      fileWithEmptyContent.createNewFile();
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+    try {
+      FileOutputStream of = new FileOutputStream(file, true);
+      BufferedWriter br = new BufferedWriter(new OutputStreamWriter(of, 
"UTF-8"));
+      br.write("Hello World");
+      br.close();
+    } catch (Exception e) {
+      e.getMessage();
+    }
+    fileName = file.getAbsolutePath();
+    fileNameWithEmptyContent = fileWithEmptyContent.getAbsolutePath();
+  }
+
+  @AfterClass public static void tearDown() throws IOException {
+    file.delete();
+    fileWithEmptyContent.delete();
+    fileHolder.finish();
+  }
+
+  @Test public void testReadByteArray() throws IOException  {
+    byte[] result = fileHolder.readByteArray(fileName, 1);
+    byte[] expected_result = new byte[] { 72 };
+    assertThat(result, is(equalTo(expected_result)));
+  }
+
+  @Test public void testReadByteArrayWithFilePath() throws IOException  {
+    byte[] result = fileHolder.readByteArray(fileName, 2L, 2);
+    byte[] expected_result = { 108, 108 };
+    assertThat(result, is(equalTo(expected_result)));
+  }
+
+  @Test public void testReadLong() throws IOException  {
+    long actualResult = fileHolder.readLong(fileName, 1L);
+    long expectedResult = 7308335519855243122L;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test public void testReadLongForIoException() throws IOException {
+    fileHolder.readLong(fileNameWithEmptyContent, 1L);
+  }
+
+  @Test public void testReadIntForIoException() throws IOException {
+    fileHolder.readInt(fileNameWithEmptyContent, 1L);
+  }
+
+  @Test public void testReadInt() throws IOException  {
+    int actualResult = fileHolder.readInt(fileName, 1L);
+    int expectedResult = 1701604463;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test public void testReadIntWithFileName() throws IOException  {
+    int actualResult = fileHolder.readInt(fileName);
+    int expectedResult = 1701604463;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test public void testReadIntWithFileNameForIOException() throws IOException 
 {
+    fileHolder.readInt(fileNameWithEmptyContent);
+
+  }
+
+  @Test public void testDouble() throws IOException  {
+    double actualResult = fileHolder.readDouble(fileName, 1L);
+    double expectedResult = 7.3083355198552433E18;
+    assertThat(actualResult, is(equalTo(expectedResult)));
+  }
+
+  @Test public void testDoubleForIoException() throws IOException {
+    fileHolder.readDouble(fileNameWithEmptyContent, 1L);
+
+  }
+
+  @Test public void testDoubleForIoExceptionwithUpdateCache() throws Exception 
{
+    new MockUp<FileSystem>() {
+      @SuppressWarnings("unused") @Mock public FSDataInputStream open(Path 
file)
+          throws IOException {
+        throw new IOException();
+      }
+
+    };
+    try {
+      fileHolder.readDouble(fileName, 1L);
+    } catch (Exception e) {
+      assertNull(e.getMessage());
+    }
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/columnar/ColumnarKeyStoreDataHolderUnitTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/columnar/ColumnarKeyStoreDataHolderUnitTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/columnar/ColumnarKeyStoreDataHolderUnitTest.java
new file mode 100644
index 0000000..29d2eae
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/columnar/ColumnarKeyStoreDataHolderUnitTest.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.carbondata.core.datastorage.columnar;
+
+import java.util.List;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ColumnarKeyStoreDataHolderUnitTest {
+
+  private static ColumnarKeyStoreDataHolder columnarKeyStoreDataHolder;
+  private static ColumnarKeyStoreMetadata columnarKeyStoreMetadata;
+
+  @BeforeClass public static void setup() {
+    byte[] keyBlockData = new byte[] { 16, 8, 32, 40, 8, 8, 8 };
+    int eachRowSize = 2;
+    int[] reverseIndex = new int[] { 1, 5, 6, 3, 8 };
+    columnarKeyStoreMetadata = new ColumnarKeyStoreMetadata(eachRowSize);
+    columnarKeyStoreMetadata.setColumnReverseIndex(reverseIndex);
+    columnarKeyStoreDataHolder =
+        new ColumnarKeyStoreDataHolder(keyBlockData, columnarKeyStoreMetadata);
+  }
+
+  @Test public void testGetSurrogateKeyWithNullINGetColumnReverseIndex() {
+    byte[] keyBlockData = new byte[] { 16, 8, 32, 40, 8, 8, 8 };
+    int eachRowSize = 1;
+    ColumnarKeyStoreMetadata columnarKeyStoreMetadata = new 
ColumnarKeyStoreMetadata(eachRowSize);
+    ColumnarKeyStoreDataHolder columnarKeyStoreDataHolderNew =
+        new ColumnarKeyStoreDataHolder(keyBlockData, columnarKeyStoreMetadata);
+    int columnIndex = 5;
+    int expected_result = 8;
+    int result = columnarKeyStoreDataHolderNew.getSurrogateKey(columnIndex);
+    assertEquals(expected_result, result);
+  }
+
+  @Test public void 
testGetSurrogateKeyWithNullINGetColumnReverseIndexAndRowSizeTwo() {
+    byte[] keyBlockData = new byte[] { 16, 8, 32, 40, 8, 8, 8 };
+    int eachRowSize = 2;
+    ColumnarKeyStoreMetadata columnarKeyStoreMetadata = new 
ColumnarKeyStoreMetadata(eachRowSize);
+    ColumnarKeyStoreDataHolder columnarKeyStoreDataHolderNew =
+        new ColumnarKeyStoreDataHolder(keyBlockData, columnarKeyStoreMetadata);
+    int columnIndex = 0;
+    int expected_result = 4104;
+    int result = columnarKeyStoreDataHolderNew.getSurrogateKey(columnIndex);
+    assertEquals(expected_result, result);
+  }
+
+  @Test public void testGetSurrogateKeyWithNotNullINGetColumnReverseIndex() {
+    int columnIndex = 0;
+    int expected_result = 8232;
+    int result = columnarKeyStoreDataHolder.getSurrogateKey(columnIndex);
+    assertEquals(expected_result, result);
+  }
+
+  @Test(expected = ArrayIndexOutOfBoundsException.class)
+  public void testExceptionInGetSurrogateKey() {
+    int columnIndex = 10;
+    int expected_result = 8232;
+    int result = columnarKeyStoreDataHolder.getSurrogateKey(columnIndex);
+    assertEquals(expected_result, result);
+  }
+
+  @Test public void testGetSurrogateKeyWithListOfByteWhileCreatingObject() {
+    byte[] keyBlockData = new byte[] { 32, 64, 32, 40, 64, 8, 8 };
+    List<byte[]> noDictionaryValBasedKeyBlockData = new 
java.util.ArrayList<>();
+    noDictionaryValBasedKeyBlockData.add(keyBlockData);
+    new ColumnarKeyStoreDataHolder(columnarKeyStoreMetadata);
+    int columnIndex = 0;
+    int expected_result = 8232;
+    int result = columnarKeyStoreDataHolder.getSurrogateKey(columnIndex);
+    assertEquals(expected_result, result);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/AlluxioCarbonFileTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/AlluxioCarbonFileTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/AlluxioCarbonFileTest.java
new file mode 100644
index 0000000..49323d8
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/AlluxioCarbonFileTest.java
@@ -0,0 +1,292 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.carbondata.core.datastorage.filesystem;
+
+import mockit.Mock;
+import mockit.MockUp;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Options;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.DistributedFileSystem;
+import org.apache.hadoop.hdfs.web.WebHdfsFileSystem;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class AlluxioCarbonFileTest {
+
+    private static AlluxioCarbonFile alluxioCarbonFile;
+    private static FileStatus fileStatus;
+    private static FileStatus fileStatusWithOutDirectoryPermission;
+    private static String fileName;
+    private static File file;
+
+
+    @BeforeClass
+    static public void setUp() {
+        file = new File("Test.carbondata");
+        if (!file.exists())
+            try {
+                file.createNewFile();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        try {
+            FileOutputStream oFile = new FileOutputStream(file, true);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        fileStatus = new FileStatus(12L, true, 60, 120l, 180L, new 
Path(file.getAbsolutePath()));
+        fileStatusWithOutDirectoryPermission = new FileStatus(12L, false, 60, 
120l, 180L, new Path(file.getAbsolutePath()));
+        fileName = file.getAbsolutePath();
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+    }
+
+    @AfterClass
+    static public void cleanUp() {
+        file.delete();
+    }
+
+    @Test
+    public void testRenameForceForException() throws IOException {
+
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                throw new IOException();
+            }
+
+        };
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        alluxioCarbonFile.renameForce(fileName);
+    }
+
+    @Test
+    public void testListFilesWithOutDirectoryPermission() {
+        alluxioCarbonFile = new 
AlluxioCarbonFile(fileStatusWithOutDirectoryPermission);
+        assertTrue(alluxioCarbonFile.listFiles() == null);
+    }
+
+    @Test
+    public void testConstructorWithFilePath() {
+        alluxioCarbonFile = new AlluxioCarbonFile(file.getAbsolutePath());
+        assertTrue(alluxioCarbonFile instanceof AlluxioCarbonFile);
+    }
+
+    @Test
+    public void testListFilesForNullListStatus() {
+        alluxioCarbonFile = new 
AlluxioCarbonFile(fileStatusWithOutDirectoryPermission);
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                return null;
+            }
+
+        };
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        assertTrue(alluxioCarbonFile.listFiles().length == 0);
+    }
+
+    @Test
+    public void testListDirectory() {
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                FileStatus[] fileStatus = new FileStatus[]{new FileStatus(12L, 
true, 60, 120l, 180L, new Path(fileName))};
+                return fileStatus;
+            }
+
+        };
+
+        assertTrue(alluxioCarbonFile.listFiles().length == 1);
+    }
+
+    @Test
+    public void testListFilesForException() throws IOException {
+        alluxioCarbonFile = new 
AlluxioCarbonFile(fileStatusWithOutDirectoryPermission);
+
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(file.getAbsolutePath());
+            }
+
+        };
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                throw new IOException();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                throw new IOException();
+            }
+
+        };
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        alluxioCarbonFile.listFiles();
+    }
+
+    @Test
+    public void testListFilesWithCarbonFilter() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+
+            @Override
+            public boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        assertTrue(alluxioCarbonFile.listFiles(carbonFileFilter).length == 1);
+    }
+
+    @Test
+    public void testlistFilesWithoutFilter() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+
+            @Override
+            public boolean accept(CarbonFile file) {
+                return false;
+            }
+        };
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                FileStatus[] fileStatus = new FileStatus[]{new FileStatus(12L, 
true, 60, 120l, 180L, new Path(fileName))};
+                return fileStatus;
+            }
+
+        };
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        assertTrue(alluxioCarbonFile.listFiles(carbonFileFilter).length == 0);
+    }
+
+    @Test
+    public void testGetParentFile() {
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<Path>() {
+            @Mock
+            public Path getParent() {
+                return new Path(file.getAbsolutePath()
+                );
+            }
+
+        };
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(file.getAbsolutePath());
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus getFileStatus(Path path) throws IOException {
+
+                return new FileStatus(12L, true, 60, 120l, 180L, new 
Path(file.getAbsolutePath()));
+            }
+
+        };
+
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        assertFalse(alluxioCarbonFile.getParentFile().equals(null));
+    }
+
+    @Test
+    public void testForNonDisributedSystem() {
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new WebHdfsFileSystem();
+            }
+
+        };
+        assertFalse(alluxioCarbonFile.renameForce(fileName));
+    }
+
+    @Test
+    public void testrenameForceForDisributedSystem() {
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public void rename(Path src, Path dst, final Options.Rename... 
options) throws IOException {
+
+            }
+
+        };
+
+        alluxioCarbonFile = new AlluxioCarbonFile(fileStatus);
+        assertTrue(alluxioCarbonFile.renameForce(fileName));
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/HDFSCarbonFileTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/HDFSCarbonFileTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/HDFSCarbonFileTest.java
new file mode 100644
index 0000000..b09e14e
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/HDFSCarbonFileTest.java
@@ -0,0 +1,400 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.carbondata.core.datastorage.filesystem;
+
+import mockit.Mock;
+import mockit.MockUp;
+import org.apache.carbondata.common.logging.LogService;
+import org.apache.carbondata.common.logging.LogServiceFactory;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Options;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.DistributedFileSystem;
+import org.apache.hadoop.hdfs.web.WebHdfsFileSystem;
+import org.apache.hadoop.util.Progressable;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+public class HDFSCarbonFileTest {
+
+    private static final LogService LOGGER =
+            LogServiceFactory.getLogService(HDFSCarbonFile.class.getName());
+    private static HDFSCarbonFile hdfsCarbonFile;
+    private static FileStatus fileStatus = null;
+    private static FileStatus fileStatusWithOutDirectoryPermission;
+    private static String fileName = null;
+    private static FileSystem fs = null;
+    private static Path pt;
+
+    @BeforeClass
+    static public void setUp() throws IOException {
+        Configuration config = new Configuration();
+//adding local hadoop configuration
+        config.addResource(new Path("core-site.xml"));
+        config.addResource(new Path("hdfs-site.xml"));
+        fileName = "Test.carbondata"; //this path is HDFS path
+        pt = new Path(fileName);
+        fs = FileSystem.get(new Configuration(config));
+        fs.create(pt);
+        if (fs.exists(pt)) {
+            OutputStream os = fs.create(pt,
+                    new Progressable() {
+                        public void progress() {
+                            LOGGER.info("Started Writing to File===");
+                        }
+                    });
+            BufferedWriter br = new BufferedWriter(new OutputStreamWriter(os, 
"UTF-8"));
+            br.write("Hello World");
+            br.close();
+            fs.close();
+
+            fileStatus = new FileStatus(12L, true, 60, 120l, 180L, new 
Path(fileName));
+            fileStatusWithOutDirectoryPermission = new FileStatus(12L, false, 
60, 120l, 180L, new Path(fileName));
+            hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+
+        }
+    }
+
+    @AfterClass
+    static public void cleanUp() {
+        try {
+            fs.delete(pt, true);
+        } catch (IOException e) {
+            LOGGER.error("Exception Occured" + e.getMessage());
+        }
+    }
+
+    @Test
+    public void testRenameForceForException() throws IOException {
+
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                throw new IOException();
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        hdfsCarbonFile.renameForce(fileName);
+    }
+
+    @Test
+    public void testListFilesWithOutDirectoryPermission() {
+        hdfsCarbonFile = new 
HDFSCarbonFile(fileStatusWithOutDirectoryPermission);
+        new MockUp<FileStatus>() {
+            @Mock
+            public boolean isDirectory() {
+                return false;
+            }
+
+        };
+
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        assertEquals(hdfsCarbonFile.listFiles(), null);
+    }
+
+    @Test
+    public void testConstructorWithFilePath() {
+        hdfsCarbonFile = new HDFSCarbonFile(fileName);
+        assertTrue(hdfsCarbonFile instanceof HDFSCarbonFile);
+    }
+
+    @Test
+    public void testListFilesForNullListStatus() {
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                return null;
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertEquals(hdfsCarbonFile.listFiles().length, 0);
+    }
+
+    @Test
+    public void testListDirectory() {
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                FileStatus[] fileStatus = new FileStatus[]{new FileStatus(12L, 
true, 60, 120l, 180L, new Path(fileName))};
+                return fileStatus;
+            }
+
+        };
+
+        assertEquals(hdfsCarbonFile.listFiles().length, 1);
+    }
+
+    @Test
+    public void testListFilesForException() throws IOException {
+        new HDFSCarbonFile(fileStatusWithOutDirectoryPermission);
+
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                throw new IOException();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                throw new IOException();
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        hdfsCarbonFile.listFiles();
+    }
+
+    @Test
+    public void testListFilesWithCarbonFilter() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+
+            @Override
+            public boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        new MockUp<FileStatus>() {
+            @Mock
+            public boolean isDirectory() {
+                return true;
+            }
+
+        };
+
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                FileStatus fileStatus[] = new FileStatus[]{new FileStatus(12L, 
true, 60, 120l, 180L, new Path(fileName))};
+                return fileStatus;
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertEquals(hdfsCarbonFile.listFiles(carbonFileFilter).length, 1);
+    }
+
+    @Test
+    public void testlistFilesWithoutFilter() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+
+            @Override
+            public boolean accept(CarbonFile file) {
+                return false;
+            }
+        };
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus[] listStatus(Path var1) throws IOException {
+
+                FileStatus[] fileStatus = new FileStatus[]{new FileStatus(12L, 
true, 60, 120l, 180L, new Path(fileName))};
+                return fileStatus;
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertEquals(hdfsCarbonFile.listFiles(carbonFileFilter).length, 0);
+    }
+
+    @Test
+    public void testGetParentFileForNull() {
+
+        new MockUp<Path>() {
+            @Mock
+            public Path getParent() {
+                return null;
+            }
+
+        };
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertEquals(hdfsCarbonFile.getParentFile(), null);
+    }
+
+    @Test
+    public void testGetParentFile() {
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<Path>() {
+            @Mock
+            public Path getParent() {
+                return new Path(fileName);
+            }
+
+        };
+        new MockUp<FileStatus>() {
+            @Mock
+            public Path getPath() {
+                return new Path(fileName);
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public FileStatus getFileStatus(Path file) throws IOException {
+
+                return new FileStatus(12L, true, 60, 120l, 180L, new 
Path(fileName));
+            }
+
+        };
+
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertTrue(hdfsCarbonFile.getParentFile() instanceof CarbonFile);
+    }
+
+    @Test
+    public void testForNonDisributedSystem() {
+        new HDFSCarbonFile(fileStatus);
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new WebHdfsFileSystem();
+            }
+
+        };
+        assertEquals(hdfsCarbonFile.renameForce(fileName), false);
+    }
+
+    @Test
+    public void testrenameForceForDisributedSystem() {
+        new MockUp<Path>() {
+            @Mock
+            public FileSystem getFileSystem(Configuration conf) throws 
IOException {
+                return new DistributedFileSystem();
+            }
+
+        };
+        new MockUp<DistributedFileSystem>() {
+            @Mock
+            public void rename(Path src, Path dst, final Options.Rename... 
options) throws IOException {
+
+            }
+
+        };
+        hdfsCarbonFile = new HDFSCarbonFile(fileStatus);
+        assertEquals(hdfsCarbonFile.renameForce(fileName), true);
+
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-carbondata/blob/952cf517/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/LocalCarbonFileTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/LocalCarbonFileTest.java
 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/LocalCarbonFileTest.java
new file mode 100644
index 0000000..9d1ab42
--- /dev/null
+++ 
b/core/src/test/java/org/apache/carbondata/core/datastorage/filesystem/LocalCarbonFileTest.java
@@ -0,0 +1,471 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.carbondata.core.datastorage.filesystem;
+
+import mockit.Mock;
+import mockit.MockUp;
+
+import org.apache.carbondata.core.datastorage.impl.FileFactory;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import sun.nio.ch.FileChannelImpl;
+
+import java.io.*;
+import java.nio.channels.ReadableByteChannel;
+import java.util.Objects;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+
+public class LocalCarbonFileTest {
+
+    private static LocalCarbonFile localCarbonFile;
+    private static File file;
+    private static File dir;
+    private static FileOutputStream oFile;
+
+    @BeforeClass
+    static public void setUp() {
+        file = new File("Test.carbondata");
+        dir = new File("Testdir.carbondata");
+        if (!file.exists())
+            try {
+                file.createNewFile();
+                dir.mkdir();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        try {
+            oFile = new FileOutputStream(file, true);
+
+
+            byte[] bytes = "core java api".getBytes();
+
+            oFile.write(bytes);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            localCarbonFile = new LocalCarbonFile(file);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @AfterClass
+    static public void cleanUp() {
+        file.delete();
+        dir.delete();
+
+    }
+
+    @Test
+    public void 
testListFilesWithCarbonFileFilterAndWithOutOutDirectoryPermission() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+            @Override
+            public boolean accept(CarbonFile file) {
+                return false;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return false;
+            }
+
+
+        };
+        assertTrue(localCarbonFile.listFiles(carbonFileFilter) == null);
+    }
+
+    @Test
+    public void testListFilesWithOutDirPermission() {
+        localCarbonFile = new LocalCarbonFile(file);
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return false;
+            }
+        };
+        assertTrue(localCarbonFile.listFiles() == null);
+    }
+
+    @Test
+    public void testCreateNewFileForException() throws IOException {
+        localCarbonFile = new LocalCarbonFile(new File(""));
+        assertTrue(!localCarbonFile.createNewFile());
+    }
+
+    @Test
+    public void testCheckIfFileExists() throws IOException {
+        localCarbonFile = new LocalCarbonFile(new File(""));
+        assertTrue(!localCarbonFile.exists());
+    }
+
+    @Test
+    public void testRenameForce() {
+        localCarbonFile = new LocalCarbonFile(file);
+        assertTrue(localCarbonFile.renameForce("Testdb.carbon"));
+        File file1 = new File("Testdb.carbon");
+        if (file1.exists()) {
+            file1.delete();
+        }
+    }
+
+    @Test
+    public void testRenameTo() {
+        localCarbonFile = new LocalCarbonFile(file);
+        assertTrue(!localCarbonFile.renameTo("Testdb.carbon"));
+    }
+
+    @Test
+    public void testsetLastModifiedTime() {
+        localCarbonFile = new LocalCarbonFile(file);
+        assertTrue(!localCarbonFile.setLastModifiedTime(50L));
+    }
+
+    @Test
+    public void testtruncate() {
+        localCarbonFile = new LocalCarbonFile(file);
+        final int[] counter = {0};
+        new MockUp<FileFactory>() {
+            @Mock
+            public FileFactory.FileType getFileType(String path) {
+                {
+                    return FileFactory.FileType.LOCAL;
+                }
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public boolean isFileExist(String filePath, FileFactory.FileType 
fileType) throws IOException {
+                {
+                    return true;
+                }
+            }
+        };
+        new MockUp<CarbonFile>() {
+            @Mock
+            boolean delete() {
+                return true;
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public boolean createNewFile(String filePath, FileFactory.FileType 
fileType) throws IOException {
+                {
+                    return true;
+                }
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public CarbonFile getCarbonFile(String path, FileFactory.FileType 
fileType) {
+                {
+                    return new LocalCarbonFile(path);
+                }
+            }
+        };
+        new MockUp<CarbonFile>() {
+            @Mock
+            boolean delete() {
+                return true;
+            }
+        };
+
+        new MockUp<FileChannelImpl>() {
+            @Mock
+            public long transferFrom(ReadableByteChannel var1, long var2, long 
var4) throws IOException {
+                if (counter[0] == 0) {
+                    counter[0] = counter[0] + 1;
+                    return 0L;
+                } else {
+                    return 1L;
+                }
+            }
+        };
+        new MockUp<CarbonFile>() {
+            @Mock
+            boolean renameForce(String changetoName) {
+                return true;
+            }
+        };
+        localCarbonFile = new LocalCarbonFile(file);
+        assertTrue(localCarbonFile.truncate(file.getName(), 1L));
+    }
+
+    @Test
+    public void testtruncateForException() throws IOException {
+        localCarbonFile = new LocalCarbonFile(file);
+        new MockUp<FileFactory>() {
+            @Mock
+            public FileFactory.FileType getFileType(String path) {
+                {
+                    return FileFactory.FileType.LOCAL;
+                }
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public boolean isFileExist(String filePath, FileFactory.FileType 
fileType) throws IOException {
+                {
+                    return true;
+                }
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public CarbonFile getCarbonFile(String path, FileFactory.FileType 
fileType) {
+                {
+                    return new LocalCarbonFile(path);
+                }
+            }
+        };
+        new MockUp<CarbonFile>() {
+            @Mock
+            boolean delete() {
+                return true;
+            }
+        };
+        new MockUp<FileFactory>() {
+            @Mock
+            public boolean createNewFile(String filePath, FileFactory.FileType 
fileType) throws IOException {
+                {
+                    throw new IOException();
+                }
+            }
+        };
+
+
+        localCarbonFile.truncate(file.getName(), 2L);
+    }
+
+    @Test
+    public void testListFilesWithDirPermission() {
+        localCarbonFile = new LocalCarbonFile(file);
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return true;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public File[] listFiles() {
+                return null;
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+        assertTrue(localCarbonFile.listFiles().length == 0);
+    }
+
+    @Test
+    public void testListFilesWithCarbonFileFilterAndDirectoryPermission() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+            @Override
+            public boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return true;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public File[] listFiles(FileFilter filter) {
+
+                File[] file = new File[]{dir};
+                return file;
+            }
+
+
+        };
+
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertTrue(localCarbonFile.listFiles(carbonFileFilter).length == 1);
+    }
+
+    @Test
+    public void 
testListFilesForNullWithCarbonFileFilterAndDirectoryPermission() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+            @Override
+            public boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public File[] listFiles(FileFilter filter) {
+                return null;
+            }
+
+
+        };
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return false;
+            }
+
+            @Mock
+            public File[] listFiles(FileFilter filter) {
+                return null;
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertTrue(localCarbonFile.listFiles(carbonFileFilter) == null);
+    }
+
+    @Test
+    public void testListFilesForEmptyFileArrayWithCarbonFileFilter() {
+        CarbonFileFilter carbonFileFilter = new CarbonFileFilter() {
+            @Override
+            public boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        new MockUp<CarbonFileFilter>() {
+            @Mock
+            boolean accept(CarbonFile file) {
+                return true;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public File[] listFiles(FileFilter filter) {
+                return null;
+            }
+        };
+        new MockUp<File>() {
+            @Mock
+            public boolean isDirectory() {
+                return true;
+            }
+
+            @Mock
+            public File[] listFiles(FileFilter filter) {
+                return null;
+            }
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertTrue(localCarbonFile.listFiles(carbonFileFilter).length == 0);
+    }
+
+    @Test
+    public void testFilesForConnicalPath() {
+
+        new MockUp<File>() {
+            @Mock
+            public String getCanonicalPath() throws IOException {
+                return "testFile";
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertTrue(Objects.equals(localCarbonFile.getCanonicalPath(), 
"testFile"));
+    }
+
+    @Test
+    public void testFilesForConnicalPathException() throws IOException {
+
+        new MockUp<File>() {
+            @Mock
+            public String getCanonicalPath() throws IOException {
+                throw new IOException();
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        localCarbonFile.getCanonicalPath();
+    }
+
+    @Test
+    public void testFilesForAbsolutePath() {
+
+        new MockUp<File>() {
+            @Mock
+            public String getAbsolutePath() {
+                return "testFile";
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertEquals(localCarbonFile.getAbsolutePath(), "testFile");
+    }
+
+    @Test
+    public void testFilesForGetPath() {
+
+        new MockUp<File>() {
+            @Mock
+            public String getPath() {
+                return "testFile";
+            }
+
+
+        };
+        localCarbonFile = new LocalCarbonFile(dir);
+
+        assertEquals(localCarbonFile.getPath(), "testFile");
+    }
+
+    @Test
+    public void testFilesForFileExists() {
+
+        localCarbonFile = new LocalCarbonFile(new File(""));
+        assertEquals(localCarbonFile.exists(), false);
+    }
+
+    @Test
+    public void testRenameForceForFileNotExists() {
+        new MockUp<File>() {
+            @Mock
+            public boolean exists() {
+                return false;
+            }
+
+            @Mock
+            public boolean renameTo(File dest) {
+                return true;
+            }
+        };
+
+        localCarbonFile = new LocalCarbonFile("demo.txt");
+
+        assertEquals(localCarbonFile.renameForce("Test.carbondata"), true);
+    }
+}


Reply via email to