/** * @covers ::onlyFor */ public function testOnlyFor() { $assert1 = new Assert\Present('user_email'); $assert2 = new Assert\Email('user_email'); $assert3 = new Assert\URL('subscribe_url'); $assert4 = new Assert\IP('subscribe_ip'); $asserts = new Asserts(array($assert1, $assert2, $assert3, $assert4)); $filtered = $asserts->onlyFor('user_email'); $this->assertCount(2, $filtered); $this->assertTrue($filtered->all()->contains($assert1)); $this->assertTrue($filtered->all()->contains($assert2)); }
/** * @param string $name * @return Asserts */ public function onlyFor($name) { $asserts = new Asserts(); foreach ($this->asserts as $assert) { if ($assert->getName() === $name) { $asserts->add($assert); } } return $asserts; }