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

allow resetting query

parent d299b87a
Branches
Tags
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.
Please to comment