/** * @dataProvider dataForQueryNormalization */ public function testNormalizesQuery(Parameter $param, array $value, array $result) { $command = new OperationCommand(); $request = new EntityEnclosingRequest('POST', 'http://foo.com'); $visitor = new AwsQueryVisitor(); $visitor->visit($command, $request, $param, $value); $fields = $request->getPostFields()->getAll(); asort($fields); $this->assertEquals($result, $fields); }
public function testNormalizesQuery() { $param = new Parameter(array('name' => 'IpPermissions', 'location' => 'aws.query', 'data' => array('offset' => 1), 'type' => 'array', 'items' => array('data' => array('offset' => 1), 'type' => 'object', 'properties' => array('IpProtocol' => array('type' => 'string'), 'FromPort' => array('type' => 'numeric'), 'ToPort' => array('type' => 'numeric'), 'Groups' => array('type' => 'array', 'data' => array('offset' => 1), 'items' => array('type' => 'object', 'properties' => array('UserId' => array('type' => 'string'), 'GroupName' => array('type' => 'string'), 'GroupId' => array('type' => 'string')))), 'IpRanges' => array('type' => 'array', 'data' => array('offset' => 1), 'items' => array('type' => 'object', 'properties' => array('CidrIp' => array('type' => 'string')))), 'Foo' => array('type' => 'array', 'sentAs' => 'Foo.member', 'data' => array('offset' => 10), 'items' => array('type' => 'string')))))); $command = new OperationCommand(); $request = new EntityEnclosingRequest('POST', 'http://foo.com'); $visitor = new AwsQueryVisitor(); $value = array(array('IpProtocol' => 'tcp', 'FromPort' => 20, 'Groups' => array(array('UserId' => '123', 'GroupName' => 'Foo', 'GroupId' => 'Bar'), array('UserId' => '456', 'GroupName' => 'Oof', 'GroupId' => 'Rab')), 'IpRanges' => array(array('CidrIp' => 'test'), array('CidrIp' => 'other')), 'Foo' => array('test', 'other'))); $visitor->visit($command, $request, $param, $value); $fields = $request->getPostFields()->getAll(); asort($fields); $this->assertEquals(array('IpPermissions.1.FromPort' => 20, 'IpPermissions.1.Groups.1.UserId' => '123', 'IpPermissions.1.Groups.2.UserId' => '456', 'IpPermissions.1.Groups.1.GroupId' => 'Bar', 'IpPermissions.1.Groups.1.GroupName' => 'Foo', 'IpPermissions.1.Groups.2.GroupName' => 'Oof', 'IpPermissions.1.Groups.2.GroupId' => 'Rab', 'IpPermissions.1.Foo.member.11' => 'other', 'IpPermissions.1.IpRanges.2.CidrIp' => 'other', 'IpPermissions.1.IpProtocol' => 'tcp', 'IpPermissions.1.IpRanges.1.CidrIp' => 'test', 'IpPermissions.1.Foo.member.10' => 'test'), $fields); }
public function testSerializesEmptyLists() { $operation = new Operation(array('name' => 'UpdateStack')); $command = new OperationCommand(array(), $operation); $request = new EntityEnclosingRequest('POST', 'http://foo.com'); $visitor = new AwsQueryVisitor(); $visitor->visit($command, $request, new Parameter(array('name' => 'foo', 'type' => 'object', 'location' => 'aws.query', 'properties' => array('test' => array('type' => 'array'), 'bar' => array('type' => 'object', 'properties' => array('bam' => array('type' => 'array'), 'boo' => array('type' => 'string')))))), array('test' => array(), 'bar' => array('bam' => array(), 'boo' => 'hi'))); $fields = $request->getPostFields(); $this->assertEquals('foo.test=&foo.bar.bam=&foo.bar.boo=hi', (string) $fields); }