1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace JmesPath\Tests\Tree;
- use JmesPath\AstRuntime;
- use JmesPath\TreeInterpreter;
- /**
- * @covers JmesPath\Tree\TreeInterpreter
- */
- class TreeInterpreterTest extends \PHPUnit_Framework_TestCase
- {
- public function testReturnsNullWhenMergingNonArray()
- {
- $t = new TreeInterpreter();
- $this->assertNull($t->visit(array(
- 'type' => 'flatten',
- 'children' => array(
- array('type' => 'literal', 'value' => 1),
- array('type' => 'literal', 'value' => 1)
- )
- ), array(), array(
- 'runtime' => new AstRuntime()
- )));
- }
- public function testWorksWithArrayObjectAsObject()
- {
- $runtime = new AstRuntime();
- $this->assertEquals('baz', $runtime('foo.bar', new \ArrayObject([
- 'foo' => new \ArrayObject(['bar' => 'baz'])
- ])));
- }
- public function testWorksWithArrayObjectAsArray()
- {
- $runtime = new AstRuntime();
- $this->assertEquals('baz', $runtime('foo[0].bar', new \ArrayObject([
- 'foo' => new \ArrayObject([new \ArrayObject(['bar' => 'baz'])])
- ])));
- }
- public function testWorksWithArrayProjections()
- {
- $runtime = new AstRuntime();
- $this->assertEquals(
- ['baz'],
- $runtime('foo[*].bar', new \ArrayObject([
- 'foo' => new \ArrayObject([
- new \ArrayObject([
- 'bar' => 'baz'
- ])
- ])
- ]))
- );
- }
- public function testWorksWithObjectProjections()
- {
- $runtime = new AstRuntime();
- $this->assertEquals(
- ['baz'],
- $runtime('foo.*.bar', new \ArrayObject([
- 'foo' => new \ArrayObject([
- 'abc' => new \ArrayObject([
- 'bar' => 'baz'
- ])
- ])
- ]))
- );
- }
- }
|