/**
  * Test for the clear method (clearing each query type).
  *
  * @return  void
  *
  * @since   11.1
  */
 public function testClear_type()
 {
     $types = array('select', 'delete', 'update', 'insert', 'union');
     $clauses = array('from', 'join', 'set', 'where', 'group', 'having', 'order', 'columns', 'values');
     $q = new JDatabaseQueryInspector($this->dbo);
     // Set the clauses.
     foreach ($clauses as $clause) {
         $q->{$clause} = $clause;
     }
     // Check that all properties have been cleared
     foreach ($types as $type) {
         // Set the type.
         $q->{$type} = $type;
         // Clear the type.
         $q->clear($type);
         // Check the type has been cleared.
         $this->assertThat($q->type, $this->equalTo(null));
         $this->assertThat($q->get($type), $this->equalTo(null));
         // Now check the claues have not been affected.
         foreach ($clauses as $clause) {
             $this->assertThat($q->get($clause), $this->equalTo($clause));
         }
     }
 }
 /**
  * Test for the clear method (clearing each clause).
  *
  * @return  void
  *
  * @covers  JDatabaseQuery::clear
  * @since   11.1
  */
 public function testClear_clause()
 {
     $clauses = array('from', 'join', 'set', 'where', 'group', 'having', 'order', 'columns', 'values', 'union', 'unionAll', 'exec', 'call');
     // Test each clause.
     foreach ($clauses as $clause) {
         $q = new JDatabaseQueryInspector($this->dbo);
         // Set the clauses
         foreach ($clauses as $clause2) {
             $q->{$clause2} = $clause2;
         }
         // Clear the clause.
         $q->clear($clause);
         // Check that clause was cleared.
         $this->assertThat($q->get($clause), $this->equalTo(null));
         // Check the state of the other clauses.
         foreach ($clauses as $clause2) {
             if ($clause != $clause2) {
                 $this->assertThat($q->get($clause2), $this->equalTo($clause2), "Clearing {$clause} resulted in {$clause2} having a value of " . $q->get($clause2) . '.');
             }
         }
     }
 }