1<?php 2/** 3 * @CreateTime: 2019/9/14 下午10:41 4 * @Author: huizhang <tuzisir@163.com> 5 * @Copyright: copyright(2019) Easyswoole all rights reserved 6 * @Description: SplString 单元测试 7 */ 8namespace EasySwoole\Spl\Test; 9 10use EasySwoole\Spl\SplString; 11use PHPUnit\Framework\TestCase; 12 13class StringTest extends TestCase { 14 15 public function testSetString() { 16 $splString = new SplString(); 17 $splString->setString('Easyswoole'); 18 $this->assertEquals('Easyswoole', $splString->__toString()); 19 } 20 21 public function testSplit() { 22 $splString = new SplString('Hello, Easyswoole'); 23 $this->assertEquals([ 24 'Hello', ', Eas', 'yswoo', 'le' 25 ], $splString->split(5)->getArrayCopy()); 26 } 27 28 public function testExplode() { 29 $splString = new SplString('Hello, Easyswoole'); 30 $this->assertEquals([ 31 'Hello', 'Easyswoole' 32 ], $splString->explode(', ')->getArrayCopy()); 33 } 34 35 public function testSubString() { 36 $splString = new SplString('Hello, Easyswoole'); 37 $this->assertEquals('Hello', $splString->subString(0, 5)->__toString()); 38 } 39 40 public function testEncodingConvert() { 41 $splString = new SplString('Hello, Easyswoole'); 42 $this->assertEquals('Hello, Easyswoole', $splString->encodingConvert('UTF-8')->__toString()); 43 } 44 45 public function testUtf8() { 46 $splString = new SplString('Hello, Easyswoole'); 47 $this->assertEquals('Hello, Easyswoole', $splString->utf8()->__toString()); 48 } 49 50 public function testUnicodeToUtf8() { 51 $splString = new SplString('Hello, Easyswoole'); 52 $this->assertEquals('Hello, Easyswoole', $splString->unicodeToUtf8()->__toString()); 53 } 54 55 public function testToUnicode() { 56 $splString = new SplString('Hello, Easyswoole'); 57 $this->assertEquals('\U0048\U0065\U006C\U006C\U006F\U002C\U0020\U0045\U0061\U0073\U0079\U0073\U0077\U006F\U006F\U006C\U0065', $splString->toUnicode()->__toString()); 58 } 59 60 public function testCompare() { 61 $splString = new SplString('Hello, Easyswoole'); 62 $this->assertEquals(-18, $splString->compare('Hello, Es')); 63 } 64 65 public function testLtrim() { 66 $splString = new SplString(' es'); 67 $this->assertEquals('es', $splString->lTrim()); 68 } 69 70 public function testRtrim() { 71 $splString = new SplString('es '); 72 $this->assertEquals('es', $splString->rTrim()); 73 } 74 75 public function testTrime() { 76 $splString = new SplString(' es '); 77 $this->assertEquals('es', $splString->trim()); 78 } 79 80 public function testPad() { 81 $splString = new SplString('Easy'); 82 $splString->pad(10, 'swoole'); 83 $this->assertEquals('Easyswoole', $splString->__toString()); 84 85 $splString->pad(16, 'Hello,', STR_PAD_LEFT); 86 $this->assertEquals('Hello,Easyswoole', $splString->__toString()); 87 88 $splString->pad(18, '@', STR_PAD_BOTH); 89 $this->assertEquals('@Hello,Easyswoole@', $splString->__toString()); 90 } 91 92 public function testRepeat() { 93 $splString = new SplString('EasySwoole'); 94 $splString->repeat(2); 95 $this->assertEquals('EasySwooleEasySwoole', $splString->__toString()); 96 } 97 98 public function testLength() { 99 $splString = new SplString('EasySwoole'); 100 $this->assertEquals(10, $splString->length()); 101 } 102 103 public function testUpper() { 104 $splString = new SplString('EasySwoole'); 105 $this->assertEquals('EASYSWOOLE', $splString->upper()); 106 } 107 108 public function testLower() { 109 $splString = new SplString('EasySwoole'); 110 $this->assertEquals('easyswoole', $splString->lower()); 111 } 112 113 public function testStripTags() { 114 $splString = new SplString('<span>Easyswoole</span>'); 115 $this->assertEquals('Easyswoole', $splString->stripTags()->__toString()); 116 } 117 118 public function testReplace() { 119 $splString = new SplString('Hello, es!'); 120 $this->assertEquals('Hello, Easyswoole!', $splString->replace('es', 'Easyswoole')); 121 } 122 123 public function testBetween() { 124 $splString = new SplString('Hello,Easyswoole'); 125 $this->assertEquals(',', $splString->between('Hello', 'Easyswoole')->__toString()); 126 } 127 128 public function testRegex() { 129 $splString = new SplString('Hello,Easyswoole'); 130 $this->assertEquals('Easyswoole', $splString->regex('/Easyswoole/')); 131 } 132 133 public function testExist() { 134 $splString = new SplString('Hello,Easyswoole'); 135 $this->assertTrue($splString->exist('Easyswoole')); 136 } 137 138 public function testKebab() { 139 $splString = new SplString('EasySwoole'); 140 $this->assertEquals('easy-swoole', $splString->kebab()->__toString()); 141 } 142 143 public function testSnake() { 144 $splString = new SplString('EasySwoole'); 145 $this->assertEquals('easy_swoole', $splString->snake()->__toString()); 146 } 147 148 public function testStudly() { 149 $splString = new SplString('easy_swoole'); 150 $this->assertEquals('EasySwoole', $splString->studly()->__toString()); 151 } 152 153 public function testCamel() { 154 $splString = new SplString('easy_swoole'); 155 $this->assertEquals('easySwoole', $splString->camel()->__toString()); 156 } 157 158 public function testReplaceArray() { 159 $splString = new SplString('easy_easy_easy'); 160 $this->assertEquals('as_bs_cs', $splString->replaceArray('easy', ['as', 'bs', 'cs'])->__toString()); 161 } 162 163 public function testReplaceFirst() { 164 $splString = new SplString('easy_easy_easy'); 165 $this->assertEquals('as_easy_easy', $splString->replaceFirst('easy', 'as')->__toString()); 166 } 167 168 public function testReplaceLast() { 169 $splString = new SplString('easy_easy_easy'); 170 $this->assertEquals('easy_easy_as', $splString->replaceLast('easy', 'as')->__toString()); 171 } 172 173 public function testStart() { 174 $splString = new SplString('Easyswoole'); 175 $this->assertEquals('Hello,Easyswoole', $splString->start('Hello,')->__toString()); 176 } 177 178 public function testAfter() { 179 $splString = new SplString('Hello,Easyswoole'); 180 $this->assertEquals('Easyswoole', $splString->after('Hello,')->__toString()); 181 } 182 183 public function testBefore() { 184 $splString = new SplString('Hello,Easyswoole'); 185 $this->assertEquals('Hello,', $splString->before('Easyswoole')->__toString()); 186 } 187 188 public function testEndsWith() { 189 $splString = new SplString('Hello,Easyswoole'); 190 $this->assertTrue($splString->endsWith('Easyswoole')); 191 } 192 193 public function testStartsWith() { 194 $splString = new SplString('Hello,Easyswoole'); 195 $this->assertTrue($splString->startsWith('Hello')); 196 } 197} 198