121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\b\io;
 | 
						|
 | 
						|
use nur\t\TestCase;
 | 
						|
 | 
						|
class StringReaderTest extends TestCase {
 | 
						|
  function testReadLine() {
 | 
						|
    $sr = new StringReader();
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString(null);
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("");
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line");
 | 
						|
    self::assertSame("line", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line\r\n");
 | 
						|
    self::assertSame("line", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line\r");
 | 
						|
    self::assertSame("line", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line\n");
 | 
						|
    self::assertSame("line", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\nline2");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\nline2\n");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\r\nline2\r\n");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\rline2\n");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\nline2\r");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("line1\rline2\nline3\r\n");
 | 
						|
    self::assertSame("line1", $sr->readLine());
 | 
						|
    self::assertSame("line2", $sr->readLine());
 | 
						|
    self::assertSame("line3", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("\n");
 | 
						|
    self::assertSame("", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
 | 
						|
    $sr->setString("\n\n");
 | 
						|
    self::assertSame("", $sr->readLine());
 | 
						|
    self::assertSame("", $sr->readLine());
 | 
						|
    self::assertException(EOFException::class, [$sr, "readLine"]);
 | 
						|
  }
 | 
						|
 | 
						|
  function testReadLines() {
 | 
						|
    $sr = new StringReader();
 | 
						|
    self::assertSame([], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString(null);
 | 
						|
    self::assertSame([], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("");
 | 
						|
    self::assertSame([], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line");
 | 
						|
    self::assertSame(["line"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line\r\n");
 | 
						|
    self::assertSame(["line"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line\r");
 | 
						|
    self::assertSame(["line"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line\n");
 | 
						|
    self::assertSame(["line"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\nline2");
 | 
						|
    self::assertSame(["line1", "line2"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\nline2\n");
 | 
						|
    self::assertSame(["line1", "line2"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\r\nline2\r\n");
 | 
						|
    self::assertSame(["line1", "line2"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\rline2\n");
 | 
						|
    self::assertSame(["line1", "line2"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\nline2\r");
 | 
						|
    self::assertSame(["line1", "line2"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("line1\rline2\nline3\r\n");
 | 
						|
    self::assertSame(["line1", "line2", "line3"], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("\n");
 | 
						|
    self::assertSame([""], $sr->readLines());
 | 
						|
 | 
						|
    $sr->setString("\n\n");
 | 
						|
    self::assertSame(["", ""], $sr->readLines());
 | 
						|
  }
 | 
						|
}
 |