assertMatches(hasToString(equalTo('php')), new Hamcrest_HasToString_PhpForm(), 'correct __toString' ); $this->assertMatches(hasToString(equalTo('java')), new Hamcrest_HasToString_JavaForm(), 'correct toString' ); } public function testPicksJavaOverPhpToString() { $this->assertMatches(hasToString(equalTo('java')), new Hamcrest_HasToString_BothForms(), 'correct toString' ); } public function testDoesNotMatchWhenToStringDoesNotMatch() { $this->assertDoesNotMatch(hasToString(equalTo('mismatch')), new Hamcrest_HasToString_PhpForm(), 'incorrect __toString' ); $this->assertDoesNotMatch(hasToString(equalTo('mismatch')), new Hamcrest_HasToString_JavaForm(), 'incorrect toString' ); $this->assertDoesNotMatch(hasToString(equalTo('mismatch')), new Hamcrest_HasToString_BothForms(), 'incorrect __toString' ); } public function testDoesNotMatchNull() { $this->assertDoesNotMatch(hasToString(equalTo('a')), null, 'should not match null' ); } public function testProvidesConvenientShortcutForTraversableWithSizeEqualTo() { $this->assertMatches(hasToString(equalTo('php')), new Hamcrest_HasToString_PhpForm(), 'correct __toString' ); } public function testHasAReadableDescription() { $this->assertDescription('an object with toString() "php"', hasToString(equalTo('php')) ); } }