PHP-StringBuilder/tests/test.class.StringBuilder.php

149 lines
5.3 KiB
PHP

<?php
namespace Tests\AppBundle;
include_once(__DIR__.'/../vendor/autoload.php');
require_once(__DIR__.'/../src/class.StringBuilder.php');
use PHPUnit\Framework\TestCase;
class StringBuilderTest extends TestCase {
public function testSettingVariable() {
$sb = new \NAE\String\StringBuilder();
$sb->setVar("t1", "test1")->setVar("t2", "test2");
$this->assertEquals($sb->getVars(), ["t1" => "test1", "t2" => "test2"]);
}
public function testAppendString() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2");
$this->assertEquals($sb->getParts(), ["test1", "test2"]);
}
public function testJoinString() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2");
$sb->setSeperator(";");
$this->assertEquals($sb->join(), "test1;test2");
}
public function testJoinUniqueString() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2")->append("test1");
$sb->setSeperator(";");
$this->assertEquals($sb->joinUnique(), "test1;test2");
}
public function testContainsPart() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2");
$this->assertTrue($sb->contains("test1"));
$this->assertTrue($sb->contains("test2"));
$this->assertFalse($sb->contains("test3"));
}
public function testJoinInitUniqueString() {
$sb = new \NAE\String\StringBuilder(true);
$sb->append("test1")->append("test2")->append("test1");
$sb->setSeperator(";");
$this->assertEquals($sb->join(), "test1;test2");
}
public function testJoinAfterAppendUniqueString() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2")->appendUnique("test1");
$sb->setSeperator(";");
$sb->append("test3");
$this->assertEquals($sb->join(), "test1;test2;test3");
}
public function testJoinAfterAppendDuplicateString() {
$sb = new \NAE\String\StringBuilder();
$sb->append("test1")->append("test2")->append("test1");
$sb->setSeperator(";");
$sb->append("test3");
$this->assertEquals($sb->join(), "test1;test2;test1;test3");
}
public function testPrependString() {
$sb = new \NAE\String\StringBuilder();
$sb->prepend("test1")->prepend("test2");
$this->assertEquals($sb->getParts(), ["test2", "test1"]);
}
public function testPrependUniqueString() {
$sb = new \NAE\String\StringBuilder();
$sb->prependUnique("test1")->prepend("test2")->prependUnique("test1");
$this->assertEquals($sb->getParts(), ["test2", "test1"]);
}
public function testPrependStringInitUnique() {
$sb = new \NAE\String\StringBuilder(true);
$sb->prepend("test1")->prepend("test2")->prepend("test1");
$this->assertEquals($sb->getParts(), ["test2", "test1"]);
}
public function testPrependDuplicateString() {
$sb = new \NAE\String\StringBuilder();
$sb->prepend("test1")->prepend("test2")->prepend("test1");
$this->assertEquals($sb->getParts(), ["test1", "test2", "test1"]);
}
public function testSuffix() {
$sb = new \NAE\String\StringBuilder();
$sb->setVarSuffix("%%");
$this->assertEquals($sb->getVarSuffix(), "%%");
}
public function testPrefix() {
$sb = new \NAE\String\StringBuilder();
$sb->setVarPrefix("%%");
$this->assertEquals($sb->getVarPrefix(), "%%");
}
public function testVariables() {
$sb = new \NAE\String\StringBuilder();
$sb->setVar("t1", "test1")->setVar("t2", "test2");
$this->assertEquals($sb->getVars(), ["t1" => "test1", "t2" => "test2"]);
$this->assertEquals($sb->getVar("t1"), "test1");
$this->assertEquals($sb->getVar("t2"), "test2");
$this->assertEquals($sb->getVar("t3"), "");
}
public function testHasVar() {
$sb = new \NAE\String\StringBuilder();
$sb->setVar("t1", "test1")->setVar("t2", "test2");
$this->assertTrue($sb->hasVar("t1"));
$this->assertTrue($sb->hasVar("t2"));
$this->assertFalse($sb->hasVar("t3"));
}
public function testSetSeperator() {
$sb = new \NAE\String\StringBuilder();
$sb->setSeperator(";");
$this->assertEquals($sb->getSeperator(), ";");
}
public function testSetParts() {
$sb = new \NAE\String\StringBuilder();
$sb->setParts(["test1", "test2"])->setSeperator(";");
$this->assertEquals($sb->getParts(), ["test1", "test2"]);
$this->assertEquals($sb->join(), "test1;test2");
}
public function testSetPartsOnUnique() {
$sb = new \NAE\String\StringBuilder(true);
$sb->setParts(["test1", "test2", "test1"])->setSeperator(";");
$this->assertEquals($sb->getParts(), ["test1", "test2"]);
$this->assertEquals($sb->join(), "test1;test2");
}
public function testSetPartsWithDuplicates() {
$sb = new \NAE\String\StringBuilder();
$sb->setParts(["test1", "test2", "test1"])->setSeperator(";");
$this->assertEquals($sb->getParts(), ["test1", "test2", "test1"]);
$this->assertEquals($sb->join(), "test1;test2;test1");
}
}