Skip to content
Snippets Groups Projects
Commit b439c9f2 authored by Josh Pollock's avatar Josh Pollock
Browse files

allow resetting query

parent d299b87a
No related branches found
No related tags found
No related merge requests found
......@@ -96,4 +96,18 @@ class DeleteQueryBuilderTest extends TestCase
->getName()
);
}
/**
* Test reset of builder
*
* @covers DeleteQueryBuilder::resetBuilder()
* @covers DeleteQueryBuilder::$deleteQuery
*/
public function testResetOfBuilder()
{
$entryGenerator = $this->entryDeleteGeneratorFactory();
$newBuilder = new MySqlBuilder();
$entryGenerator->resetBuilder( $newBuilder );
$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
}
}
......@@ -109,4 +109,17 @@ class SelectQueryBuilderTest extends TestCase
$this->assertEquals(Entry::DESC, 'DESC');
$this->assertEquals(EntryValues::DESC, 'DESC');
}
/**
* Test reset of builder
*
* @covers SelectQueryBuilder::resetBuilder()
*/
public function testResetOfBuilder()
{
$entryGenerator = $this->entryGeneratorFactory();
$newBuilder = new MySqlBuilder();
$entryGenerator->resetBuilder( $newBuilder );
$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
}
}
......@@ -31,4 +31,12 @@ interface CreatesSqlQueries
* @return MySqlBuilder
*/
public function getBuilder();
/**
* Reset the query builder
*
* @param MySqlBuilder|null $builder New builder or null to use default empty
* @return $this
*/
public function resetBuilder( MySqlBuilder $builder = null );
}
......@@ -44,6 +44,18 @@ abstract class QueryBuilder implements CreatesSqlQueries
$this->tableName = $tableName;
}
/** @inheritdoc */
public function resetBuilder(MySqlBuilder $builder = null)
{
if( ! $builder ){
$builder = new MySqlBuilder();
}
$this->builder = $builder;
return $this;
}
/**
* @return AbstractBaseQuery
*/
......
......@@ -47,4 +47,6 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer
$this->getCurrentQuery()->orderBy($column, $order);
return $this;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment