159 lines
4.0 KiB
PHP
159 lines
4.0 KiB
PHP
<?php
|
|
namespace nur\b\io;
|
|
|
|
use nur\t\TestCase;
|
|
|
|
class StringWriterTest extends TestCase {
|
|
function testWrite1() {
|
|
$sw = new StringWriter();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->write();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->write("line");
|
|
self::assertSame("line", $sw->getString());
|
|
|
|
$sw->write("line1");
|
|
$sw->write("line2");
|
|
self::assertSame("line1line2", $sw->getString());
|
|
|
|
$sw->wnl("line");
|
|
self::assertSame("line\n", $sw->getString());
|
|
|
|
$sw->wnl("line1");
|
|
$sw->wnl("line2");
|
|
self::assertSame("line1\nline2\n", $sw->getString());
|
|
}
|
|
|
|
function testWrite2() {
|
|
$sw = new StringWriter();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->write();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->write("line");
|
|
self::assertSame("line", $sw->getString());
|
|
|
|
$sw->write("line1", "line2");
|
|
self::assertSame("line1line2", $sw->getString());
|
|
|
|
$sw->write("line1", null, "line2", false, "line3");
|
|
self::assertSame("line1line2line3", $sw->getString());
|
|
|
|
$sw->wnl("line");
|
|
self::assertSame("line\n", $sw->getString());
|
|
|
|
$sw->wnl("line1", "line2");
|
|
self::assertSame("line1line2\n", $sw->getString());
|
|
|
|
$sw->wnl("line1", null, "line2", false, "line3");
|
|
self::assertSame("line1line2line3\n", $sw->getString());
|
|
}
|
|
|
|
function testPrint1() {
|
|
$sw = new StringWriter();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->print();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->print("line");
|
|
self::assertSame("line", $sw->getString());
|
|
|
|
$sw->print("line1");
|
|
$sw->print("line2");
|
|
self::assertSame("line1line2", $sw->getString());
|
|
|
|
$sw->pnl("line");
|
|
self::assertSame("line\n", $sw->getString());
|
|
|
|
$sw->pnl("line1");
|
|
$sw->pnl("line2");
|
|
self::assertSame("line1\nline2\n", $sw->getString());
|
|
}
|
|
|
|
function testPrint2() {
|
|
$sw = new StringWriter();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->print();
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->print("line");
|
|
self::assertSame("line", $sw->getString());
|
|
|
|
$sw->print("line1", "line2");
|
|
self::assertSame("line1 line2", $sw->getString());
|
|
|
|
$sw->print("line1", null, "line2", false, "line3");
|
|
self::assertSame("line1 line2 line3", $sw->getString());
|
|
|
|
$sw->pnl("line");
|
|
self::assertSame("line\n", $sw->getString());
|
|
|
|
$sw->pnl("line1", "line2");
|
|
self::assertSame("line1 line2\n", $sw->getString());
|
|
|
|
$sw->pnl("line1", null, "line2", false, "line3");
|
|
self::assertSame("line1 line2 line3\n", $sw->getString());
|
|
}
|
|
|
|
function testWriteLines() {
|
|
$sw = new StringWriter();
|
|
|
|
$sw->writeLines(null);
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->writeLines([]);
|
|
self::assertSame("", $sw->getString());
|
|
|
|
$sw->writeLines(["line"]);
|
|
self::assertSame("line\n", $sw->getString());
|
|
|
|
$sw->writeLines(["line1", "line2"]);
|
|
self::assertSame("line1\nline2\n", $sw->getString());
|
|
}
|
|
|
|
function testIndent() {
|
|
$sw = new StringWriter();
|
|
$sw->pnl("not indented");
|
|
$sw->indent();
|
|
$sw->pnl("level 1a");
|
|
$sw->pnl("level 1b");
|
|
$sw->indent();
|
|
$sw->pnl("level 2a");
|
|
$sw->pnl("level 2b");
|
|
$sw->dedent();
|
|
$sw->pnl("level 1c");
|
|
$sw->dedent();
|
|
$sw->pnl("not indented");
|
|
self::assertSame("not indented\n level 1a\n level 1b\n level 2a\n level 2b\n level 1c\nnot indented\n", $sw->getString());
|
|
|
|
$sw = new StringWriter();
|
|
$sw->pnl("a1\na2");
|
|
$sw->indent();
|
|
$sw->pnl("b1\nb2");
|
|
$sw->indent();
|
|
$sw->pnl("c1\nc2");
|
|
$sw->dedent();
|
|
$sw->pnl("b3\nb4");
|
|
$sw->dedent();
|
|
$sw->pnl("a3\na4");
|
|
self::assertSame("a1\na2\n b1\n b2\n c1\n c2\n b3\n b4\na3\na4\n", $sw->getString());
|
|
|
|
$sw = new StringWriter();
|
|
$sw->print("a1\na2\n");
|
|
$sw->indent();
|
|
$sw->print("b1\nb2\n");
|
|
$sw->indent();
|
|
$sw->print("c1\nc2\n");
|
|
$sw->dedent();
|
|
$sw->print("b3\nb4\n");
|
|
$sw->dedent();
|
|
$sw->print("a3\na4\n");
|
|
self::assertSame("a1\na2\n b1\n b2\n c1\n c2\n b3\n b4\na3\na4\n", $sw->getString());
|
|
}
|
|
}
|