Skip to content

Commit 525abbc

Browse files
committed
improving testing & code coverage
1 parent 86b940a commit 525abbc

File tree

1 file changed

+187
-0
lines changed

1 file changed

+187
-0
lines changed

tests/VerbalExpressions/PHPVerbalExpressions/VerbalExpressionsTest.php

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,23 @@ protected function buildUrlPatternAliased(VerbalExpressions $regex)
7979
->endOfLine();
8080
}
8181

82+
83+
public function testTest(){
84+
$regex = new VerbalExpressions();
85+
$regex->find('regex');
86+
87+
$this->assertTrue($regex->test('testing regex string'));
88+
$this->assertFalse($regex->test('testing string'));
89+
90+
$regex->stopAtFirst();
91+
92+
$this->assertEquals(1, $regex->test('testing regex string'));
93+
$this->assertFalse($regex->test('testing string'));
94+
}
95+
96+
/**
97+
* @depends testTest
98+
*/
8299
public function testThenAfterStartOfLine()
83100
{
84101
$regex = new VerbalExpressions();
@@ -265,4 +282,174 @@ public function testAnyOf()
265282
$this->assertFalse($regex->test(''));
266283
$this->assertFalse($regex->test(' '));
267284
}
285+
286+
287+
public function testGetRegex(){
288+
$regex = new VerbalExpressions();
289+
$regex->startOfLine()
290+
->range(0, 9, 'a', 'z', 'A', 'Z')
291+
->multiple('');
292+
293+
$this->assertEquals('/^[0-9a-zA-Z]+/m', $regex->getRegex());
294+
$this->assertEquals('/^[0-9a-zA-Z]+/m', $regex->__toString());
295+
$this->assertEquals('/^[0-9a-zA-Z]+/m', (string)$regex);
296+
$this->assertEquals('/^[0-9a-zA-Z]+/m', $regex . '');
297+
}
298+
299+
/**
300+
* @depends testGetRegex
301+
*/
302+
public function testGetRegex_multiple(){
303+
$regex = new VerbalExpressions();
304+
$regex->startOfLine()
305+
->multiple('regex');
306+
307+
$this->assertEquals('/^regex+/m', $regex->getRegex());
308+
}
309+
310+
/**
311+
* @expectedException InvalidArgumentException
312+
*/
313+
public function testRange_throwsException(){
314+
$regex = new VerbalExpressions();
315+
$regex->range(1, 2, 3);
316+
}
317+
318+
/**
319+
* @depends testGetRegex
320+
*/
321+
public function testRange_lowercase()
322+
{
323+
$lowercaseAlpha = new VerbalExpressions();
324+
$lowercaseAlpha->range('a', 'z')
325+
->multiple('');
326+
327+
$lowercaseAlpha_all = new VerbalExpressions();
328+
$lowercaseAlpha_all->startOfLine()
329+
->range('a', 'z')
330+
->multiple('')
331+
->endOfLine();
332+
333+
$this->assertEquals('/[a-z]+/m', $lowercaseAlpha->getRegex());
334+
$this->assertEquals('/^[a-z]+$/m', $lowercaseAlpha_all->getRegex());
335+
336+
$this->assertTrue($lowercaseAlpha->test('a'));
337+
$this->assertFalse($lowercaseAlpha->test('A'));
338+
$this->assertTrue($lowercaseAlpha->test('alphabet'));
339+
$this->assertTrue($lowercaseAlpha->test('Alphabet'));
340+
$this->assertFalse($lowercaseAlpha_all->test('Alphabet'));
341+
}
342+
343+
/**
344+
* @depends testGetRegex
345+
*/
346+
public function testRange_uppercase()
347+
{
348+
$uppercaseAlpha = new VerbalExpressions();
349+
$uppercaseAlpha->range('A', 'Z')
350+
->multiple('');
351+
352+
$uppercaseAlpha_all = new VerbalExpressions();
353+
$uppercaseAlpha_all->startOfLine()
354+
->range('A', 'Z')
355+
->multiple('')
356+
->endOfLine();
357+
358+
$this->assertEquals('/[A-Z]+/m', $uppercaseAlpha->getRegex());
359+
$this->assertEquals('/^[A-Z]+$/m', $uppercaseAlpha_all->getRegex());
360+
361+
$this->assertTrue($uppercaseAlpha->test('A'));
362+
$this->assertFalse($uppercaseAlpha->test('a'));
363+
$this->assertFalse($uppercaseAlpha->test('alphabet'));
364+
$this->assertTrue($uppercaseAlpha->test('Alphabet'));
365+
$this->assertTrue($uppercaseAlpha->test('ALPHABET'));
366+
$this->assertFalse($uppercaseAlpha_all->test('Alphabet'));
367+
$this->assertTrue($uppercaseAlpha_all->test('ALPHABET'));
368+
}
369+
370+
/**
371+
* @depends testGetRegex
372+
*/
373+
public function testRange_numerical()
374+
{
375+
$zeroToNine = new VerbalExpressions();
376+
$zeroToNine->range(0, 9)
377+
->multiple('');
378+
379+
$zeroToNine_all = new VerbalExpressions();
380+
$zeroToNine_all->startOfLine()
381+
->range(0, 9)
382+
->multiple('')
383+
->endOfLine();
384+
385+
$this->assertEquals('/[0-9]+/m', $zeroToNine->getRegex());
386+
$this->assertEquals('/^[0-9]+$/m', $zeroToNine_all->getRegex());
387+
388+
$this->assertFalse($zeroToNine->test('alphabet'));
389+
$this->assertTrue($zeroToNine->test(0));
390+
$this->assertTrue($zeroToNine->test('0'));
391+
$this->assertTrue($zeroToNine->test(123));
392+
$this->assertTrue($zeroToNine->test('123'));
393+
$this->assertTrue($zeroToNine->test(1.23));
394+
$this->assertTrue($zeroToNine->test('1.23'));
395+
$this->assertFalse($zeroToNine_all->test(1.23));
396+
$this->assertFalse($zeroToNine_all->test('1.23'));
397+
$this->assertTrue($zeroToNine->test('£123'));
398+
$this->assertFalse($zeroToNine_all->test('£123'));
399+
}
400+
401+
/**
402+
* @depends testGetRegex
403+
*/
404+
public function testRange_hexadecimal()
405+
{
406+
$hexadecimal = new VerbalExpressions();
407+
$hexadecimal->startOfLine()
408+
->range(0, 9, 'a', 'f')
409+
->multiple('')
410+
->endOfLine();
411+
412+
$this->assertEquals('/^[0-9a-f]+$/m', $hexadecimal->getRegex());
413+
414+
$this->assertFalse($hexadecimal->test('alphabet'));
415+
$this->assertTrue($hexadecimal->test('deadbeef'));
416+
$this->assertTrue($hexadecimal->test(md5('')));
417+
$this->assertTrue($hexadecimal->test(sha1('')));
418+
}
419+
420+
/**
421+
* @depends testRange_hexadecimal
422+
*/
423+
public function testRange_md5(){
424+
$md5 = new VerbalExpressions();
425+
$md5->startOfLine()
426+
->range(0, 9, 'a', 'f')
427+
->limit(32)
428+
->endOfLine();
429+
430+
$this->assertEquals('/^[0-9a-f]{32}$/m', $md5->getRegex());
431+
432+
$this->assertFalse($md5->test('alphabet'));
433+
$this->assertFalse($md5->test('deadbeef'));
434+
$this->assertTrue($md5->test(md5('')));
435+
$this->assertFalse($md5->test(sha1('')));
436+
}
437+
438+
/*
439+
* @depends testRange_hexadecimal
440+
*/
441+
public function testRange_sha1(){
442+
$sha1 = new VerbalExpressions();
443+
$sha1->startOfLine()
444+
->range(0, 9, 'a', 'f')
445+
->limit(40)
446+
->endOfLine();
447+
448+
$this->assertEquals('/^[0-9a-f]{40}$/m', $sha1->getRegex());
449+
450+
$this->assertFalse($sha1->test('alphabet'));
451+
$this->assertFalse($sha1->test('deadbeef'));
452+
$this->assertFalse($sha1->test(md5('')));
453+
$this->assertTrue($sha1->test(sha1('')));
454+
}
268455
}

0 commit comments

Comments
 (0)