package com.alibaba.doris.dataserver.store.log.db; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import junit.framework.TestCase; import com.alibaba.doris.dataserver.store.log.db.LogFile.AccessMode; /** * @author ajun Email:jack.yuj@alibaba-inc.com */ public class LogFileTest extends TestCase { @Override protected void setUp() throws Exception { File f = new File(getFileName()); if (f.exists()) { f.delete(); } } @Override protected void tearDown() throws Exception { File f = new File(getFileName()); if (f.exists()) { f.delete(); } } public void testOpen() { LogFile file = new LogFile(getFileName()); try { file.open(AccessMode.R); fail(getFileName() + " should be not exists, and here we should catch an exception."); } catch (IOException ignore) { } finally { file.close(); } try { file.open(AccessMode.RW); File f = new File(getFileName()); assertTrue(f.exists()); } catch (IOException e) { fail(e.getMessage()); } finally { file.close(); } } public void testWriteAndRead() { LogFile file = new LogFile(getFileName()); LogFile fileRead = new LogFile(getFileName()); try { file.open(AccessMode.RW); String testString = "test write;"; ByteBuffer buf = ByteBuffer.allocate(testString.length()); buf.put(testString.getBytes()); buf.flip(); file.write(buf); fileRead.open(AccessMode.R); ByteBuffer bufRead = ByteBuffer.allocate(testString.length()); fileRead.read(bufRead); String msg = new String(bufRead.array()); assertEquals(testString, msg); } catch (IOException e) { fail(e.getMessage()); } finally { file.close(); fileRead.close(); } } private String getFileName() { return getFileName("testLogFile.txt"); } private String getFileName(String name) { String path = LogFileTest.class.getClassLoader().getResource("").getPath(); return path + name; } }