public function testZvbClassesReportCustomMsgsWithErrorManager()
 {
     $testData1 = array('field1' => 'This string is 34 characters long.', 'field2' => 'However, this string contains 44 characters.');
     $em = new Zend_Validate_Builder_ErrorManager();
     $em->setTemplate('field1', 'Zend_Validate_StringLength', 'stringLengthTooShort', '\'%value%\' should be longer than %min% chars');
     $em->setTemplate('field2', 'Zend_Validate_StringLength', 'stringLengthTooLong', '\'%value%\' should not be longer than %max% chars');
     $zvb = new Zend_Validate_Builder();
     $zvb->setErrorManager($em);
     $ff = new Zend_Validate_Builder_FluentFacade($zvb);
     $ff->field1->stringLength(40);
     $ff->field2->stringLength(30, 40);
     if (!$ff->isValid($testData1)) {
         $expected = array('field1' => array('Zend_Validate_StringLength' => array('stringLengthTooShort' => "'This string is 34 characters long.' should be longer than 40 chars")), 'field2' => array('Zend_Validate_StringLength' => array('stringLengthTooLong' => "'However, this string contains 44 characters.' should not be longer than 40 chars")));
         $actual = $ff->getMessages();
         $this->assertEquals($expected, $actual);
     } else {
         $this->fail('Failed to catch invalid fields');
     }
 }
 public function testClearFiltersErrors()
 {
     // Set up
     $em = new Zend_Validate_Builder_ErrorManager();
     $em->setTemplate('field1', 'valClass9', 'reason1', 'Message1');
     $em->setTemplate('field1', 'valClass9', 'reason2', 'Message2');
     $em->setTemplate('field1', 'valClass10', 'reason1', 'Message3');
     $em->setTemplate('field1', 'valClass10', 'reason2', 'Message4');
     $em->setTemplate('field2', 'valClass9', 'reason1', 'Message5');
     $em->setTemplate('field2', 'valClass9', 'reason2', 'Message6');
     $em->setTemplate('field2', 'valClass10', 'reason1', 'Message7');
     $em->setTemplate('field2', 'valClass10', 'reason2', 'Message8');
     $em->setTemplate('field3', 'valClass11', 'reason1', 'Message9');
     $em->setTemplate('field3', 'valClass11', 'reason2', 'Message10');
     $em->setTemplate('field3', 'valClass12', 'reason1', 'Message11');
     $em->setTemplate('field3', 'valClass12', 'reason2', 'Message12');
     $valClass1 = $this->getMock('Zend_Validate_Abstract', array(), array(), 'valClass9');
     $valClass1->expects($this->exactly(2))->method('getMessages')->will($this->returnValue(array('reason1' => 'Default Msg')));
     $valClass2 = $this->getMock('Zend_Validate_Abstract', array(), array(), 'valClass10');
     $valClass2->expects($this->exactly(2))->method('getMessages')->will($this->returnValue(array('reason2' => 'Default Msg')));
     $valClass3 = $this->getMock('Zend_Validate_Abstract', array(), array(), 'valClass11');
     $valClass3->expects($this->once())->method('getMessages')->will($this->returnValue(array('reason1' => 'Default Msg', 'reason2' => 'Default Msg')));
     $valClass4 = $this->getMock('Zend_Validate_Abstract', array(), array(), 'valClass12');
     $valClass4->expects($this->once())->method('getMessages')->will($this->returnValue(array('reason1' => 'Default Msg', 'reason2' => 'Default Msg')));
     $em->raise('field1', $valClass1);
     $em->raise('field1', $valClass2);
     $em->raise('field2', $valClass1);
     $em->raise('field2', $valClass2);
     $em->raise('field3', $valClass3);
     $em->raise('field3', $valClass4);
     // Now do actual tests
     $em->clear('field3', 'valClass11', 'reason1');
     $this->assertFalse($em->hasMessages('field3', 'valClass11', 'reason1'));
     $this->assertTrue($em->hasMessages('field3', 'valClass11', 'reason2'));
     $em->clear('field3', 'valClass11');
     $this->assertFalse($em->hasMessages('field3', 'valClass11'));
     $this->assertTrue($em->hasMessages('field3', 'valClass12'));
     $em->clear('field3');
     $this->assertFalse($em->hasMessages('field3'));
     $this->assertTrue($em->hasMessages('field2'));
     $em->clear();
     $this->assertFalse($em->hasMessages());
 }