protected function check_typical_in_query(qubaid_condition $qubaids, $expectedsql, $expectedparams)
 {
     $sql = "SELECT qa.id, qa.maxmark\n            FROM {question_attempts} qa\n            WHERE qa.questionusageid {$qubaids->usage_id_in()}";
     // NOTE: parameter names may change thanks to $DB->inorequaluniqueindex, normal comparison is very wrong!!
     list($sql, $params) = $this->normalize_sql($sql, $qubaids->usage_id_in_params());
     list($expectedsql, $expectedparams) = $this->normalize_sql($expectedsql, $expectedparams);
     $this->assertEquals($expectedsql, $sql);
     $this->assertEquals($expectedparams, $params);
 }
Beispiel #2
0
 /**
  * @param array $questionids of question ids.
  * @param qubaid_condition $qubaids ids of the usages to consider.
  * @return boolean whether any of these questions are being used by any of
  *      those usages.
  */
 public function questions_in_use(array $questionids, qubaid_condition $qubaids)
 {
     list($test, $params) = $this->db->get_in_or_equal($questionids);
     return $this->db->record_exists_select('question_attempts', 'questionid ' . $test . ' AND questionusageid ' . $qubaids->usage_id_in(), $params + $qubaids->usage_id_in_params());
 }
 protected function check_typical_in_query(qubaid_condition $qubaids, $expectedsql, $expectedparams)
 {
     $sql = "SELECT qa.id, qa.maxmark\n            FROM {question_attempts} qa\n            WHERE qa.questionusageid {$qubaids->usage_id_in()}";
     $this->assertEqual($expectedsql, $sql);
     $this->assertEqual($expectedparams, $qubaids->usage_id_in_params());
 }