public function testMultiFilteredIterator() { $engine = DataSources::getEngine(); $data = DataSources::getOrderData(); $results = $engine->extract($data, '/order/items/#/.[warehouse_id==3][sku=="SKU1"][price>=10]'); $this->_testItemResults($results, 1); }
public function testAlreadyParsed() { $parser = DataSources::getParser(); $a_path = '/some/path/with[filter!=conditions]/#/./iterators/too'; $parsed = $parser->parse($a_path); $parsed_again = $parser->parse($parsed); $this->assertEquals($parsed, $parsed_again); }
public function testMethodChaining() { $node = DataSources::getNode(); $node->setPart('some_part')->addFilter('some_filter')->setCondition('some_condition')->addFilter('some_other_filter')->setPart('some_other_part'); $this->assertEquals('some_other_part', $node->getPart()); $this->assertEquals('some_condition', $node->getCondition()); $this->assertEquals(array('some_filter', 'some_other_filter'), $node->getFilters()); }
public function testHasChild() { $data = DataSources::getOrderData(); $engine = DataSources::getEngine(); $results = $engine->extract($data, '/order/items/1'); $this->assertEquals(1, count($results)); $result =& $results[0]; $pointer = new Envalo_APath_Pointer($result, 'some_part', '/orders/items/1', null); $this->assertTrue($pointer->hasChild('sku')); }
public function testSubstringMatch() { $engine = DataSources::getEngine(); $data = DataSources::getOrderData(); $results = $engine->extract($data, '/order/items/#/.[sku=~KU1]'); $this->_testItemResults($results, 1); $results = $engine->extract($data, '/order/items/#/.[sku=@"SKUYYY,SKU1,SKU2,SKUXXX"]'); $this->_testItemResults($results, 2); $results = $engine->extract($data, '/order/items/#/.[sku!@"SKUYYY,SKU1,SKU2,SKU3"]'); $this->_testItemResults($results, 1); $results = $engine->extract($data, '/order/items/#/.[sku=~SKU]'); $this->_testItemResults($results, 4); $results = $engine->extract($data, '/order/items/#/.[sku!~KU1]'); $this->_testItemResults($results, 3); $results = $engine->extract($data, '/order/items/#/.[sku!~SKU]'); $this->_testItemResults($results, 0); $results = $engine->extract($data, '/order/items/#/.[sku!~KU5]'); $this->_testItemResults($results, 4); }