87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
namespace Hamcrest\Text;
 | 
						|
 | 
						|
class StringContainsTest extends \Hamcrest\AbstractMatcherTest
 | 
						|
{
 | 
						|
 | 
						|
    const EXCERPT = 'EXCERPT';
 | 
						|
 | 
						|
    private $_stringContains;
 | 
						|
 | 
						|
    protected function setUp()
 | 
						|
    {
 | 
						|
        $this->_stringContains = \Hamcrest\Text\StringContains::containsString(self::EXCERPT);
 | 
						|
    }
 | 
						|
 | 
						|
    protected function createMatcher()
 | 
						|
    {
 | 
						|
        return $this->_stringContains;
 | 
						|
    }
 | 
						|
 | 
						|
    public function testEvaluatesToTrueIfArgumentContainsSubstring()
 | 
						|
    {
 | 
						|
        $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 testEvaluatesToFalseIfArgumentContainsSubstringIgnoringCase()
 | 
						|
    {
 | 
						|
        $this->assertFalse(
 | 
						|
            $this->_stringContains->matches(strtolower(self::EXCERPT)),
 | 
						|
            'should be false if excerpt is entire string ignoring case'
 | 
						|
        );
 | 
						|
        $this->assertFalse(
 | 
						|
            $this->_stringContains->matches('START' . strtolower(self::EXCERPT) . 'END'),
 | 
						|
            'should be false if excerpt is contained in string ignoring case'
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testIgnoringCaseReturnsCorrectMatcher()
 | 
						|
    {
 | 
						|
        $this->assertTrue(
 | 
						|
            $this->_stringContains->ignoringCase()->matches('EXceRpT'),
 | 
						|
            'should be true if excerpt is entire string ignoring case'
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    public function testHasAReadableDescription()
 | 
						|
    {
 | 
						|
        $this->assertDescription(
 | 
						|
            'a string containing "'
 | 
						|
            . self::EXCERPT . '"',
 | 
						|
            $this->_stringContains
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |