object = new IteratorFilter(); } public function testGetSql() { $params = null; $returnFields = '*'; $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals([], $params); $this->assertEquals('select * from tablename ', $sql); $this->object->addRelation('field', Relation::EQUAL, 'test'); $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field' => 'test'], $params); $this->assertEquals('select * from tablename where field = [[field]] ', $sql); $this->object->addRelation('field2', Relation::GREATER_OR_EQUAL_THAN, 'test2'); $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field' => 'test', 'field2' => 'test2'], $params); $this->assertEquals('select * from tablename where field = [[field]] and field2 >= [[field2]] ', $sql); $this->object->addRelation('field3', Relation::CONTAINS, 'test3'); $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field' => 'test', 'field2' => 'test2', 'field3' => '%test3%'], $params); $this->assertEquals('select * from tablename where field = [[field]] and field2 >= [[field2]] and field3 like [[field3]] ', $sql); } public function testSqlLiteral() { $literalObject = new LiteralSample(10); $params = null; $returnFields = '*'; $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals([], $params); $this->assertEquals('select * from tablename ', $sql); $this->object->addRelation('field', Relation::GREATER_THAN, $literalObject); $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals([], $params); $this->assertEquals('select * from tablename where field > cast(\'10\' as integer) ', $sql); $this->object->addRelation('field2', Relation::LESS_THAN, 5); $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field2' => 5], $params); $this->assertEquals('select * from tablename where field > cast(\'10\' as integer) and field2 < [[field2]] ', $sql); } public function testAddRelationOr() { $this->object->addRelation('field', Relation::EQUAL, 'test'); $this->object->addRelationOr('field2', Relation::EQUAL, 'test2'); $params = null; $returnFields = '*'; $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field' => 'test', 'field2' => 'test2'], $params); $this->assertEquals('select * from tablename where field = [[field]] or field2 = [[field2]] ', $sql); } public function testGroup() { $this->object->startGroup(); $this->object->addRelation('field', Relation::EQUAL, 'test'); $this->object->addRelation('field2', Relation::EQUAL, 'test2'); $this->object->endGroup(); $this->object->addRelationOr('field3', Relation::EQUAL, 'test3'); $params = null; $returnFields = '*'; $sql = $this->object->format( new IteratorFilterSqlFormatter(), 'tablename', $params, $returnFields ); $this->assertEquals(['field' => 'test', 'field2' => 'test2', 'field3' => 'test3'], $params); $this->assertEquals( 'select * from tablename where ( field = [[field]] and field2 = [[field2]] ) or field3 = [[field3]] ', $sql ); } } __halt_compiler();----SIGNATURE:----eQGHWuCq0ecvn+KWQc9vKYPL74yYdHWKu3b7SpSsYwcfmzokAlb1tt1v8r8Jjsv8PkREGi4NaqZLol1nOJB4NigC0N+pa0HMP5MW8wlbUZ+MzxjVd5ewgB6gk1e9C6qIJ2ccVzEyh11LHdx+nJb/yz3cKhTRJW1IMiHyoyWyyw5BuLfOFXWh0vX95dTZgmm7kF+/JIxIY53i0Mq2DjAU+WW0ZyixgS5ewPrj1kceGTJvHCgC+ymuVWzIeI897huxJ2nW/DBS6hIExxY/xo17gCAbRzdxrjm052JUbQzum/PcAyCVCuJ2Uayp8IXyCLiRw75FJcK6evbrOVVv1LkcVaiI50VhVaeReHvSdHfbxiRp6LQXQL7N6Hy9ibfqHHD/LBeaupw+gCc3AAEreFv4dUF6eZNstShyfr8rkjljSYG1URwjnA725LQpNiTFQ5coPpawk4JsCAGluXQgnEdjuJ6pYMnu18w7ihpaejSCj/9lLXUVSChetVrCa/oN0/NrfHiS6J3rw629Ofa4xrv3UXaReT+N1PkrYOsMN9iczZ1xHp0lrb5u0DZ8TU8e3tQ8ANEBp1ig+OTpbZ+zhOSi/v/HGHJgq3/GjmL5tfnQjWtp829WSzBcfpGatEgR2qcmG12puVlyrLszp7g4owLoWIe6gfwU5Zfcprg9qUQL9FI=----ATTACHMENT:----MTA5MjE3MzY2OTgwMTgxNSA3NDc3ODg4NDg4NDk4NzAyIDc2NTEyNDY5ODI1MDUzOTM=