package org.marketcetera.util.file;
import java.io.File;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.ArrayUtils;
import org.junit.Test;
import org.marketcetera.util.unicode.DecodingStrategy;
import org.marketcetera.util.unicode.SignatureCharset;
import static org.junit.Assert.*;
import static org.marketcetera.util.test.UnicodeData.*;
/**
* @author tlerios@marketcetera.com
* @since 0.5.0
* @version $Id: FileWrapperTest.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
public class FileWrapperTest
extends WrapperTestBase
{
@Test
public void inputOutputStreams()
throws Exception
{
CloseableRegistry r=new CloseableRegistry();
try {
OutputStreamWrapper out=new OutputStreamWrapper(TEST_FILE);
r.register(out);
assertFalse(out.getSkipClose());
assertNotNull(out.getStream());
out.getStream().write(VALUE_BYTES);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
InputStreamWrapper in=new InputStreamWrapper(TEST_FILE);
r.register(in);
assertFalse(in.getSkipClose());
assertNotNull(in.getStream());
assertArrayEquals(VALUE_BYTES,IOUtils.toByteArray(in.getStream()));
} finally {
r.close();
}
r=new CloseableRegistry();
try {
OutputStreamWrapper out=
new OutputStreamWrapper(SpecialNames.PREFIX_APPEND+TEST_FILE);
r.register(out);
out.getStream().write(VALUE_BYTES);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
InputStreamWrapper in=new InputStreamWrapper(TEST_FILE);
r.register(in);
assertArrayEquals
(ArrayUtils.addAll(VALUE_BYTES,VALUE_BYTES),
IOUtils.toByteArray(in.getStream()));
} finally {
r.close();
}
r=new CloseableRegistry();
try {
OutputStreamWrapper out=new OutputStreamWrapper
(new File(TEST_FILE));
r.register(out);
out.getStream().write(VALUE_BYTES);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
InputStreamWrapper in=new InputStreamWrapper
(new File(TEST_FILE));
r.register(in);
assertArrayEquals(VALUE_BYTES,IOUtils.toByteArray(in.getStream()));
} finally {
r.close();
}
}
@Test
public void readerWriter()
throws Exception
{
CloseableRegistry r=new CloseableRegistry();
try {
WriterWrapper out=new WriterWrapper(new File(TEST_FILE));
r.register(out);
assertFalse(out.getSkipClose());
assertNotNull(out.getWriter());
out.getWriter().write(VALUE);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
ReaderWrapper in=new ReaderWrapper(new File(TEST_FILE));
r.register(in);
assertFalse(in.getSkipClose());
assertNotNull(in.getReader());
assertEquals(VALUE,IOUtils.toString(in.getReader()));
} finally {
r.close();
}
r=new CloseableRegistry();
try {
WriterWrapper out=
new WriterWrapper(SpecialNames.PREFIX_APPEND+TEST_FILE);
r.register(out);
out.getWriter().write(VALUE);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
ReaderWrapper in=new ReaderWrapper(TEST_FILE);
r.register(in);
assertEquals(VALUE+VALUE,IOUtils.toString(in.getReader()));
} finally {
r.close();
}
r=new CloseableRegistry();
try {
WriterWrapper out=new WriterWrapper
(new File(TEST_FILE),SignatureCharset.UTF8_UTF8);
r.register(out);
out.getWriter().write(COMBO);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
ReaderWrapper in=new ReaderWrapper
(new File(TEST_FILE),DecodingStrategy.SIG_REQ);
r.register(in);
assertEquals(COMBO,IOUtils.toString(in.getReader()));
} finally {
r.close();
}
r=new CloseableRegistry();
try {
WriterWrapper out=new WriterWrapper
(SpecialNames.PREFIX_APPEND+TEST_FILE,
SignatureCharset.UTF8_UTF8);
r.register(out);
out.getWriter().write(COMBO);
} finally {
r.close();
}
r=new CloseableRegistry();
try {
ReaderWrapper in=new ReaderWrapper
(TEST_FILE,DecodingStrategy.SIG_REQ);
r.register(in);
assertEquals(COMBO+COMBO,IOUtils.toString(in.getReader()));
} finally {
r.close();
}
}
}