Changeset 1578
- Timestamp:
- 05/23/08 12:50:46 (5 months ago)
- Files:
-
- trunk/src/main/php/net/stubbles/ipo/request/broker/annotations/stubFilterAnnotation.php (modified) (1 diff)
- trunk/src/main/php/net/stubbles/ipo/request/broker/stubRequestBroker.php (modified) (3 diffs)
- trunk/src/test/php/net/stubbles/ipo/request/broker/stubRequestBrokerTestCase.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/main/php/net/stubbles/ipo/request/broker/annotations/stubFilterAnnotation.php
r1281 r1578 26 26 27 27 /** 28 * sets whether the value is required or not 29 * 30 * @param bool $isRequired 31 */ 32 public function setRequired($isRequired); 33 34 /** 28 35 * returns the filter defined by the annotation 29 36 * trunk/src/main/php/net/stubbles/ipo/request/broker/stubRequestBroker.php
r1575 r1578 32 32 * 33 33 * @param stubRequest $request 34 * @param object $object the object instance to fill with values 35 * @param string $prefix optional prefix for access to request values 34 * @param object $object the object instance to fill with values 35 * @param string $prefix optional prefix for access to request values 36 * @param bool $required optional make everything on the object optional 36 37 * @throws stubIllegalArgumentException 37 38 */ 38 public function process(stubRequest $request, $object, $prefix = '' )39 public function process(stubRequest $request, $object, $prefix = '', $required = true) 39 40 { 40 41 if ($object instanceof stubObject) { … … 49 50 if ($this->isAvailable($refProperty) === true) { 50 51 $filterAnnotation = $refProperty->getAnnotation('Filter'); 52 if (false === $required) { 53 $filterAnnotation->setRequired(false); 54 } 55 51 56 $value = $request->getFilteredValue($filterAnnotation->getFilter(), $prefix . $filterAnnotation->getFieldName()); 52 57 if ($request->hasValueError($prefix . $filterAnnotation->getFieldName()) === false) { … … 59 64 if ($this->isAvailable($refMethod) === true) { 60 65 $filterAnnotation = $refMethod->getAnnotation('Filter'); 66 if (false === $required) { 67 $filterAnnotation->setRequired(false); 68 } 69 61 70 $value = $request->getFilteredValue($filterAnnotation->getFilter(), $prefix . $filterAnnotation->getFieldName()); 62 71 if ($request->hasValueError($prefix . $filterAnnotation->getFieldName()) === false) { trunk/src/test/php/net/stubbles/ipo/request/broker/stubRequestBrokerTestCase.php
r1282 r1578 91 91 $this->assertNull(TestBrokerObject::$dummy); 92 92 } 93 94 /** 95 * test broking when everything should be treated as optional 96 * 97 * @test 98 */ 99 public function withIsOptionalEnabled() 100 { 101 $this->mockRequest->expects($this->exactly(2)) 102 ->method('getFilteredValue') 103 ->will($this->onConsecutiveCalls(null, null)); 104 $this->mockRequest->expects($this->exactly(2)) 105 ->method('hasValueError') 106 ->will($this->returnValue(false)); 107 $testClass = new TestBrokerObject(); 108 $this->requestBroker->process($this->mockRequest, $testClass, 'prefix_', false); 109 $this->assertNull($testClass->foo); 110 $this->assertNull($testClass->getBar()); 111 $this->assertNull($testClass->getBaz()); 112 $this->assertNull(TestBrokerObject::$dummy); 113 } 93 114 } 94 115 ?>
