/**
  * Method to test dropDatabase().
  *
  * @return void
  *
  * @covers Windwalker\Query\Postgresql\PostgresqlQueryBuilder::dropDatabase
  */
 public function testDropDatabase()
 {
     $expected = "DROP DATABASE {$this->qn}foo{$this->qn}";
     $actual = PostgresqlQueryBuilder::dropDatabase('foo');
     $this->assertEquals(\SqlFormatter::compress($expected), \SqlFormatter::compress($actual));
     $expected = "DROP DATABASE IF EXISTS {$this->qn}foo{$this->qn}";
     $actual = PostgresqlQueryBuilder::dropDatabase('foo', true);
     $this->assertEquals(\SqlFormatter::compress($expected), \SqlFormatter::compress($actual));
 }
 /**
  * Method to test dropDatabase().
  *
  * @return void
  *
  * @covers Windwalker\Query\Postgresql\PostgresqlQueryBuilder::dropDatabase
  */
 public function testDropDatabase()
 {
     $expected = "DROP DATABASE {$this->qn('foo')}";
     $actual = PostgresqlQueryBuilder::dropDatabase('foo');
     $this->assertEquals($this->format($expected), $this->format($actual));
     $expected = "DROP DATABASE IF EXISTS {$this->qn('foo')}";
     $actual = PostgresqlQueryBuilder::dropDatabase('foo', true);
     $this->assertEquals($this->format($expected), $this->format($actual));
 }
 /**
  * dropDatabase
  *
  * @param bool $ifExists
  *
  * @return  static
  */
 public function drop($ifExists = false)
 {
     if ($this->getName() == $this->db->getDatabase()->getName()) {
         $this->db->disconnect();
         $this->db->setDatabaseName(null);
         $this->db->connect();
     }
     $pid = version_compare($this->db->getVersion(), '9.2', '>=') ? 'pid' : 'procpid';
     $query = $this->db->getQuery(true);
     $query->select('pg_terminate_backend(' . $pid . ')')->from('pg_stat_activity')->where('datname = ' . $query->quote($this->getName()));
     $this->db->setQuery($query)->execute();
     $query = PostgresqlQueryBuilder::dropDatabase($this->database, $ifExists);
     $this->db->setQuery($query)->execute();
     return $this;
 }
 /**
  * tearDownAfterClass
  *
  * @return  void
  */
 public static function tearDownAfterClass()
 {
     static::$dbo->setQuery(PostgresqlQueryBuilder::dropDatabase('windwalker_foo_test', true))->execute();
     static::$dbo->setQuery(PostgresqlQueryBuilder::dropDatabase('windwalker_bar_test', true))->execute();
     parent::tearDownAfterClass();
 }