Changeset 1021

Show
Ignore:
Timestamp:
11/09/07 22:41:01 (1 year ago)
Author:
mikey
Message:

added new hasValueErrorWithId() method, implements enhancement #95

Files:

Legend:

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

    r887 r1021  
    108108    { 
    109109        $error =& $this->getErrors($source); 
    110         if (isset($error[$valueName]) == false) { 
    111             $error[$valueName] = array($valueError); 
     110        if (isset($error[$valueName]) === false) { 
     111            $error[$valueName] = array($valueError->getId() => $valueError); 
    112112        } else { 
    113             $ids = array(); 
    114             foreach ($error[$valueName] as $errorValue) { 
    115                 $ids[] = $errorValue->getId(); 
    116             } 
    117              
    118             if (in_array($valueError->getId(), $ids) == false) { 
    119                 $error[$valueName][] = $valueError; 
    120             } 
    121         } 
    122     } 
    123  
    124     /** 
    125      * checks whether a request value has an error after a filter was applied 
     113            $error[$valueName][$valueError->getId()] = $valueError; 
     114        } 
     115    } 
     116 
     117    /** 
     118     * checks whether a request value has any error after a filter was applied 
    126119     * 
    127120     * @param   string  $valueName  name of request value 
     
    133126        $error = $this->getErrors($source); 
    134127        return isset($error[$valueName]); 
     128    } 
     129 
     130    /** 
     131     * checks whether a request value has a specific error after a filter was applied 
     132     * 
     133     * @param   string  $valueName  name of request value 
     134     * @param   string  $errorId    id of error to check for 
     135     * @param   int     $source     optional  source type: cookie, header, param 
     136     * @return  bool 
     137     */ 
     138    public function hasValueErrorWithId($valueName, $errorId, $source = stubRequest::SOURCE_PARAM) 
     139    { 
     140        $error = $this->getErrors($source); 
     141        return (isset($error[$valueName]) && isset($error[$valueName][$errorId])); 
    135142    } 
    136143 
     
    145152    { 
    146153        $error = $this->getErrors($source); 
    147         if (isset($error[$valueName]) == true) { 
     154        if (isset($error[$valueName]) === true) { 
    148155            return $error[$valueName]; 
    149156        } 
     
    206213    public function cancel(stubEventDispatcher $dispatcher = null) 
    207214    { 
    208         if (true == $this->isCancelled) { 
     215        if (true === $this->isCancelled) { 
    209216            return; 
    210217        } 
     
    212219        $this->isCancelled = true; 
    213220         
    214         if (null == $dispatcher) { 
     221        if (null === $dispatcher) { 
    215222            $dispatcher = stubEventDispatcher::getInstance(); 
    216223        } 
     
    252259    { 
    253260        $rawData = $this->getRawData(); 
    254         if ($validator->validate($rawData) == true) { 
     261        if ($validator->validate($rawData) === true) { 
    255262            return $this->getRawData(); 
    256263        } 
     
    269276    { 
    270277        $rawData = $this->getRawData(); 
    271         if (null == $rawData) { 
    272             if ($filter->hasDefaultValue() == true) { 
     278        if (null == $rawData) { // implicit test for empty string included 
     279            if ($filter->hasDefaultValue() === true) { 
    273280                return $filter->getDefaultValue(); 
    274281            } 
     
    298305    { 
    299306        $data = $this->getValues($source); 
    300         if (isset($data[$valueName]) == true) { 
     307        if (isset($data[$valueName]) === true) { 
    301308            return $validator->validate($data[$valueName]); 
    302309        } 
     
    318325    { 
    319326        $data = $this->getValues($source); 
    320         if (isset($data[$valueName]) == true && $validator->validate($data[$valueName]) == true) { 
     327        if (isset($data[$valueName]) === true && $validator->validate($data[$valueName]) === true) { 
    321328            return $data[$valueName]; 
    322329        } 
     
    337344    { 
    338345        $data = $this->getValues($source); 
    339         if (isset($data[$valueName]) == false) { 
    340             if ($filter->hasDefaultValue() == true) { 
     346        if (isset($data[$valueName]) === false) { 
     347            if ($filter->hasDefaultValue() === true) { 
    341348                return $filter->getDefaultValue(); 
    342349            } 
  • trunk/src/main/php/net/stubbles/ipo/request/stubRequest.php

    r753 r1021  
    6161 
    6262    /** 
    63      * checks whether a request value has an error after a filter was applied 
     63     * checks whether a request value has any error after a filter was applied 
    6464     * 
    6565     * @param   string  $valueName  name of request value 
     
    6868     */ 
    6969    public function hasValueError($valueName, $source = self::SOURCE_PARAM); 
     70 
     71    /** 
     72     * checks whether a request value has a specific error after a filter was applied 
     73     * 
     74     * @param   string  $valueName  name of request value 
     75     * @param   string  $errorId    id of error to check for 
     76     * @param   int     $source     optional  source type: cookie, header, param 
     77     * @return  bool 
     78     */ 
     79    public function hasValueErrorWithId($valueName, $errorId, $source = stubRequest::SOURCE_PARAM); 
    7080 
    7181    /** 
  • trunk/src/main/php/net/stubbles/ipo/request/stubRequestPrefixDecorator.php

    r753 r1021  
    118118 
    119119    /** 
     120     * checks whether a request value has a specific error after a filter was applied 
     121     * 
     122     * @param   string  $valueName  name of request value 
     123     * @param   string  $errorId    id of error to check for 
     124     * @param   int     $source     optional  source type: cookie, header, param 
     125     * @return  bool 
     126     */ 
     127    public function hasValueErrorWithId($valueName, $errorId, $source = stubRequest::SOURCE_PARAM) 
     128    { 
     129        if ($this->applyPrefix($source) == true) { 
     130            $valueName = $this->prefix . '_' . $valueName; 
     131        } 
     132         
     133        return $this->request->hasValueErrorWithId($valueName, $errorId, $source); 
     134    } 
     135 
     136    /** 
    120137     * returns a list of errors for given request value 
    121138     * 
  • trunk/src/test/php/net/stubbles/ipo/request/stubAbstractRequestTestCase.php

    r753 r1021  
    240240    { 
    241241        $this->assertFalse($this->request->hasValueError('foo')); 
     242        $this->assertFalse($this->request->hasValueErrorWithId('foo', 'bar')); 
    242243        $this->assertEqual($this->request->getValueError('foo'), array()); 
    243244        $this->assertFalse($this->request->hasValueErrors()); 
     
    245246         
    246247        $this->assertFalse($this->request->hasValueError('foo', stubRequest::SOURCE_PARAM)); 
     248        $this->assertFalse($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_PARAM)); 
    247249        $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_PARAM), array()); 
    248250        $this->assertEqual($this->request->getValueErrors('foo', stubRequest::SOURCE_PARAM), array()); 
     
    255257        $this->request->addValueError($errorValue, 'foo'); 
    256258        $this->assertTrue($this->request->hasValueError('foo')); 
    257         $this->assertEqual($this->request->getValueError('foo'), array($errorValue)); 
     259        $this->assertTrue($this->request->hasValueErrorWithId('foo', 'bar')); 
     260        $this->assertEqual($this->request->getValueError('foo'), array('bar' => $errorValue)); 
    258261        $this->assertTrue($this->request->hasValueErrors()); 
    259         $this->assertEqual($this->request->getValueErrors('foo'), array('foo' => array($errorValue))); 
     262        $this->assertEqual($this->request->getValueErrors('foo'), array('foo' => array('bar' => $errorValue))); 
    260263         
    261264        $this->assertTrue($this->request->hasValueError('foo', stubRequest::SOURCE_PARAM)); 
    262         $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_PARAM), array($errorValue)); 
     265        $this->assertTrue($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_PARAM)); 
     266        $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_PARAM), array('bar' => $errorValue)); 
    263267        $this->assertTrue($this->request->hasValueErrors(stubRequest::SOURCE_PARAM)); 
    264         $this->assertEqual($this->request->getValueErrors('foo', stubRequest::SOURCE_PARAM), array('foo' => array($errorValue))); 
     268        $this->assertEqual($this->request->getValueErrors('foo', stubRequest::SOURCE_PARAM), array('foo' => array('bar' => $errorValue))); 
    265269         
    266270        $this->assertTrue($this->request->hasValueError('foo', 'dummy')); 
    267         $this->assertEqual($this->request->getValueError('foo', 'dummy'), array($errorValue)); 
     271        $this->assertTrue($this->request->hasValueErrorWithId('foo', 'bar', 'dummy')); 
     272        $this->assertEqual($this->request->getValueError('foo', 'dummy'), array('bar' => $errorValue)); 
    268273        $this->assertTrue($this->request->hasValueErrors('dummy')); 
    269         $this->assertEqual($this->request->getValueErrors('foo', 'dummy'), array('foo' => array($errorValue))); 
     274        $this->assertEqual($this->request->getValueErrors('foo', 'dummy'), array('foo' => array('bar' => $errorValue))); 
    270275    } 
    271276 
     
    276281    { 
    277282        $this->assertFalse($this->request->hasValueError('foo', stubRequest::SOURCE_HEADER)); 
     283        $this->assertFalse($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_HEADER)); 
    278284        $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_HEADER), array()); 
    279285        $this->assertFalse($this->request->hasValueErrors(stubRequest::SOURCE_HEADER)); 
     
    282288        $errorValue = new stubRequestValueError('bar', array()); 
    283289        $this->request->addValueError($errorValue, 'foo', stubRequest::SOURCE_HEADER); 
     290        $this->assertTrue($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_HEADER)); 
    284291        $this->assertTrue($this->request->hasValueError('foo', stubRequest::SOURCE_HEADER)); 
    285         $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_HEADER), array($errorValue)); 
     292        $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_HEADER), array('bar' => $errorValue)); 
    286293        $this->assertTrue($this->request->hasValueErrors(stubRequest::SOURCE_HEADER)); 
    287         $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_HEADER), array('foo' => array($errorValue))); 
     294        $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_HEADER), array('foo' => array('bar' => $errorValue))); 
    288295    } 
    289296 
     
    294301    { 
    295302        $this->assertFalse($this->request->hasValueError('foo', stubRequest::SOURCE_COOKIE)); 
     303        $this->assertFalse($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_COOKIE)); 
    296304        $this->assertEqual($this->request->getValueError('baz', stubRequest::SOURCE_COOKIE), array()); 
    297305        $this->assertFalse($this->request->hasValueErrors(stubRequest::SOURCE_COOKIE)); 
     
    301309        $this->request->addValueError($errorValue, 'foo', stubRequest::SOURCE_COOKIE); 
    302310        $this->assertTrue($this->request->hasValueError('foo', stubRequest::SOURCE_COOKIE)); 
    303         $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_COOKIE), array($errorValue)); 
     311        $this->assertTrue($this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_COOKIE)); 
     312        $this->assertEqual($this->request->getValueError('foo', stubRequest::SOURCE_COOKIE), array('bar' => $errorValue)); 
    304313        $this->assertTrue($this->request->hasValueErrors(stubRequest::SOURCE_COOKIE)); 
    305         $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_COOKIE), array('foo' => array($errorValue))); 
     314        $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_COOKIE), array('foo' => array('bar' => $errorValue))); 
    306315    } 
    307316 
     
    309318     * assure that the same error occurs only once in list of errors for a value 
    310319     */ 
    311    public function testErrorOnlyAddedOnce() 
     320    public function testErrorOnlyAddedOnce() 
    312321    { 
    313322        $errorValue = new stubRequestValueError('foo', array()); 
    314323        $this->request->addValueError($errorValue, 'foo'); 
    315         $this->assertEqual($this->request->getValueError('foo'), array($errorValue)); 
     324        $this->assertEqual($this->request->getValueError('foo'), array('foo' => $errorValue)); 
    316325        $this->request->getFilteredValue(new stubTestExceptionFilter(), 'foo'); 
    317         $this->assertEqual($this->request->getValueError('foo'), array($errorValue)); 
     326        $this->assertEqual($this->request->getValueError('foo'), array('foo' => $errorValue)); 
    318327    } 
    319328 
  • trunk/src/test/php/net/stubbles/ipo/request/stubRequestPrefixDecoratorTestCase.php

    r753 r1021  
    128128    { 
    129129        $errorValue = new stubRequestValueError('bar', array()); 
    130         $this->mockRequest->expect('addValueError', array($errorValue, 'test_foo', stubRequest::SOURCE_PARAM)); 
     130        $this->mockRequest->expectOnce('addValueError', array($errorValue, 'test_foo', stubRequest::SOURCE_PARAM)); 
    131131        $this->request->addValueError($errorValue, 'foo'); 
    132132         
    133         $this->mockRequest->expect('hasValueError', array('test_foo', stubRequest::SOURCE_PARAM)); 
     133        $this->mockRequest->expectOnce('hasValueError', array('test_foo', stubRequest::SOURCE_PARAM)); 
    134134        $this->request->hasValueError('foo'); 
    135135         
    136         $this->mockRequest->expect('getValueError', array('test_foo', stubRequest::SOURCE_PARAM)); 
     136        $this->mockRequest->expectOnce('hasValueErrorWithId', array('test_foo', 'bar', stubRequest::SOURCE_PARAM)); 
     137        $this->request->hasValueErrorWithId('foo', 'bar'); 
     138         
     139        $this->mockRequest->expectOnce('getValueError', array('test_foo', stubRequest::SOURCE_PARAM)); 
    137140        $this->request->getValueError('foo'); 
    138          
    139         $this->mockRequest->expect('hasValueErrors', array(stubRequest::SOURCE_PARAM)); 
    140         $this->request->hasValueErrors(); 
    141141         
    142142        $this->mockRequest->setReturnValue('getValueErrors', array('test_foo' => array(), 'bar' => array())); 
     
    150150    { 
    151151        $errorValue = new stubRequestValueError('bar', array()); 
    152         $this->mockRequest->expect('addValueError', array($errorValue, 'foo', stubRequest::SOURCE_HEADER)); 
     152        $this->mockRequest->expectOnce('addValueError', array($errorValue, 'foo', stubRequest::SOURCE_HEADER)); 
    153153        $this->request->addValueError($errorValue, 'foo', stubRequest::SOURCE_HEADER); 
    154154         
    155         $this->mockRequest->expect('hasValueError', array('foo', stubRequest::SOURCE_HEADER)); 
     155        $this->mockRequest->expectOnce('hasValueError', array('foo', stubRequest::SOURCE_HEADER)); 
    156156        $this->request->hasValueError('foo', stubRequest::SOURCE_HEADER); 
    157157         
    158         $this->mockRequest->expect('getValueError', array('foo', stubRequest::SOURCE_HEADER)); 
     158        $this->mockRequest->expectOnce('hasValueErrorWithId', array('foo', 'bar', stubRequest::SOURCE_HEADER)); 
     159        $this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_HEADER); 
     160         
     161        $this->mockRequest->expectOnce('getValueError', array('foo', stubRequest::SOURCE_HEADER)); 
    159162        $this->request->getValueError('foo', stubRequest::SOURCE_HEADER); 
    160163         
    161         $this->mockRequest->expect('hasValueErrors', array(stubRequest::SOURCE_HEADER)); 
    162         $this->request->hasValueErrors(); 
    163          
    164         $this->mockRequest->expect('getValueErrors', array(stubRequest::SOURCE_HEADER)); 
     164        $this->mockRequest->expectOnce('getValueErrors', array(stubRequest::SOURCE_HEADER)); 
    165165        $this->mockRequest->setReturnValue('getValueErrors', array('test_foo' => array(), 'bar' => array())); 
    166166        $this->assertEqual($this->request->getValueErrors(stubRequest::SOURCE_HEADER), array('test_foo' => array(), 'bar' => array())); 
     
    173173    { 
    174174        $errorValue = new stubRequestValueError('bar', array()); 
    175         $this->mockRequest->expect('addValueError', array($errorValue, 'foo', stubRequest::SOURCE_COOKIE)); 
     175        $this->mockRequest->expectOnce('addValueError', array($errorValue, 'foo', stubRequest::SOURCE_COOKIE)); 
    176176        $this->request->addValueError($errorValue, 'foo', stubRequest::SOURCE_COOKIE); 
    177177         
    178         $this->mockRequest->expect('hasValueError', array('foo', stubRequest::SOURCE_COOKIE)); 
     178        $this->mockRequest->expectOnce('hasValueError', array('foo', stubRequest::SOURCE_COOKIE)); 
    179179        $this->request->hasValueError('foo', stubRequest::SOURCE_COOKIE); 
    180180         
    181         $this->mockRequest->expect('getValueError', array('foo', stubRequest::SOURCE_COOKIE)); 
     181        $this->mockRequest->expectOnce('hasValueErrorWithId', array('foo', 'bar', stubRequest::SOURCE_COOKIE)); 
     182        $this->request->hasValueErrorWithId('foo', 'bar', stubRequest::SOURCE_COOKIE); 
     183         
     184        $this->mockRequest->expectOnce('getValueError', array('foo', stubRequest::SOURCE_COOKIE)); 
    182185        $this->request->getValueError('foo', stubRequest::SOURCE_COOKIE); 
    183          
    184         $this->mockRequest->expect('hasValueErrors', array(stubRequest::SOURCE_COOKIE)); 
    185         $this->request->hasValueErrors(); 
    186186         
    187187        $this->mockRequest->expect('getValueErrors', array(stubRequest::SOURCE_COOKIE));