Package org.subethamail.smtp

Source Code of org.subethamail.smtp.DotTerminatedInputStreamTest

package org.subethamail.smtp;

import static org.junit.Assert.*;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;

import org.junit.Test;
import org.subethamail.smtp.io.DotTerminatedInputStream;

public class DotTerminatedInputStreamTest
{
  @Test
  public void testEmpty() throws IOException
  {
    InputStream in = new ByteArrayInputStream(".\r\n".getBytes("US-ASCII"));
    DotTerminatedInputStream stream = new DotTerminatedInputStream(in);
    assertEquals(-1, stream.read());
  }

  @Test
  public void testPreserveLastCrLf() throws IOException
  {
    InputStream in = new ByteArrayInputStream("a\r\n.\r\n".getBytes("US-ASCII"));
    DotTerminatedInputStream stream = new DotTerminatedInputStream(in);
    assertEquals("a\r\n", readFull(stream));
  }

  @Test
  public void testDotDot() throws IOException
  {
    InputStream in = new ByteArrayInputStream("..\r\n.\r\n".getBytes("US-ASCII"));
    DotTerminatedInputStream stream = new DotTerminatedInputStream(in);
    assertEquals("..\r\n", readFull(stream));
  }

  @Test(expected = EOFException.class)
  public void testMissingDotLine() throws IOException
  {
    InputStream in = new ByteArrayInputStream("a\r\n".getBytes("US-ASCII"));
    DotTerminatedInputStream stream = new DotTerminatedInputStream(in);
    readFull(stream);
  }

  private String readFull(DotTerminatedInputStream in) throws IOException
  {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    int ch;
    while (-1 != (ch = in.read()))
      out.write(ch);
    return out.toString("US-ASCII");
  }
}
TOP

Related Classes of org.subethamail.smtp.DotTerminatedInputStreamTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.