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());
 | |
|   }
 | |
| }
 |