Increase coverage of tests for AbstractComposite

This commit is contained in:
Emmerson 2015-10-29 13:41:39 -03:00 committed by Henrique Moody
parent 6f77f8ac9b
commit 2371e7c6db

View file

@ -150,4 +150,77 @@ class AbstractCompositeTest extends \PHPUnit_Framework_TestCase
$compositeRuleMock->addRule($simpleRuleMock);
$compositeRuleMock->setName($ruleName);
}
public function testRemoveRulesShouldRemoveAllTheAddedRules()
{
$simpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$compositeRuleMock->addRule($simpleRuleMock);
$compositeRuleMock->removeRules();
$this->assertEmpty($compositeRuleMock->getRules());
}
public function testShouldReturnTheAmountOfAddedRules()
{
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$compositeRuleMock->addRule($this->getMock('Respect\\Validation\\Validatable'));
$compositeRuleMock->addRule($this->getMock('Respect\\Validation\\Validatable'));
$compositeRuleMock->addRule($this->getMock('Respect\\Validation\\Validatable'));
$this->assertCount(3, $compositeRuleMock->getRules());
}
public function testHasRuleShouldReturnFalseWhenThereIsNoRuleAppended()
{
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$this->assertFalse($compositeRuleMock->hasRule(''));
}
public function testHasRuleShouldReturnFalseWhenRuleIsNotFound()
{
$oneSimpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$compositeRuleMock->addRule($oneSimpleRuleMock);
$anotherSimpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$this->assertFalse($compositeRuleMock->hasRule($anotherSimpleRuleMock));
}
public function testHasRuleShouldReturnFalseWhenRulePassedAsStringIsNotFound()
{
$simpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$compositeRuleMock->addRule($simpleRuleMock);
$this->assertFalse($compositeRuleMock->hasRule('SomeRule'));
}
public function testHasRuleShouldReturnTrueWhenRuleIsFound()
{
$simpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite');
$compositeRuleMock->addRule($simpleRuleMock);
$this->assertTrue($compositeRuleMock->hasRule($simpleRuleMock));
}
public function testShouldAddRulesByPassingThroughConstructor()
{
$simpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$anotherSimpleRuleMock = $this->getMock('Respect\\Validation\\Validatable');
$compositeRuleMock = $this->getMockForAbstractClass('Respect\\Validation\\Rules\\AbstractComposite', [
$simpleRuleMock,
$anotherSimpleRuleMock
]);
$this->assertCount(2, $compositeRuleMock->getRules());
}
}