You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
<?php |
|
namespace Hamcrest\Text; |
|
|
|
class StringContainsIgnoringCaseTest extends \Hamcrest\AbstractMatcherTest |
|
{ |
|
|
|
const EXCERPT = 'ExcErPt'; |
|
|
|
private $_stringContains; |
|
|
|
protected function setUp() |
|
{ |
|
$this->_stringContains = \Hamcrest\Text\StringContainsIgnoringCase::containsStringIgnoringCase( |
|
strtolower(self::EXCERPT) |
|
); |
|
} |
|
|
|
protected function createMatcher() |
|
{ |
|
return $this->_stringContains; |
|
} |
|
|
|
public function testEvaluatesToTrueIfArgumentContainsSpecifiedSubstring() |
|
{ |
|
$this->assertTrue( |
|
$this->_stringContains->matches(self::EXCERPT . 'END'), |
|
'should be true if excerpt at beginning' |
|
); |
|
$this->assertTrue( |
|
$this->_stringContains->matches('START' . self::EXCERPT), |
|
'should be true if excerpt at end' |
|
); |
|
$this->assertTrue( |
|
$this->_stringContains->matches('START' . self::EXCERPT . 'END'), |
|
'should be true if excerpt in middle' |
|
); |
|
$this->assertTrue( |
|
$this->_stringContains->matches(self::EXCERPT . self::EXCERPT), |
|
'should be true if excerpt is repeated' |
|
); |
|
|
|
$this->assertFalse( |
|
$this->_stringContains->matches('Something else'), |
|
'should not be true if excerpt is not in string' |
|
); |
|
$this->assertFalse( |
|
$this->_stringContains->matches(substr(self::EXCERPT, 1)), |
|
'should not be true if part of excerpt is in string' |
|
); |
|
} |
|
|
|
public function testEvaluatesToTrueIfArgumentIsEqualToSubstring() |
|
{ |
|
$this->assertTrue( |
|
$this->_stringContains->matches(self::EXCERPT), |
|
'should be true if excerpt is entire string' |
|
); |
|
} |
|
|
|
public function testEvaluatesToTrueIfArgumentContainsExactSubstring() |
|
{ |
|
$this->assertTrue( |
|
$this->_stringContains->matches(strtolower(self::EXCERPT)), |
|
'should be false if excerpt is entire string ignoring case' |
|
); |
|
$this->assertTrue( |
|
$this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'), |
|
'should be false if excerpt is contained in string ignoring case' |
|
); |
|
} |
|
|
|
public function testHasAReadableDescription() |
|
{ |
|
$this->assertDescription( |
|
'a string containing in any case "' |
|
. strtolower(self::EXCERPT) . '"', |
|
$this->_stringContains |
|
); |
|
} |
|
}
|
|
|