Changeset 1324

Show
Ignore:
Timestamp:
02/03/08 21:48:27 (7 months ago)
Author:
mikey
Message:

renamed net::stubbles::ipo::request::filters::stubRegexCheckFilterDecorator to net::stubbles::ipo::request::filters::stubValidatorFilterDecorator as it is pretty much a common solution for using a validator in conjunction with a filter

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/ipo/request/broker/annotations/stubStringFilterAnnotation.php

    r1323 r1324  
    88 */ 
    99stubClassLoader::load('net::stubbles::ipo::request::broker::annotations::stubAbstractStringFilterAnnotation', 
    10                       'net::stubbles::ipo::request::filters::stubRegexCheckFilterDecorator', 
     10                      'net::stubbles::ipo::request::filters::stubValidatorFilterDecorator', 
    1111                      'net::stubbles::ipo::request::filters::stubStringFilter', 
    1212                      'net::stubbles::util::validators::stubRegexValidator' 
     
    4646        $stringFilter  = new stubStringFilter(); 
    4747        if (null !== $this->regex) { 
    48             $stringFilter = new stubRegexCheckFilterDecorator($stringFilter, $this->createRVEFactory(), new stubRegexValidator($this->regex)); 
     48            $stringFilter = new stubValidatorFilterDecorator($stringFilter, $this->createRVEFactory(), new stubRegexValidator($this->regex)); 
    4949        } 
    5050         
  • trunk/src/main/php/net/stubbles/ipo/request/filters/stubValidatorFilterDecorator.php

    r1323 r1324  
    11<?php 
    22/** 
    3  * Class for checking values against a regular expession
     3 * Class for checking values against any validator
    44 * 
    55 * @author      Frank Kleine <mikey@stubbles.net> 
     
    1212); 
    1313/** 
    14  * Class for checking values against a regular expession. 
    15  * 
    16  * If the regular expression is not satisfied with the given value it will be 
    17  * rejected. 
     14 * Class for checking values against any validator. 
    1815 * 
    1916 * @package     stubbles 
    2017 * @subpackage  ipo_request_filters 
    2118 */ 
    22 class stubRegexCheckFilterDecorator extends stubStrategyFilterDecorator 
     19class stubValidatorFilterDecorator extends stubStrategyFilterDecorator 
    2320{ 
    2421    /** 
    25      * validator to use for checking the password 
     22     * validator to use for the check 
    2623     * 
    2724     * @var  stubValidator 
    2825     */ 
    29     protected $regex; 
     26    protected $validator; 
     27    /** 
     28     * the error id to use in case the validation fails 
     29     * 
     30     * @var  string 
     31     */ 
     32    protected $errorId   = 'FIELD_WRONG_VALUE'; 
    3033 
    3134    /** 
     
    3437     * @param  stubFilter                    $filter      decorated filter 
    3538     * @param  stubRequestValueErrorFactory  $rveFactory  factory to create RequestValueErrors 
    36      * @param  stubValidator                 $regex       validator to use for checking the string 
     39     * @param  stubValidator                 $validator   validator to use for the check 
    3740     */ 
    38     public function __construct(stubFilter $filter, stubRequestValueErrorFactory $rveFactory, stubValidator $regex
     41    public function __construct(stubFilter $filter, stubRequestValueErrorFactory $rveFactory, stubValidator $validator
    3942    { 
    4043        $this->setDecoratedFilter($filter); 
    4144        $this->rveFactory = $rveFactory; 
    42         $this->regex      = $regex
     45        $this->validator      = $validator
    4346    } 
    4447 
    4548    /** 
    46      * returns the regex validator 
     49     * returns the validator 
    4750     * 
    4851     * @return  stubValidator 
    4952     */ 
    50     public function getRegexValidator() 
     53    public function getValidator() 
    5154    { 
    52         return $this->regex; 
     55        return $this->validator; 
     56    } 
     57 
     58    /** 
     59     * sets the error id to be used 
     60     * 
     61     * @param  string  $errorId 
     62     */ 
     63    public function setErrorId($errorId) 
     64    { 
     65        $this->errorId = $errorId; 
    5366    } 
    5467 
     
    6275    protected function doExecute($value) 
    6376    { 
    64         if ($this->regex->validate($value) == false) { 
    65             throw new stubFilterException($this->rveFactory->create('FIELD_WRONG_VALUE')); 
     77        if ($this->validator->validate($value) == false) { 
     78            throw new stubFilterException($this->rveFactory->create($this->errorId)); 
    6679        } 
    6780 
  • trunk/src/test/php/net/stubbles/ipo/IPOTestSuite.php

    r1323 r1324  
    5353        $suite->addTestFile($dir . '/request/filters/stubPassThruFilterTestCase.php'); 
    5454        $suite->addTestFile($dir . '/request/filters/stubPasswordFilterTestCase.php'); 
    55         $suite->addTestFile($dir . '/request/filters/stubRegexCheckFilterDecoratorTestCase.php'); 
    5655        $suite->addTestFile($dir . '/request/filters/stubRegexChangeFilterDecoratorTestCase.php'); 
    5756        $suite->addTestFile($dir . '/request/filters/stubRequiredFilterDecoratorTestCase.php'); 
     
    5958        $suite->addTestFile($dir . '/request/filters/stubStringFilterTestCase.php'); 
    6059        $suite->addTestFile($dir . '/request/filters/stubTextFilterTestCase.php'); 
     60        $suite->addTestFile($dir . '/request/filters/stubValidatorFilterDecoratorTestCase.php'); 
    6161 
    6262        $suite->addTestFile($dir . '/response/stubCookieTestCase.php'); 
  • trunk/src/test/php/net/stubbles/ipo/request/broker/annotations/stubStringFilterAnnotationTestCase.php

    r1323 r1324  
    5252        $this->stringFilterAnnotation->setRegex('/foo/'); 
    5353        $filter = $this->stringFilterAnnotation->getFilter(); 
    54         $this->assertType('stubRegexCheckFilterDecorator', $filter); 
    55         $this->assertType('stubRegexValidator', $filter->getRegexValidator()); 
    56         $this->assertEquals('/foo/', $filter->getRegexValidator()->getValue()); 
     54        $this->assertType('stubValidatorFilterDecorator', $filter); 
     55        $this->assertType('stubRegexValidator', $filter->getValidator()); 
     56        $this->assertEquals('/foo/', $filter->getValidator()->getValue()); 
    5757        $this->assertType('stubStringFilter', $filter->getDecoratedFilter()); 
    5858    } 
  • trunk/src/test/php/net/stubbles/ipo/request/filters/stubValidatorFilterDecoratorTestCase.php

    r1323 r1324  
    11<?php 
    22/** 
    3  * Tests for net::stubbles::ipo::request::filters::stubRegexCheckFilterDecorator. 
     3 * Tests for net::stubbles::ipo::request::filters::stubValidatorFilterDecorator. 
    44 * 
    55 * @author      Frank Kleine <mikey@stubbles.net> 
     
    77 * @subpackage  ipo_request_filters_test 
    88 */ 
    9 stubClassLoader::load('net::stubbles::ipo::request::filters::stubRegexCheckFilterDecorator'); 
     9stubClassLoader::load('net::stubbles::ipo::request::filters::stubValidatorFilterDecorator'); 
    1010/** 
    1111 * Helper class for the test. 
     
    1414 * @subpackage  ipo_request_filters_test 
    1515 */ 
    16 class TeststubRegexCheckFilterDecorator extends stubRegexCheckFilterDecorator 
     16class TeststubValidatorFilterDecorator extends stubValidatorFilterDecorator 
    1717{ 
    1818    /** 
     
    2828} 
    2929/** 
    30  * Tests for net::stubbles::ipo::request::filters::stubRegexCheckFilterDecorator. 
     30 * Tests for net::stubbles::ipo::request::filters::stubValidatorFilterDecorator. 
    3131 * 
    3232 * @package     stubbles 
    3333 * @subpackage  ipo_request_filters_test 
    3434 */ 
    35 class stubRegexCheckFilterDecoratorTestCase extends PHPUnit_Framework_TestCase 
     35class stubValidatorFilterDecoratorTestCase extends PHPUnit_Framework_TestCase 
    3636{ 
    3737    /** 
     
    4646     * @var  PHPUnit_Framework_MockObject_MockObject 
    4747     */ 
    48     protected $mockRegexValidator; 
     48    protected $mockValidator; 
    4949    /** 
    5050     * the instance to test 
    5151     * 
    52      * @var  TeststubRegexCheckFilterDecorator 
     52     * @var  TeststubValidatorFilterDecorator 
    5353     */ 
    54     protected $regexCheckFilterDecorator; 
     54    protected $validatorFilterDecorator; 
    5555 
    5656    /** 
     
    6060    { 
    6161        $this->mockRequestValueErrorFactory = $this->getMock('stubRequestValueErrorFactory'); 
    62         $this->mockRegexValidator           = $this->getMock('stubValidator'); 
     62        $this->mockValidator                = $this->getMock('stubValidator'); 
    6363        $this->mockFilter                   = $this->getMock('stubFilter'); 
    64         $this->regexCheckFilterDecorator    = new TeststubRegexCheckFilterDecorator($this->mockFilter, $this->mockRequestValueErrorFactory, $this->mockRegexValidator); 
     64        $this->validatorFilterDecorator     = new TeststubValidatorFilterDecorator($this->mockFilter, $this->mockRequestValueErrorFactory, $this->mockValidator); 
    6565    } 
    6666 
     
    7272    public function values() 
    7373    { 
    74         $this->assertSame($this->mockFilter, $this->regexCheckFilterDecorator->getDecoratedFilter()); 
    75         $this->assertSame($this->mockRegexValidator, $this->regexCheckFilterDecorator->getRegexValidator()); 
     74        $this->assertSame($this->mockFilter, $this->validatorFilterDecorator->getDecoratedFilter()); 
     75        $this->assertSame($this->mockValidator, $this->validatorFilterDecorator->getValidator()); 
    7676    } 
    7777 
     
    8181     * @test 
    8282     */ 
    83     public function regexSucceeds() 
     83    public function validationSucceeds() 
    8484    { 
    8585         
    86         $this->mockRegexValidator->expects($this->once())->method('validate')->will($this->returnValue(true)); 
     86        $this->mockValidator->expects($this->once())->method('validate')->will($this->returnValue(true)); 
    8787        $this->mockRequestValueErrorFactory->expects($this->never())->method('create'); 
    88         $this->assertEquals('regexTest', $this->regexCheckFilterDecorator->callDoExecute('regexTest')); 
     88        $this->assertEquals('test_value', $this->validatorFilterDecorator->callDoExecute('test_value')); 
    8989    } 
    9090 
     
    9595     * @expectedException  stubFilterException 
    9696     */ 
    97     public function regexFails() 
     97    public function validationFails() 
    9898    { 
    99         $this->mockRegexValidator->expects($this->once())->method('validate')->will($this->returnValue(false)); 
     99        $this->mockValidator->expects($this->once())->method('validate')->will($this->returnValue(false)); 
    100100        $this->mockRequestValueErrorFactory->expects($this->once()) 
    101101                                           ->method('create') 
    102102                                           ->with($this->equalTo('FIELD_WRONG_VALUE')) 
     103                                           ->will($this->returnValue(new stubRequestValueError('FIELD_WRONG_VALUE', array('en_EN' => 'Something wrent wrong.')))); 
     104        $this->validatorFilterDecorator->callDoExecute('test_value'); 
     105    } 
     106 
     107    /** 
     108     * assure that filtering a string with regular expressions works correct 
     109     * 
     110     * @test 
     111     * @expectedException  stubFilterException 
     112     */ 
     113    public function validationFailsWithOtherErrorId() 
     114    { 
     115        $this->validatorFilterDecorator->setErrorId('foo'); 
     116        $this->mockValidator->expects($this->once())->method('validate')->will($this->returnValue(false)); 
     117        $this->mockRequestValueErrorFactory->expects($this->once()) 
     118                                           ->method('create') 
     119                                           ->with($this->equalTo('foo')) 
    103120                                           ->will($this->returnValue(new stubRequestValueError('foo', array('en_EN' => 'Something wrent wrong.')))); 
    104         $this->regexCheckFilterDecorator->callDoExecute('regexTest'); 
     121        $this->validatorFilterDecorator->callDoExecute('test_value'); 
    105122    } 
    106123}