Example #1
0
 public function testAutoSelectColumns()
 {
     $expected = [[], ['language_id', 'name']];
     $iterations = count($expected);
     $db = $this->getMockBuilder(Db::class)->disableOriginalConstructor()->getMock();
     $factory = $this->getMockBuilder(Factory\Factory::class)->getMock();
     $query = $this->getMockBuilder(Query\Select::class)->disableOriginalConstructor()->getMock();
     $factory->expects($this->exactly($iterations))->method('getSelectQuery')->will($this->returnValue($query));
     $db->expects($this->atLeastOnce())->method('getFactory')->will($this->returnValue($factory));
     $db->expects($this->any())->method('getConventionTableName')->will($this->returnArgument(0));
     $db->expects($this->exactly($iterations))->method('getTableColumns')->will($this->onConsecutiveCalls(null, $expected[1]));
     for ($i = 0; $i < $iterations; ++$i) {
         $table = new Table($db, 'language');
         $this->assertEquals($expected[$i], $table->getUsedColumns());
         foreach ($table as $id => $row) {
             $row['name'];
         }
         $query = $table->getQuery();
         $query->dropResult();
     }
 }