示例#1
0
 /**
  *   This method actually checks if the functionality that needs to be changed
  *   for the above test to work will still work after the change ...
  *
  *   check if stuff like MAX(id), LOWER(question), etc. will be converted to 
  *       MAX(TABLE_QUESTION.id), LOWER(TABLE_QUESTION.question)
  *   this is done for preventing ambigious column names, that's why it only applies
  *   in joined queries ...
  */
 function test_testSqlFunction()
 {
     $theQuestion = 'Why does this not work?';
     $theAnswer = 'I dont know!';
     $question = new tests_Common(TABLE_QUESTION);
     $newQuest = array(TABLE_QUESTION => $theQuestion);
     $qid = $question->add($newQuest);
     $answer = new tests_Common(TABLE_ANSWER);
     $newAnswer = array(TABLE_QUESTION . '_id' => $qid, TABLE_ANSWER => $theAnswer);
     $aid = $answer->add($newAnswer);
     $question->autoJoin(TABLE_ANSWER);
     //        $question->setSelect('id,'.TABLE_QUESTION.' as question,'.TABLE_ANSWER.' as answer');
     $question->setSelect('MAX(id),' . TABLE_ANSWER . '.id');
     $this->assertTrue(strpos($question->_buildSelectQuery(), 'MAX(' . TABLE_QUESTION . '.id)'));
     // check '(question)'
     $question->setSelect('LOWER(question),' . TABLE_ANSWER . '.*');
     $this->assertTrue(strpos($question->_buildSelectQuery(), 'LOWER(' . TABLE_QUESTION . '.question)'));
     // check 'id,'
     $question->setSelect('id,' . TABLE_ANSWER . '.*');
     $this->assertTrue(strpos($question->_buildSelectQuery(), TABLE_QUESTION . '.id'));
     // check 'id as qid'
     $question->setSelect('id as qid,' . TABLE_ANSWER . '.*');
     $this->assertTrue(strpos($question->_buildSelectQuery(), TABLE_QUESTION . '.id as qid'));
     // check 'id as qid'
     $question->setSelect('LOWER( question ),' . TABLE_ANSWER . '.*');
     $this->assertTrue(strpos($question->_buildSelectQuery(), 'LOWER( ' . TABLE_QUESTION . '.question )'));
 }
示例#2
0
 function test_getHaving()
 {
     $user = new tests_Common(TABLE_USER);
     $having_string = 'count(id) = 10';
     $user->setHaving($having_string);
     $this->assertEquals($having_string, $user->getHaving());
 }
示例#3
0
 function setUp()
 {
     foreach ($GLOBALS['allTables'] as $aTable) {
         $tableObj = new tests_Common($aTable);
         $tableObj->removeAll();
     }
     $this->setLooselyTyped(true);
 }
示例#4
0
 function test_getCol()
 {
     $user = new tests_Common(TABLE_USER);
     $user->setLimit(0, 10);
     $user->add(array('login' => 1));
     $user->add(array('login' => 2));
     $user->add(array('login' => 3));
     $user->add(array('login' => 4));
     $this->assertEquals(1, sizeof($user->getCol('id', 0, 1)));
     $user->setLimit(0, 3);
     $this->assertEquals(2, sizeof($user->getCol('id', 0, 2)));
     $this->assertEquals(3, sizeof($user->getCol('id')));
 }
示例#5
0
 function test_addWhereSearch()
 {
     $user = new tests_Common(TABLE_USER);
     $user->removeAll();
     $user->add(array('name' => 'Wolfram Kriesing'));
     $user->add(array('name' => 'WOLFRAM Daniel KrIESIng'));
     $user->add(array('name' => ' kriesing   wolfram '));
     $user->setWhere();
     $user->addWhereSearch('name', 'Wolfram Kriesing');
     $this->assertEquals(2, $user->getCount(), 'getCount(): Did not find the inserted number of user names.');
     $user->add(array('name' => 'Wolfram and here goes some string Kriesing but it should be found'));
     $user->add(array('name' => '%Wolfram man in the middle :-) Kriesing and smthg behind%'));
     $this->assertEquals(4, $user->getCount(), 'getCount(): Did not find the inserted number of user names.');
     $user->removeAll();
 }