public function testOnBeforeAfterValidate()
{
$documentMock = $this->getMock('\\Sokil\\Mongo\\Document', array('rules'), array($this->collection, array('e' => '[email protected]')));
$documentMock->expects($this->once())->method('rules')->will($this->returnValue(array(array('e', 'email', 'mx' => false))));
$documentMock->onBeforeValidate(function ($event, $eventName, $eventDispatcher) {
$event->getTarget()->status .= 'a';
})->onAfterValidate(function ($event, $eventName, $eventDispatcher) {
$event->getTarget()->status .= 'b';
});
$documentMock->validate();
$this->assertEquals('ab', $documentMock->status);
}