assertDescription('("good" or "bad" or "ugly")', anyOf('good', 'bad', 'ugly') ); } public function testNoneOfEvaluatesToTheLogicalDisjunctionOfTwoOtherMatchers() { assertThat('good', not(noneOf('bad', 'good'))); assertThat('good', not(noneOf('good', 'good'))); assertThat('good', not(noneOf('good', 'bad'))); assertThat('good', noneOf('bad', startsWith('b'))); } public function testNoneOfEvaluatesToTheLogicalDisjunctionOfManyOtherMatchers() { assertThat('good', not(noneOf('bad', 'good', 'bad', 'bad', 'bad'))); assertThat('good', noneOf('bad', 'bad', 'bad', 'bad', 'bad')); } public function testNoneOfSupportsMixedTypes() { $combined = noneOf( equalTo(new Hamcrest_Core_SampleBaseClass('good')), equalTo(new Hamcrest_Core_SampleBaseClass('ugly')), equalTo(new Hamcrest_Core_SampleSubClass('good')) ); assertThat(new Hamcrest_Core_SampleSubClass('bad'), $combined); } public function testNoneOfHasAReadableDescription() { $this->assertDescription('not ("good" or "bad" or "ugly")', noneOf('good', 'bad', 'ugly') ); } }