18 'description' =>
'456',
22 'static' =>
'static!',
23 'filters' => array(
'trim',
'json_encode')
29 $this->assertEquals(
'foo', $p->getName());
30 $this->assertEquals(
'bar', $p->getType());
31 $this->assertEquals(
true, $p->getRequired());
32 $this->assertEquals(
'123', $p->getDefault());
33 $this->assertEquals(
'456', $p->getDescription());
34 $this->assertEquals(2, $p->getMinLength());
35 $this->assertEquals(5, $p->getMaxLength());
36 $this->assertEquals(
'body', $p->getLocation());
37 $this->assertEquals(
'static!', $p->getStatic());
38 $this->assertEquals(array(
'trim',
'json_encode'), $p->getFilters());
44 unset($this->data[
'name']);
45 $this->assertEquals($this->data, $p->toArray());
51 $d[
'default'] =
'booboo';
54 $this->assertEquals(
'booboo', $p->getValue(
'bar'));
60 $d[
'default'] =
'foo';
63 $this->assertEquals(
'foo', $p->getValue(
null));
71 $this->assertEquals(
'foo', $p->getValue(
'foo'));
80 $this->assertEquals(
'0', $p->getValue(
'0'));
87 $d[
'filters'] =
'strtoupper';
89 $this->assertEquals(
'FOO', $p->filter(
'foo'));
94 $p =
new Parameter(array(
'type' =>
'boolean'));
95 $this->assertEquals(
true, $p->filter(
'true'));
96 $this->assertEquals(
false, $p->filter(
'false'));
102 $d[
'filters'] =
null;
104 $this->assertEquals(array(), $p->getFilters());
109 $p =
new Parameter(array(
'name' =>
'myname',
'location' =>
'foo',
'sentAs' =>
'Hello'));
110 $this->assertEquals(
'foo', $p->getLocation());
111 $this->assertEquals(
'Hello', $p->getSentAs());
116 $p =
new Parameter(array(
'type' =>
'foo'));
117 $this->assertEquals(
'foo', $p->getType());
126 $p =
new Parameter(array(
'filters' => array(array(
'args' =>
'foo'))));
133 ->setDescription(
'c')
134 ->setFilters(array(
'd'))
148 $p->addFilter(
'foo');
150 $this->assertEquals(
'foo', $p->getName());
151 $this->assertEquals(
'h', $p->getDefault());
152 $this->assertEquals(
'c', $p->getDescription());
153 $this->assertEquals(array(
'd',
'foo'), $p->getFilters());
154 $this->assertEquals(
'e', $p->getLocation());
155 $this->assertEquals(
'f', $p->getSentAs());
156 $this->assertEquals(1, $p->getMaxLength());
157 $this->assertEquals(1, $p->getMinLength());
158 $this->assertEquals(2, $p->getMaximum());
159 $this->assertEquals(2, $p->getMinimum());
160 $this->assertEquals(3, $p->getMaxItems());
161 $this->assertEquals(3, $p->getMinItems());
162 $this->assertEquals(
true, $p->getRequired());
163 $this->assertEquals(
true, $p->getStatic());
164 $this->assertEquals(
'i', $p->getType());
169 $command = $this->
getServiceBuilder()->get(
'mock')->getCommand(
'mock_command')->getOperation();
171 'parent' => $command,
174 'location' =>
'query',
175 'properties' => array(
179 'properties' => array(
193 $this->assertSame($command, $param->getParent());
194 $this->assertNotEmpty($param->getProperties());
195 $this->assertInstanceOf(
'Guzzle\Service\Description\Parameter', $param->getProperty(
'foo'));
196 $this->assertSame($param, $param->getProperty(
'foo')->getParent());
197 $this->assertSame($param->getProperty(
'foo'), $param->getProperty(
'foo')->getProperty(
'baz')->getParent());
198 $this->assertInstanceOf(
'Guzzle\Service\Description\Parameter', $param->getProperty(
'bar'));
199 $this->assertSame($param, $param->getProperty(
'bar')->getParent());
201 $array = $param->toArray();
202 $this->assertInternalType(
'array', $array[
'properties']);
203 $this->assertArrayHasKey(
'foo', $array[
'properties']);
204 $this->assertArrayHasKey(
'bar', $array[
'properties']);
211 $param->setFilters(array(array(
'method' =>
function ($a, $b, $c, $d) use ($that, $param) {
212 $that->assertEquals(
'test', $a);
213 $that->assertEquals(
'my_value!', $b);
214 $that->assertEquals(
'bar', $c);
215 $that->assertSame($param, $d);
217 },
'args' => array(
'test',
'@value',
'bar',
'@api'))));
218 $this->assertEquals(
'abcmy_value!', $param->filter(
'my_value!'));
223 $param1 =
new Parameter(array(
'name' =>
'parent'));
224 $param2 =
new Parameter(array(
'name' =>
'child'));
225 $param2->setParent($param1);
226 $this->assertSame($param1, $param2->getParent());
231 $param1 =
new Parameter(array(
'name' =>
'parent'));
232 $param2 =
new Parameter(array(
'name' =>
'child'));
233 $param1->addProperty($param2);
234 $this->assertSame($param1, $param2->getParent());
235 $this->assertSame($param2, $param1->getProperty(
'child'));
238 $param1->removeProperty(
'child');
239 $this->assertNull($param1->getProperty(
'child'));
241 $param1->addProperty($param2);
242 $param1->removeProperty(
'child');
243 $this->assertNull($param1->getProperty(
'child'));
250 'additionalProperties' => array(
'type' =>
'string')
252 $this->assertInstanceOf(
'Guzzle\Service\Description\Parameter', $p->getAdditionalProperties());
253 $this->assertNull($p->getAdditionalProperties()->getAdditionalProperties());
254 $p =
new Parameter(array(
'type' =>
'object'));
255 $this->assertTrue($p->getAdditionalProperties());
262 'items' => array(
'type' =>
'string')
264 $this->assertInstanceOf(
'Guzzle\Service\Description\Parameter', $p->getItems());
265 $out = $p->toArray();
266 $this->assertEquals(
'array', $out[
'type']);
267 $this->assertInternalType(
'array', $out[
'items']);
273 $this->assertEquals(array(), $p->getData());
274 $p->setData(array(
'foo' =>
'bar'));
275 $this->assertEquals(
'bar', $p->getData(
'foo'));
276 $p->setData(
'baz',
'boo');
277 $this->assertEquals(array(
'foo' =>
'bar',
'baz' =>
'boo'), $p->getData());
283 $this->assertEquals(
null, $p->getData(
'foo'));
285 $this->assertEquals(
'test', $p->getData(
'name'));
291 $this->assertNull($p->getInstanceOf());
292 $p->setInstanceOf(
'Foo');
293 $this->assertEquals(
'Foo', $p->getInstanceOf());
299 $this->assertNull($p->getPattern());
300 $p->setPattern(
'/[0-9]+/');
301 $this->assertEquals(
'/[0-9]+/', $p->getPattern());
307 $this->assertNull($p->getEnum());
308 $p->setEnum(array(
'foo',
'bar'));
309 $this->assertEquals(array(
'foo',
'bar'), $p->getEnum());
316 'additionalProperties' => array(
'type' =>
'string')
318 $this->assertEquals(array(
320 'additionalProperties' => array(
'type' =>
'string')
328 'JarJar' => array(
'type' =>
'string',
'default' =>
'Mesa address tha senate!'),
329 'Anakin' => array(
'type' =>
'array',
'items' => array(
'$ref' =>
'JarJar'))
332 $p =
new Parameter(array(
'$ref' =>
'Anakin',
'description' =>
'added'), $description);
333 $this->assertEquals(array(
335 'items' => array(
'type' =>
'string',
'default' =>
'Mesa address tha senate!'),
336 'description' =>
'added'
342 $jarJar = array(
'type' =>
'string',
'default' =>
'Mesa address tha senate!',
'description' =>
'a');
343 $anakin = array(
'type' =>
'array',
'items' => array(
'extends' =>
'JarJar',
'description' =>
'b'));
345 'models' => array(
'JarJar' => $jarJar,
'Anakin' => $anakin)
348 $p =
new Parameter(array(
'extends' =>
'Anakin',
'format' =>
'date'), $description);
349 $this->assertEquals(array(
354 'default' =>
'Mesa address tha senate!',
362 $p =
new Parameter(array(
'name' =>
'foo',
'sentAs' =>
'bar'));
363 $this->assertEquals(
'bar', $p->getWireName());
365 $this->assertEquals(
'foo', $p->getWireName());
378 $result = $p->toArray();
379 $this->assertEquals(array(
384 'additionalProperties' =>
true
391 $d =
'October 13, 2012 16:15:46 UTC';
394 array($d,
'date-time',
'2012-10-13T16:15:46Z'),
395 array($d,
'date',
'2012-10-13'),
396 array($d,
'timestamp', strtotime($d)),
397 array(
new \DateTime($d),
'timestamp', strtotime($d))
407 $p->setFormat($format);
408 $this->assertEquals($format, $p->getFormat());
409 $this->assertEquals($result, $p->filter($d));