package org.subethamail.smtp;
import static org.junit.Assert.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.junit.Test;
import org.subethamail.smtp.io.DotTerminatedOutputStream;
public class DotTerminatedOutputStreamTest
{
@Test
public void testEmpty() throws IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
DotTerminatedOutputStream stream = new DotTerminatedOutputStream(out);
stream.writeTerminatingSequence();
assertArrayEquals(".\r\n".getBytes("US-ASCII"), out.toByteArray());
}
@Test
public void testMissingCrLf() throws IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
DotTerminatedOutputStream stream = new DotTerminatedOutputStream(out);
stream.write('a');
stream.writeTerminatingSequence();
assertArrayEquals("a\r\n.\r\n".getBytes("US-ASCII"), out.toByteArray());
}
@Test
public void testMissingCrLfByteArray() throws IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
DotTerminatedOutputStream stream = new DotTerminatedOutputStream(out);
stream.write(new byte[]{
'a'
});
stream.writeTerminatingSequence();
assertArrayEquals("a\r\n.\r\n".getBytes("US-ASCII"), out.toByteArray());
}
@Test
public void testExistingCrLf() throws IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
DotTerminatedOutputStream stream = new DotTerminatedOutputStream(out);
stream.write('a');
stream.write('\r');
stream.write('\n');
stream.writeTerminatingSequence();
assertArrayEquals("a\r\n.\r\n".getBytes("US-ASCII"), out.toByteArray());
}
@Test
public void testExistingCrLfByteArray() throws IOException
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
DotTerminatedOutputStream stream = new DotTerminatedOutputStream(out);
stream.write(new byte[]{
'a', '\r', '\n'
});
stream.writeTerminatingSequence();
assertArrayEquals("a\r\n.\r\n".getBytes("US-ASCII"), out.toByteArray());
}
}