/*
* Copyright (c) 2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.healthmonitor;
import org.junit.Assert;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
public class FileReadUtilTest {
private static final String INVALID_FILE_PATH = "/proc/0/xyz";
private static final String TEST_FILE_DIR = File.separator + "tmp" + File.separator;
private static final String TEST_FILE_PATH = TEST_FILE_DIR + "test.log";
private static final String TEST_EMPTY_FILE_PATH = TEST_FILE_DIR + "testempty.log";
private static final String FILE_DATA = "Sample data in file";
private static final String FILE_DATA1 = "Another line in the file";
private static volatile File _testFile = null;
private static volatile File _testEmptyFile = null;
@BeforeClass
public static void createTestFile() {
_testFile = new File(TEST_FILE_PATH);
_testEmptyFile = new File(TEST_EMPTY_FILE_PATH);
BufferedWriter bw = null;
try {
_testFile.createNewFile();
_testEmptyFile.createNewFile();
FileWriter fw = new FileWriter(_testFile);
bw = new BufferedWriter(fw);
bw.write(FILE_DATA);
bw.newLine();
bw.write(FILE_DATA1);
} catch (Exception e) {
Assert.fail("Cannot create test file");
} finally {
if (bw != null) {
try {
bw.close();
} catch (Exception e) {
Assert.fail("Cannot close file writer");
}
}
}
}
@Test
public void testReadLines() {
try {
String[] fileData = FileReadUtil.readLines(TEST_FILE_PATH);
Assert.assertNotNull(fileData);
Assert.assertTrue(fileData.length == 2);
Assert.assertTrue(fileData[0].equals(FILE_DATA) && fileData[1].equals
(FILE_DATA1));
} catch (Exception e) {
Assert.fail();
}
}
@Test
public void testNegReadLines() {
try {
FileReadUtil.readLines(INVALID_FILE_PATH);
Assert.fail();
} catch (Exception e) {
Assert.assertTrue(true);
}
}
@Test
public void testEmptyFileReadLines() {
try {
FileReadUtil.readLines(TEST_EMPTY_FILE_PATH);
Assert.fail();
} catch (Exception e) {
Assert.assertTrue(true);
}
}
@Test
public void testReadFile() {
try {
String fileData = FileReadUtil.readFirstLine(TEST_FILE_PATH);
Assert.assertNotNull(fileData);
Assert.assertEquals(fileData, FILE_DATA);
} catch (Exception e) {
Assert.fail();
}
}
@Test
public void testReadEmptyFile() {
try {
FileReadUtil.readFirstLine(TEST_EMPTY_FILE_PATH);
Assert.fail();
} catch (Exception e) {
Assert.assertTrue(true);
}
}
@AfterClass
public static void deleteTestClass() {
if (_testFile != null) {
Assert.assertTrue(_testFile.delete());
Assert.assertFalse(_testFile.exists());
}
if (_testEmptyFile != null) {
Assert.assertTrue(_testEmptyFile.delete());
Assert.assertFalse(_testEmptyFile.exists());
}
}
}