public function testTraversesObjectsAndAppliesFilters() { $visitor = new Visitor(); $param = new Parameter(array('name' => 'foo', 'type' => 'object', 'properties' => array('foo' => array('filters' => 'strtoupper'), 'bar' => array('filters' => 'strtolower')))); $this->value = array('foo' => array('foo' => 'hello', 'bar' => 'THERE')); $visitor->visit($this->command, $this->response, $param, $this->value); $this->assertEquals(array('foo' => 'HELLO', 'bar' => 'there'), $this->value['foo']); }
public function testWalksAdditionalProperties() { $visitor = new Visitor(); $param = new Parameter(array('name' => 'foo', 'type' => 'object', 'additionalProperties' => array('type' => 'object', 'properties' => array('bar' => array('type' => 'string', 'filters' => array('base64_decode')))))); $this->value = array('foo' => array('baz' => array('bar' => 'Zm9v'))); $visitor->visit($this->command, $this->response, $param, $this->value); $this->assertEquals('foo', $this->value['foo']['baz']['bar']); }
/** * @group issue-399 * @link https://github.com/guzzle/guzzle/issues/399 */ public function testDiscardingUnknownPropertiesWithAliasing() { $visitor = new Visitor(); $param = new Parameter(array('name' => 'foo', 'type' => 'object', 'additionalProperties' => false, 'properties' => array('bar' => array('name' => 'bar', 'sentAs' => 'baz')))); $this->value = array('foo' => array('baz' => 15, 'unknown' => 'Unknown')); $visitor->visit($this->command, $this->response, $param, $this->value); $this->assertEquals(array('foo' => array('bar' => 15)), $this->value); }